
/* WARNING: Removing unreachable block (ram,0x00491a68) */
/* WARNING: Unknown calling convention */

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

{
  bool bVar1;
  uchar uVar2;
  char cVar3;
  byte bVar4;
  byte bVar5;
  undefined3 extraout_var;
  re_dfa_t *prVar6;
  int iVar7;
  reg_errcode_t rVar8;
  wint_t *pwVar9;
  Idx IVar10;
  Idx *pIVar11;
  uchar *puVar12;
  re_dfa_t *prVar13;
  undefined1 *puVar14;
  int iVar15;
  int *piVar16;
  Idx *pIVar17;
  _Bool _Var18;
  uint uVar19;
  Idx *pIVar20;
  uchar *puVar21;
  re_dfa_t *prVar22;
  undefined1 *puVar23;
  int *piVar25;
  wint_t wVar26;
  re_dfa_t *prVar27;
  byte *pbVar28;
  re_dfa_t *dfa;
  re_node_set **pprVar29;
  re_dfa_t *prVar30;
  re_dfa_t *set2;
  re_dfastate_t *prVar31;
  int iVar32;
  re_dfastate_t **pprVar33;
  uint uVar34;
  Idx *unaff_s4;
  Idx *unaff_s5;
  Idx *unaff_s6;
  re_dfa_t *unaff_s7;
  uint uVar35;
  mbstate_t *unaff_s8;
  re_token_t *prVar36;
  code *pcVar37;
  int iStack_1ac;
  int iStack_1a8;
  undefined1 auStack_190 [8];
  size_t sStack_188;
  re_dfa_t rStack_184;
  reg_errcode_t rStack_84;
  re_string_t *prStack_80;
  int iStack_7c;
  Idx IStack_78;
  int iStack_74;
  Idx *pIStack_70;
  Idx *pIStack_6c;
  Idx *pIStack_68;
  re_dfa_t *prStack_64;
  mbstate_t *pmStack_60;
  code *pcStack_5c;
  wchar_t wc2;
  mbstate_t cur_state;
  uchar buf [6];
  undefined1 *puVar24;
  
  prVar6 = *(re_dfa_t **)PTR___stack_chk_guard_004bf38c;
  pIVar17 = (Idx *)(idx - pstr->raw_mbs_idx);
  if (idx < pstr->raw_mbs_idx) {
    if (1 < pstr->mb_cur_max) {
      *(undefined1 *)&(pstr->cur_state).__count = 0;
      *(undefined1 *)((int)&(pstr->cur_state).__count + 1) = 0;
      *(undefined1 *)((int)&(pstr->cur_state).__count + 2) = 0;
      *(undefined1 *)((int)&(pstr->cur_state).__count + 3) = 0;
      (pstr->cur_state).__value.__wchb[0] = '\0';
      (pstr->cur_state).__value.__wchb[1] = '\0';
      (pstr->cur_state).__value.__wchb[2] = '\0';
      (pstr->cur_state).__value.__wchb[3] = '\0';
    }
    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';
    uVar19 = 6;
    if ((eflags & 1U) != 0) {
      uVar19 = 4;
    }
    pstr->tip_context = uVar19;
    pIVar17 = (Idx *)idx;
    if (pstr->mbs_allocated == '\0') {
      pstr->mbs = pstr->raw_mbs;
    }
  }
  prVar27 = (re_dfa_t *)idx;
  prVar30 = (re_dfa_t *)eflags;
  if (pIVar17 != (Idx *)0x0) {
    if ((int)pIVar17 < pstr->valid_raw_len) {
      if (pstr->offsets_needed == '\0') {
        uVar19 = re_string_context_at(pstr,(Idx)((int)pIVar17 + -1),eflags);
        pstr->tip_context = uVar19;
        prVar27 = (re_dfa_t *)((int)pIVar17 * 4);
        if (pstr->mb_cur_max < 2) {
          uVar2 = pstr->mbs_allocated;
        }
        else {
          prVar30 = (re_dfa_t *)((pstr->valid_len - (int)pIVar17) * 4);
          prVar27 = (re_dfa_t *)(pstr->wcs + (int)pIVar17);
          (*(code *)PTR_memmove_004bf3a4)();
          uVar2 = pstr->mbs_allocated;
        }
        if (uVar2 == '\0') {
          iVar7 = pstr->valid_len;
        }
        else {
          prVar30 = (re_dfa_t *)(pstr->valid_len - (int)pIVar17);
          prVar27 = (re_dfa_t *)(pstr->mbs + (int)pIVar17);
          (*(code *)PTR_memmove_004bf3a4)();
          iVar7 = pstr->valid_len;
        }
        pstr->valid_len = iVar7 - (int)pIVar17;
        pstr->valid_raw_len = pstr->valid_raw_len - (int)pIVar17;
        goto LAB_00491360;
      }
      unaff_s6 = (Idx *)pstr->valid_len;
      unaff_s5 = pstr->offsets;
      puVar23 = (undefined1 *)0x0;
      pIVar11 = unaff_s6;
      do {
        unaff_s4 = (Idx *)((int)(puVar23 + (int)pIVar11) / 2);
        iVar7 = unaff_s5[(int)unaff_s4];
        bVar1 = (int)puVar23 < (int)unaff_s4;
        pIVar20 = unaff_s4;
        if (iVar7 <= (int)pIVar17) {
          puVar23 = (undefined1 *)((int)unaff_s4 + 1);
          if ((int)pIVar17 <= iVar7) goto LAB_0049145c;
          bVar1 = (int)puVar23 < (int)pIVar11;
          pIVar20 = pIVar11;
        }
        pIVar11 = pIVar20;
      } while (bVar1);
      if (iVar7 < (int)pIVar17) {
        unaff_s4 = (Idx *)((int)unaff_s4 + 1);
      }
LAB_0049145c:
      prVar27 = (re_dfa_t *)((int)unaff_s4 + -1);
      uVar19 = re_string_context_at(pstr,(Idx)prVar27,eflags);
      pstr->tip_context = uVar19;
      if ((((int)unaff_s6 <= (int)pIVar17) || (pIVar17 != unaff_s4)) ||
         (eflags = (int)pIVar17 * 4, (Idx *)unaff_s5[(int)unaff_s4] != pIVar17)) {
        pstr->len = (Idx)((int)pIVar17 + (pstr->raw_len - idx));
        pstr->stop = (Idx)((int)pIVar17 + (pstr->raw_stop - idx));
        pstr->offsets_needed = '\0';
        if ((0 < (int)unaff_s4) && ((Idx *)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pIVar17))
        {
          pIVar11 = unaff_s5 + (int)(unaff_s4 + 0x10000000);
          do {
            unaff_s4 = (Idx *)((int)unaff_s4 + -1);
            if (unaff_s4 == (Idx *)0x0) break;
            pIVar20 = pIVar11 + -2;
            pIVar11 = pIVar11 + -1;
          } while ((Idx *)*pIVar20 == pIVar17);
        }
        if ((int)unaff_s4 < (int)unaff_s6) {
          pwVar9 = pstr->wcs + (int)unaff_s4;
          wVar26 = *pwVar9;
          while (wVar26 == 0xffffffff) {
            unaff_s4 = (Idx *)((int)unaff_s4 + 1);
            pwVar9 = pwVar9 + 1;
            if (unaff_s6 == unaff_s4) goto LAB_0049164c;
            wVar26 = *pwVar9;
          }
LAB_00491534:
          unaff_s4 = unaff_s5 + (int)unaff_s4;
          prVar30 = (re_dfa_t *)(*unaff_s4 - (int)pIVar17);
          pstr->valid_len = (Idx)prVar30;
          if (prVar30 == (re_dfa_t *)0x0) goto LAB_00491650;
          if (0 < (int)prVar30) {
            iVar7 = 0;
            do {
              pstr->wcs[iVar7] = 0xffffffff;
              iVar7 = iVar7 + 1;
              prVar30 = (re_dfa_t *)pstr->valid_len;
            } while (iVar7 < (int)prVar30);
          }
          prVar27 = (re_dfa_t *)0xff;
          (*(code *)PTR_memset_004bf260)(pstr->mbs);
          IVar10 = pstr->valid_len;
        }
        else {
          if (unaff_s4 != unaff_s6) goto LAB_00491534;
LAB_0049164c:
          pstr->valid_len = 0;
LAB_00491650:
          IVar10 = pstr->valid_len;
        }
        pstr->valid_raw_len = IVar10;
        goto LAB_00491360;
      }
      (*(code *)PTR_memmove_004bf3a4)
                (pstr->wcs,pstr->wcs + (int)pIVar17,((int)unaff_s6 - (int)pIVar17) * 4);
      prVar30 = (re_dfa_t *)(pstr->valid_len - (int)pIVar17);
      prVar27 = (re_dfa_t *)(pstr->mbs + (int)pIVar17);
      (*(code *)PTR_memmove_004bf3a4)();
      iVar7 = pstr->valid_len - (int)pIVar17;
      pstr->valid_len = iVar7;
      pstr->valid_raw_len = pstr->valid_raw_len - (int)pIVar17;
      if (iVar7 < 1) goto LAB_00491360;
      iVar7 = 0;
      do {
        pstr->offsets[iVar7] = *(int *)((int)pstr->offsets + eflags) - (int)pIVar17;
        iVar7 = iVar7 + 1;
        eflags = eflags + 4;
      } while (iVar7 < pstr->valid_len);
      uVar2 = pstr->mbs_allocated;
    }
    else {
      unaff_s6 = (Idx *)pstr->valid_len;
      if (pstr->offsets_needed != '\0') {
        pstr->len = (Idx)((int)pIVar17 + (pstr->raw_len - idx));
        pstr->stop = (Idx)((int)pIVar17 + (pstr->raw_stop - idx));
        pstr->offsets_needed = '\0';
      }
      pstr->valid_len = 0;
      if (pstr->mb_cur_max < 2) {
        prVar27 = (re_dfa_t *)
                  (uint)*(byte *)((int)pIVar17 + (int)(pstr->raw_mbs + pstr->raw_mbs_idx + -1));
        pstr->valid_raw_len = 0;
        if (pstr->trans != (uchar *)0x0) {
          prVar27 = (re_dfa_t *)(uint)pstr->trans[(int)prVar27];
        }
        uVar19 = 1;
        if ((pstr->word_char[(int)prVar27 >> 5] >> ((uint)prVar27 & 0x1f) & 1) == 0) {
          uVar19 = 2;
          if (prVar27 == (re_dfa_t *)&DAT_0000000a) {
            if (pstr->newline_anchor == '\0') {
              uVar19 = 0;
            }
          }
          else {
            uVar19 = 0;
          }
        }
        pstr->tip_context = uVar19;
        goto LAB_00491360;
      }
      if (pstr->is_utf8 == '\0') {
LAB_0049179c:
        iVar7 = pstr->raw_mbs_idx;
LAB_004917a0:
        pIVar11 = (Idx *)(iVar7 + pstr->valid_raw_len);
        if ((int)pIVar11 < idx) {
          unaff_s8 = &pstr->cur_state;
          unaff_s7 = (re_dfa_t *)&wc2;
          do {
            unaff_s5 = pIVar11;
            iVar32 = pstr->raw_len - (int)unaff_s5;
            cur_state.__count = (pstr->cur_state).__count;
            cur_state.__value = (pstr->cur_state).__value;
            prVar27 = (re_dfa_t *)((int)unaff_s5 + (int)pstr->raw_mbs);
            iVar7 = (*(code *)PTR_mbrtowc_004bf2ec)(unaff_s7,prVar27,iVar32,unaff_s8);
            unaff_s4 = (Idx *)wc2;
            if (0xfffffffc < iVar7 - 1U) {
              if (iVar7 == 0) {
                unaff_s4 = (Idx *)0x0;
              }
              else if (iVar32 == 0) {
                unaff_s4 = (Idx *)0x0;
              }
              else {
                unaff_s4 = (Idx *)(uint)*(byte *)((int)unaff_s5 + (int)pstr->raw_mbs);
              }
              (pstr->cur_state).__count = cur_state.__count;
              (pstr->cur_state).__value = cur_state.__value;
              iVar7 = 1;
            }
            pIVar11 = (Idx *)((int)unaff_s5 + iVar7);
          } while ((int)pIVar11 < idx);
          pstr->valid_len = (int)pIVar11 - idx;
          if (unaff_s4 != (Idx *)0xffffffff) goto LAB_00491834;
        }
        else {
          pstr->valid_len = (int)pIVar11 - idx;
        }
        prVar27 = (re_dfa_t *)((int)unaff_s6 + -1);
        uVar19 = re_string_context_at(pstr,(Idx)prVar27,eflags);
        pstr->tip_context = uVar19;
      }
      else {
        prVar30 = (re_dfa_t *)pstr->raw_mbs;
        unaff_s4 = (Idx *)((int)prVar30->word_char + pstr->raw_mbs_idx + -0x60);
        prVar27 = (re_dfa_t *)((int)unaff_s4 + ((int)pIVar17 - pstr->mb_cur_max));
        if (prVar27 <= prVar30) {
          prVar27 = prVar30;
        }
        prVar30 = (re_dfa_t *)((int)unaff_s4 + (int)((int)pIVar17 + -1));
        unaff_s5 = pIVar17;
        if (prVar30 < prVar27) goto LAB_0049179c;
        bVar4 = *(byte *)&prVar30->nodes;
        unaff_s7 = prVar30;
        while ((bVar4 & 0xc0) == 0x80) {
          prVar22 = (re_dfa_t *)((int)&unaff_s7[-1].subexp_map + 3);
          unaff_s7 = prVar30;
          if (prVar22 < prVar27) goto LAB_0049179c;
          unaff_s7 = prVar22;
          bVar4 = *(byte *)&prVar22->nodes;
        }
        puVar21 = pstr->trans;
        puVar23 = (undefined1 *)((int)unaff_s4 + (pstr->len - (int)unaff_s7));
        prVar27 = unaff_s7;
        if (puVar21 != (uchar *)0x0) {
          puVar14 = (undefined1 *)0x6;
          if ((int)puVar23 < 7) {
            puVar14 = puVar23;
          }
          if ((int)(puVar14 + -1) < 0) {
            prVar27 = (re_dfa_t *)buf;
          }
          else {
            pbVar28 = (byte *)((int)unaff_s7->word_char + (int)(puVar14 + -0x61));
            puVar12 = buf + (int)puVar14;
            do {
              puVar12[-1] = puVar21[*pbVar28];
              puVar12 = puVar12 + -1;
              pbVar28 = pbVar28 + -1;
            } while (puVar12 != buf);
            prVar27 = (re_dfa_t *)buf;
          }
        }
        cur_state.__count = 0;
        cur_state.__value.__wch = 0;
        uVar19 = (*(code *)PTR_mbrtowc_004bf2ec)(&wc2);
        uVar35 = (int)((int)unaff_s4 + (int)pIVar17) - (int)unaff_s7;
        if ((uVar19 < uVar35) || (0xfffffffd < uVar19)) goto LAB_0049179c;
        *(undefined1 *)&(pstr->cur_state).__count = 0;
        *(undefined1 *)((int)&(pstr->cur_state).__count + 1) = 0;
        *(undefined1 *)((int)&(pstr->cur_state).__count + 2) = 0;
        *(undefined1 *)((int)&(pstr->cur_state).__count + 3) = 0;
        (pstr->cur_state).__value.__wchb[0] = '\0';
        (pstr->cur_state).__value.__wchb[1] = '\0';
        (pstr->cur_state).__value.__wchb[2] = '\0';
        (pstr->cur_state).__value.__wchb[3] = '\0';
        pstr->valid_len = uVar19 - uVar35;
        unaff_s4 = (Idx *)wc2;
        if (wc2 == -1) {
          iVar7 = pstr->raw_mbs_idx;
          goto LAB_004917a0;
        }
LAB_00491834:
        if (pstr->word_ops_used == '\0') {
LAB_00491840:
          uVar19 = 2;
          if (unaff_s4 == (Idx *)&DAT_0000000a) {
            if (pstr->newline_anchor == '\0') {
              uVar19 = 0;
            }
          }
          else {
            uVar19 = 0;
          }
        }
        else {
          iVar7 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);
          uVar19 = 1;
          if (iVar7 == 0) {
            if (unaff_s4 == (Idx *)0x5f) {
              pstr->tip_context = 1;
              goto LAB_00491854;
            }
            goto LAB_00491840;
          }
        }
        pstr->tip_context = uVar19;
      }
LAB_00491854:
      prVar30 = (re_dfa_t *)pstr->valid_len;
      if (prVar30 == (re_dfa_t *)0x0) {
LAB_00491860:
        IVar10 = pstr->valid_len;
      }
      else {
        iVar7 = 0;
        if (0 < (int)prVar30) {
          do {
            pstr->wcs[iVar7] = 0xffffffff;
            iVar7 = iVar7 + 1;
            prVar30 = (re_dfa_t *)pstr->valid_len;
          } while (iVar7 < (int)prVar30);
        }
        prVar27 = (re_dfa_t *)0xff;
        if (pstr->mbs_allocated == '\0') goto LAB_00491860;
        (*(code *)PTR_memset_004bf260)(pstr->mbs);
        IVar10 = pstr->valid_len;
      }
      pstr->valid_raw_len = IVar10;
LAB_00491360:
      uVar2 = pstr->mbs_allocated;
    }
    if (uVar2 == '\0') {
      pstr->mbs = pstr->mbs + (int)pIVar17;
    }
  }
  pstr->raw_mbs_idx = idx;
  iVar7 = pstr->len - (int)pIVar17;
  pstr->len = iVar7;
  iVar32 = pstr->stop - (int)pIVar17;
  pstr->stop = iVar32;
  if (pstr->mb_cur_max < 2) {
    if (pstr->mbs_allocated == '\0') {
      pstr->valid_len = iVar7;
      goto LAB_00491aa8;
    }
    if (pstr->icase == '\0') {
      if (pstr->trans == (uchar *)0x0) goto LAB_00491aa8;
      re_string_translate_buffer(pstr);
      pstr->cur_idx = 0;
    }
    else {
      build_upper_buffer(pstr);
      pstr->cur_idx = 0;
    }
  }
  else {
    if (pstr->icase == '\0') {
      build_wcs_buffer(pstr);
      pstr->cur_idx = 0;
      goto LAB_00491aac;
    }
    rVar8 = build_wcs_upper_buffer(pstr);
    if (rVar8 != _REG_NOERROR) goto LAB_00491ab0;
LAB_00491aa8:
    pstr->cur_idx = 0;
  }
LAB_00491aac:
  rVar8 = _REG_NOERROR;
LAB_00491ab0:
  if (prVar6 == *(re_dfa_t **)PTR___stack_chk_guard_004bf38c) {
    return rVar8;
  }
  pcVar37 = re_compile_fastmap_iter;
  (*(code *)PTR___stack_chk_fail_004bf34c)();
  rStack_84 = *(reg_errcode_t *)PTR___stack_chk_guard_004bf38c;
  prVar36 = prVar6->nodes;
  if (*(int *)&prVar36[0xb].field_0x4 == 1) {
    uVar19 = (uint)((int)prVar6->nexts << 9) >> 0x1f;
  }
  else {
    uVar19 = 0;
  }
  prVar22 = prVar6;
  dfa = prVar27;
  set2 = prVar30;
  prStack_80 = pstr;
  iStack_7c = iVar32;
  IStack_78 = idx;
  iStack_74 = eflags;
  pIStack_70 = unaff_s4;
  pIStack_6c = unaff_s5;
  pIStack_68 = unaff_s6;
  prStack_64 = unaff_s7;
  pmStack_60 = unaff_s8;
  pcStack_5c = pcVar37;
  if (0 < (int)prVar27->nodes_len) {
    iStack_1a8 = 0;
    do {
      iVar7 = prVar27->nexts[iStack_1a8];
      prVar13 = (re_dfa_t *)(iVar7 * 8);
      pbVar28 = (byte *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset);
      prVar22 = (re_dfa_t *)(uint)pbVar28[4];
      dfa = (re_dfa_t *)&DAT_00000001;
      if (prVar22 == (re_dfa_t *)&DAT_00000001) {
        uVar35 = (uint)*pbVar28;
        *(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;
        if (uVar19 != 0) {
          if (uVar35 + 0x80 < 0x180) {
            piVar25 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();
            uVar35 = *(uint *)(*piVar25 + uVar35 * 4);
          }
          *(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;
        }
        if (((int)prVar6->nexts << 9 < 0) &&
           (prVar22 = prVar13, 1 < *(int *)&prVar36[0xb].field_0x4)) {
          rStack_184.nodes._0_1_ = *(byte *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset);
          if ((re_bitset_ptr_t)(iVar7 + 1U) < prVar36[1].opr.sbcset) {
            puVar14 = (undefined1 *)((int)&prVar13->nodes_len + (int)(prVar36->opr).sbcset);
            pprVar29 = (re_node_set **)&prVar13->org_indices;
            if ((*(uint *)(puVar14 + 4) & 0xff000400) == 0x1000400) {
              puVar24 = (undefined1 *)((int)&rStack_184.nodes + 1);
              do {
                puVar23 = puVar24 + 1;
                *puVar24 = *puVar14;
                if (prVar36[1].opr.sbcset <= puVar23 + (iVar7 - (int)&rStack_184)) break;
                puVar14 = (undefined1 *)((int)(prVar36->opr).sbcset + (int)pprVar29);
                pprVar29 = pprVar29 + 2;
                puVar24 = puVar23;
              } while ((*(uint *)(puVar14 + 4) & 0xff000400) == 0x1000400);
            }
            else {
              puVar23 = (undefined1 *)((int)&rStack_184.nodes + 1);
            }
          }
          else {
            puVar23 = (undefined1 *)((int)&rStack_184.nodes + 1);
          }
          auStack_190._4_4_ = 0;
          sStack_188 = 0;
          dfa = &rStack_184;
          iVar7 = -(int)dfa;
          prVar22 = (re_dfa_t *)auStack_190;
          set2 = (re_dfa_t *)(puVar23 + iVar7);
          prVar13 = (re_dfa_t *)(*(code *)PTR_mbrtowc_004bf2ec)();
          if ((re_dfa_t *)(puVar23 + iVar7) == prVar13) {
            dfa = (re_dfa_t *)(*(code *)PTR_towlower_004bf37c)(auStack_190._0_4_);
            set2 = (re_dfa_t *)(auStack_190 + 4);
            prVar22 = &rStack_184;
            iVar7 = (*(code *)PTR_wcrtomb_004bf3dc)();
            if (iVar7 != -1) {
              *(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_) = 1;
            }
          }
        }
      }
      else {
        dfa = (re_dfa_t *)&DAT_00000006;
        if (prVar22 == (re_dfa_t *)0x3) {
          iStack_1ac = 0;
          iVar7 = 0;
          do {
            uVar34 = *(uint *)(*(int *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset) +
                              iStack_1ac);
            uVar35 = 0;
            iVar32 = iVar7;
            do {
              if (((uVar34 >> (uVar35 & 0x1f) & 1) != 0) &&
                 (*(undefined1 *)((int)&prVar30->nodes + iVar32) = 1, uVar19 != 0)) {
                iVar15 = iVar32;
                if (iVar32 + 0x80U < 0x180) {
                  piVar25 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();
                  iVar15 = *(int *)(*piVar25 + (uVar35 + iVar7) * 4);
                }
                *(undefined1 *)((int)&prVar30->nodes + iVar15) = 1;
              }
              uVar35 = uVar35 + 1;
              iVar32 = iVar32 + 1;
            } while (uVar35 != 0x20);
            iVar7 = iVar7 + 0x20;
            iStack_1ac = iStack_1ac + 4;
          } while (iVar7 != 0x100);
        }
        else if (prVar22 == (re_dfa_t *)&DAT_00000006) {
          piVar25 = *(int **)pbVar28;
          if ((*(int *)&prVar36[0xb].field_0x4 < 2) ||
             (((piVar25[9] == 0 && (-1 < *(char *)(piVar25 + 4))) && (piVar25[8] == 0)))) {
            iVar7 = 0;
            if (0 < piVar25[5]) {
              do {
                auStack_190._4_4_ = 0;
                sStack_188 = 0;
                dfa = *(re_dfa_t **)(*piVar25 + iVar7 * 4);
                prVar22 = &rStack_184;
                set2 = (re_dfa_t *)(auStack_190 + 4);
                iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)();
                uVar35 = (uint)rStack_184.nodes._0_1_;
                if ((iVar32 != -1) &&
                   (*(undefined1 *)((int)&prVar30->nodes + uVar35) = 1, uVar19 != 0)) {
                  if (uVar35 + 0x80 < 0x180) {
                    piVar16 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();
                    uVar35 = *(uint *)(*piVar16 + uVar35 * 4);
                  }
                  *(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;
                }
                if ((((uint)prVar6->nexts & 0x400000) != 0) && (1 < *(int *)&prVar36[0xb].field_0x4)
                   ) {
                  dfa = (re_dfa_t *)
                        (*(code *)PTR_towlower_004bf37c)(*(undefined4 *)(*piVar25 + iVar7 * 4));
                  prVar22 = &rStack_184;
                  set2 = (re_dfa_t *)(auStack_190 + 4);
                  iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)();
                  if (iVar32 != -1) {
                    *(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_) = 1;
                  }
                }
                iVar7 = iVar7 + 1;
              } while (iVar7 < piVar25[5]);
            }
          }
          else {
            auStack_190._0_4_ = auStack_190._0_4_ & 0xffffff;
            do {
              auStack_190._4_4_ = 0;
              sStack_188 = 0;
              set2 = (re_dfa_t *)&DAT_00000001;
              prVar22 = (re_dfa_t *)0x0;
              dfa = (re_dfa_t *)auStack_190;
              iVar7 = (*(code *)PTR_mbrtowc_004bf2ec)();
              if (iVar7 == -2) {
                *(undefined1 *)((int)&prVar30->nodes + (uint)auStack_190[0]) = 1;
              }
              bVar1 = auStack_190[0] != 0xff;
              auStack_190[0] = auStack_190[0] + 1;
            } while (bVar1);
          }
        }
        else {
          if (((uint)prVar22 & 0xfd) == 5) {
            set2 = (re_dfa_t *)0x100;
            dfa = (re_dfa_t *)&DAT_00000001;
            (*(code *)PTR_memset_004bf260)();
            prVar22 = prVar30;
            break;
          }
          if (prVar22 == (re_dfa_t *)0x2) {
            set2 = (re_dfa_t *)0x100;
            dfa = (re_dfa_t *)&DAT_00000001;
            (*(code *)PTR_memset_004bf260)(prVar30);
            *(byte *)&prVar6->inveclosures = *(byte *)&prVar6->inveclosures & 0x7f | 0x80;
            prVar22 = prVar6;
            break;
          }
        }
      }
      iStack_1a8 = iStack_1a8 + 1;
    } while (iStack_1a8 < (int)prVar27->nodes_len);
  }
  if (rStack_84 == *(reg_errcode_t *)PTR___stack_chk_guard_004bf38c) {
    return *(reg_errcode_t *)PTR___stack_chk_guard_004bf38c;
  }
  (*(code *)PTR___stack_chk_fail_004bf34c)();
  uVar19 = set2->nodes_alloc;
  if (uVar19 == 0) {
    prVar22->nodes = (re_token_t *)0x0;
  }
  else {
    if (0 < (int)uVar19) {
      pIVar17 = (Idx *)set2->nodes_len;
      pIVar11 = pIVar17 + uVar19;
      do {
        iVar7 = *pIVar17;
        pIVar17 = pIVar17 + 1;
        uVar19 = uVar19 + iVar7;
      } while (pIVar17 != pIVar11);
    }
    iVar7 = dfa->state_table[uVar19 & dfa->state_hash_mask].num;
    if (0 < iVar7) {
      pprVar33 = dfa->state_table[uVar19 & dfa->state_hash_mask].array;
      iVar32 = 0;
      do {
        prVar31 = *pprVar33;
        if ((uVar19 == prVar31->hash) &&
           (_Var18 = re_node_set_compare(&prVar31->nodes,(re_node_set *)set2),
           CONCAT31(extraout_var,_Var18) != 0)) {
          return (reg_errcode_t)prVar31;
        }
        iVar32 = iVar32 + 1;
        pprVar33 = pprVar33 + 1;
      } while (iVar7 != iVar32);
    }
    prVar31 = (re_dfastate_t *)(*(code *)PTR_calloc_004bf160)(0x38,1);
    if (prVar31 != (re_dfastate_t *)0x0) {
      rVar8 = re_node_set_init_copy(&prVar31->nodes,(re_node_set *)set2);
      if (rVar8 == _REG_NOERROR) {
        prVar31->entrance_nodes = &prVar31->nodes;
        if (0 < (int)set2->nodes_alloc) {
          prVar36 = dfa->nodes;
          piVar25 = (int *)set2->nodes_len;
          piVar16 = piVar25 + set2->nodes_alloc;
          do {
            iVar7 = *piVar25;
            cVar3 = prVar36[iVar7].field_0x4;
            if (cVar3 == '\x01') {
              if ((*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000) != 0) {
                prVar31->field_0x34 =
                     prVar31->field_0x34 & 0xfb |
                     (byte)(((uint)(*(int *)&prVar36[iVar7].field_0x4 << 0x14 |
                                   *(int *)&prVar31->field_0x34 << 5) >> 0x1f) << 2);
LAB_004922f0:
                if ((*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000) != 0) {
                  bVar4 = prVar31->field_0x34;
LAB_00492380:
                  prVar31->field_0x34 = bVar4 & 0xfe | 1;
                }
              }
            }
            else {
              bVar4 = prVar31->field_0x34;
              bVar5 = (byte)(((uint)(*(int *)&prVar31->field_0x34 << 5 |
                                    *(int *)&prVar36[iVar7].field_0x4 << 0x14) >> 0x1f) << 2);
              prVar31->field_0x34 = bVar4 & 0xfb | bVar5;
              if (cVar3 == '\x02') {
                prVar31->field_0x34 = bVar4 & 0xf3 | bVar5 | 8;
              }
              else {
                if (cVar3 != '\x04') {
                  if (cVar3 != '\f') goto LAB_004922f0;
                  bVar4 = prVar31->field_0x34;
                  goto LAB_00492380;
                }
                prVar31->field_0x34 = prVar31->field_0x34 & 0xfd | 2;
              }
            }
            piVar25 = piVar25 + 1;
          } while (piVar25 != piVar16);
        }
        rVar8 = register_state(dfa,prVar31,uVar19);
        if (rVar8 == _REG_NOERROR) {
          return (reg_errcode_t)prVar31;
        }
        free_state(prVar31);
      }
      else {
        (*(code *)PTR_free_004bf39c)(prVar31);
      }
    }
    prVar22->nodes = (re_token_t *)0xc;
  }
  return _REG_NOERROR;
}



/* WARNING: Removing unreachable block (ram,0x00491a68) */
/* WARNING: Type propagation algorithm not settling */

byte **** FUN_00491238(int *param_1,byte *******param_2,byte ******param_3)

{
  bool bVar1;
  char cVar2;
  byte bVar3;
  byte bVar4;
  byte ****ppppbVar5;
  byte ******ppppppbVar6;
  byte ******ppppppbVar7;
  int iVar8;
  int *piVar9;
  byte ****ppppbVar10;
  int iVar11;
  byte *******pppppppbVar12;
  byte ******ppppppbVar13;
  undefined1 *puVar14;
  byte *pbVar16;
  byte *pbVar17;
  byte *******pppppppbVar18;
  byte *******pppppppbVar19;
  byte *******pppppppbVar20;
  byte ******ppppppbVar21;
  byte ******ppppppbVar22;
  byte *****pppppbVar23;
  int iVar24;
  byte ***pppbVar25;
  byte *****pppppbVar26;
  uint uVar27;
  byte *****pppppbVar28;
  byte *******unaff_s4;
  byte *******unaff_s5;
  byte *******unaff_s6;
  uint uVar29;
  byte *******unaff_s7;
  uint uVar30;
  int *unaff_s8;
  byte *****pppppbVar31;
  code *pcVar32;
  int iStack_1ac;
  int iStack_1a8;
  byte ******ppppppbStack_190;
  byte *****pppppbStack_18c;
  undefined4 uStack_188;
  byte bStack_184;
  undefined1 auStack_183 [255];
  byte ****ppppbStack_84;
  int *piStack_80;
  int iStack_7c;
  byte *******pppppppbStack_78;
  byte ******ppppppbStack_74;
  byte *******pppppppbStack_70;
  byte *******pppppppbStack_6c;
  byte *******pppppppbStack_68;
  byte *******pppppppbStack_64;
  int *piStack_60;
  code *pcStack_5c;
  byte *******local_40;
  int local_3c;
  int local_38;
  byte ******appppppbStack_34 [3];
  undefined1 *puVar15;
  
  appppppbStack_34[2] = *(byte *******)PTR___stack_chk_guard_004bf38c;
  pppppppbVar20 = (byte *******)((int)param_2 - param_1[6]);
  if ((int)param_2 < param_1[6]) {
    if (1 < param_1[0x14]) {
      *(undefined1 *)(param_1 + 4) = 0;
      *(undefined1 *)((int)param_1 + 0x11) = 0;
      *(undefined1 *)((int)param_1 + 0x12) = 0;
      *(undefined1 *)((int)param_1 + 0x13) = 0;
      *(undefined1 *)(param_1 + 5) = 0;
      *(undefined1 *)((int)param_1 + 0x15) = 0;
      *(undefined1 *)((int)param_1 + 0x16) = 0;
      *(undefined1 *)((int)param_1 + 0x17) = 0;
    }
    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;
    iVar11 = 6;
    if (((uint)param_3 & 1) != 0) {
      iVar11 = 4;
    }
    param_1[0xf] = iVar11;
    pppppppbVar20 = param_2;
    if (*(char *)((int)param_1 + 0x4b) == '\0') {
      param_1[1] = *param_1;
    }
  }
  pppppppbVar18 = param_2;
  ppppppbVar22 = param_3;
  if (pppppppbVar20 != (byte *******)0x0) {
    if ((int)pppppppbVar20 < param_1[8]) {
      if (*(char *)(param_1 + 0x13) == '\0') {
        iVar11 = FUN_0048efec(param_1,(byte *)((int)pppppppbVar20 + -1));
        param_1[0xf] = iVar11;
        pppppppbVar18 = (byte *******)((int)pppppppbVar20 * 4);
        if (param_1[0x14] < 2) {
          cVar2 = *(char *)((int)param_1 + 0x4b);
        }
        else {
          ppppppbVar22 = (byte ******)((param_1[7] - (int)pppppppbVar20) * 4);
          pppppppbVar18 = (byte *******)((int)pppppppbVar18 + param_1[2]);
          (*(code *)PTR_memmove_004bf3a4)();
          cVar2 = *(char *)((int)param_1 + 0x4b);
        }
        if (cVar2 == '\0') {
          iVar11 = param_1[7];
        }
        else {
          ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);
          pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);
          (*(code *)PTR_memmove_004bf3a4)();
          iVar11 = param_1[7];
        }
        param_1[7] = iVar11 - (int)pppppppbVar20;
        param_1[8] = param_1[8] - (int)pppppppbVar20;
        goto LAB_00491360;
      }
      unaff_s6 = (byte *******)param_1[7];
      unaff_s5 = (byte *******)param_1[3];
      pbVar16 = (byte *)0x0;
      pppppppbVar18 = unaff_s6;
      do {
        unaff_s4 = (byte *******)((int)(pbVar16 + (int)pppppppbVar18) / 2);
        ppppppbVar6 = unaff_s5[(int)unaff_s4];
        bVar1 = (int)pbVar16 < (int)unaff_s4;
        pppppppbVar12 = unaff_s4;
        if ((int)ppppppbVar6 <= (int)pppppppbVar20) {
          pbVar16 = (byte *)((int)unaff_s4 + 1);
          if ((int)pppppppbVar20 <= (int)ppppppbVar6) goto LAB_0049145c;
          bVar1 = (int)pbVar16 < (int)pppppppbVar18;
          pppppppbVar12 = pppppppbVar18;
        }
        pppppppbVar18 = pppppppbVar12;
      } while (bVar1);
      if ((int)ppppppbVar6 < (int)pppppppbVar20) {
        unaff_s4 = (byte *******)((int)unaff_s4 + 1);
      }
LAB_0049145c:
      pppppppbVar18 = (byte *******)((int)unaff_s4 + -1);
      iVar11 = FUN_0048efec(param_1);
      param_1[0xf] = iVar11;
      if ((((int)unaff_s6 <= (int)pppppppbVar20) || (pppppppbVar20 != unaff_s4)) ||
         (param_3 = (byte ******)((int)pppppppbVar20 * 4),
         (byte *******)unaff_s5[(int)unaff_s4] != pppppppbVar20)) {
        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));
        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));
        *(undefined1 *)(param_1 + 0x13) = 0;
        if ((0 < (int)unaff_s4) &&
           ((byte *******)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pppppppbVar20)) {
          pppppppbVar12 = unaff_s5 + (int)(unaff_s4 + 0x10000000);
          do {
            unaff_s4 = (byte *******)((int)unaff_s4 + -1);
            if (unaff_s4 == (byte *******)0x0) break;
            pppppppbVar19 = pppppppbVar12 + -2;
            pppppppbVar12 = pppppppbVar12 + -1;
          } while ((byte *******)*pppppppbVar19 == pppppppbVar20);
        }
        if ((int)unaff_s4 < (int)unaff_s6) {
          piVar9 = (int *)(param_1[2] + (int)unaff_s4 * 4);
          iVar11 = *piVar9;
          while (iVar11 == -1) {
            unaff_s4 = (byte *******)((int)unaff_s4 + 1);
            piVar9 = piVar9 + 1;
            if (unaff_s6 == unaff_s4) goto LAB_0049164c;
            iVar11 = *piVar9;
          }
LAB_00491534:
          unaff_s4 = unaff_s5 + (int)unaff_s4;
          ppppppbVar22 = (byte ******)((int)*unaff_s4 - (int)pppppppbVar20);
          param_1[7] = (int)ppppppbVar22;
          if (ppppppbVar22 == (byte ******)0x0) goto LAB_00491650;
          if (0 < (int)ppppppbVar22) {
            iVar11 = 0;
            do {
              *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;
              iVar11 = iVar11 + 1;
              ppppppbVar22 = (byte ******)param_1[7];
            } while (iVar11 < (int)ppppppbVar22);
          }
          pppppppbVar18 = (byte *******)0xff;
          (*(code *)PTR_memset_004bf260)(param_1[1]);
          iVar11 = param_1[7];
        }
        else {
          if (unaff_s4 != unaff_s6) goto LAB_00491534;
LAB_0049164c:
          param_1[7] = 0;
LAB_00491650:
          iVar11 = param_1[7];
        }
        param_1[8] = iVar11;
        goto LAB_00491360;
      }
      (*(code *)PTR_memmove_004bf3a4)
                (param_1[2],param_1[2] + (int)param_3,((int)unaff_s6 - (int)pppppppbVar20) * 4);
      ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);
      pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);
      (*(code *)PTR_memmove_004bf3a4)();
      iVar11 = param_1[7];
      param_1[7] = iVar11 - (int)pppppppbVar20;
      param_1[8] = param_1[8] - (int)pppppppbVar20;
      if (iVar11 - (int)pppppppbVar20 < 1) goto LAB_00491360;
      iVar11 = 0;
      do {
        *(int *)(param_1[3] + iVar11 * 4) = *(int *)(param_1[3] + (int)param_3) - (int)pppppppbVar20
        ;
        iVar11 = iVar11 + 1;
        param_3 = param_3 + 1;
      } while (iVar11 < param_1[7]);
      cVar2 = *(char *)((int)param_1 + 0x4b);
    }
    else {
      unaff_s6 = (byte *******)param_1[7];
      if (*(char *)(param_1 + 0x13) != '\0') {
        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));
        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));
        *(undefined1 *)(param_1 + 0x13) = 0;
      }
      param_1[7] = 0;
      if (param_1[0x14] < 2) {
        pppppppbVar18 =
             (byte *******)(uint)*(byte *)((int)pppppppbVar20 + param_1[6] + *param_1 + -1);
        param_1[8] = 0;
        if (param_1[0x10] != 0) {
          pppppppbVar18 = (byte *******)(uint)*(byte *)((int)pppppppbVar18 + param_1[0x10]);
        }
        iVar11 = 1;
        if ((*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>
             ((uint)pppppppbVar18 & 0x1f) & 1) == 0) {
          iVar11 = 2;
          if (pppppppbVar18 == (byte *******)&DAT_0000000a) {
            if (*(char *)((int)param_1 + 0x4d) == '\0') {
              iVar11 = 0;
            }
          }
          else {
            iVar11 = 0;
          }
        }
        param_1[0xf] = iVar11;
        goto LAB_00491360;
      }
      if (*(char *)((int)param_1 + 0x49) == '\0') {
LAB_0049179c:
        iVar11 = param_1[6];
LAB_004917a0:
        pppppppbVar12 = (byte *******)(iVar11 + param_1[8]);
        if ((int)pppppppbVar12 < (int)param_2) {
          unaff_s8 = param_1 + 4;
          unaff_s7 = (byte *******)&local_40;
          do {
            unaff_s5 = pppppppbVar12;
            iVar24 = param_1[0xb];
            local_3c = param_1[4];
            local_38 = param_1[5];
            pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1);
            iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)
                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8);
            unaff_s4 = local_40;
            if (0xfffffffc < iVar11 - 1U) {
              if (iVar11 == 0) {
                unaff_s4 = (byte *******)0x0;
              }
              else if (iVar24 - (int)unaff_s5 == 0) {
                unaff_s4 = (byte *******)0x0;
              }
              else {
                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);
              }
              param_1[4] = local_3c;
              param_1[5] = local_38;
              iVar11 = 1;
            }
            pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11);
          } while ((int)pppppppbVar12 < (int)param_2);
          param_1[7] = (int)pppppppbVar12 - (int)param_2;
          if (unaff_s4 != (byte *******)0xffffffff) goto LAB_00491834;
        }
        else {
          param_1[7] = (int)pppppppbVar12 - (int)param_2;
        }
        pppppppbVar18 = (byte *******)((int)unaff_s6 + -1);
        iVar11 = FUN_0048efec(param_1,pppppppbVar18,param_3);
        param_1[0xf] = iVar11;
      }
      else {
        pppppppbVar12 = (byte *******)*param_1;
        unaff_s4 = (byte *******)((int)pppppppbVar12 + param_1[6]);
        pppppppbVar18 = (byte *******)((int)unaff_s4 + ((int)pppppppbVar20 - param_1[0x14]));
        if (pppppppbVar18 <= pppppppbVar12) {
          pppppppbVar18 = pppppppbVar12;
        }
        pppppppbVar12 = (byte *******)((int)unaff_s4 + (int)((int)pppppppbVar20 + -1));
        unaff_s5 = pppppppbVar20;
        if (pppppppbVar12 < pppppppbVar18) goto LAB_0049179c;
        bVar3 = *(byte *)pppppppbVar12;
        unaff_s7 = pppppppbVar12;
        while ((bVar3 & 0xc0) == 0x80) {
          pppppppbVar19 = (byte *******)((int)unaff_s7 + -1);
          unaff_s7 = pppppppbVar12;
          if (pppppppbVar19 < pppppppbVar18) goto LAB_0049179c;
          unaff_s7 = pppppppbVar19;
          bVar3 = *(byte *)pppppppbVar19;
        }
        iVar11 = param_1[0x10];
        pbVar16 = (byte *)((int)unaff_s4 + (param_1[0xc] - (int)unaff_s7));
        pppppppbVar18 = unaff_s7;
        if (iVar11 != 0) {
          pbVar17 = (byte *)0x6;
          if ((int)pbVar16 < 7) {
            pbVar17 = pbVar16;
          }
          if ((int)(pbVar17 + -1) < 0) {
            pppppppbVar18 = appppppbStack_34;
          }
          else {
            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));
            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);
            do {
              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);
              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);
              pbVar16 = pbVar16 + -1;
            } while ((byte *******)ppppppbVar22 != appppppbStack_34);
            pppppppbVar18 = appppppbStack_34;
          }
        }
        local_3c = 0;
        local_38 = 0;
        uVar29 = (*(code *)PTR_mbrtowc_004bf2ec)(&local_40);
        uVar30 = (int)((int)unaff_s4 + (int)pppppppbVar20) - (int)unaff_s7;
        if ((uVar29 < uVar30) || (0xfffffffd < uVar29)) goto LAB_0049179c;
        *(undefined1 *)(param_1 + 4) = 0;
        *(undefined1 *)((int)param_1 + 0x11) = 0;
        *(undefined1 *)((int)param_1 + 0x12) = 0;
        *(undefined1 *)((int)param_1 + 0x13) = 0;
        *(undefined1 *)(param_1 + 5) = 0;
        *(undefined1 *)((int)param_1 + 0x15) = 0;
        *(undefined1 *)((int)param_1 + 0x16) = 0;
        *(undefined1 *)((int)param_1 + 0x17) = 0;
        param_1[7] = uVar29 - uVar30;
        unaff_s4 = local_40;
        if (local_40 == (byte *******)0xffffffff) {
          iVar11 = param_1[6];
          goto LAB_004917a0;
        }
LAB_00491834:
        if (*(char *)((int)param_1 + 0x4e) == '\0') {
LAB_00491840:
          iVar11 = 2;
          if (unaff_s4 == (byte *******)&DAT_0000000a) {
            if (*(char *)((int)param_1 + 0x4d) == '\0') {
              iVar11 = 0;
            }
          }
          else {
            iVar11 = 0;
          }
        }
        else {
          iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);
          iVar11 = 1;
          if (iVar24 == 0) {
            if (unaff_s4 == (byte *******)0x5f) {
              param_1[0xf] = 1;
              goto LAB_00491854;
            }
            goto LAB_00491840;
          }
        }
        param_1[0xf] = iVar11;
      }
LAB_00491854:
      ppppppbVar22 = (byte ******)param_1[7];
      if (ppppppbVar22 == (byte ******)0x0) {
LAB_00491860:
        iVar11 = param_1[7];
      }
      else {
        iVar11 = 0;
        if (0 < (int)ppppppbVar22) {
          do {
            *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;
            iVar11 = iVar11 + 1;
            ppppppbVar22 = (byte ******)param_1[7];
          } while (iVar11 < (int)ppppppbVar22);
        }
        pppppppbVar18 = (byte *******)0xff;
        if (*(char *)((int)param_1 + 0x4b) == '\0') goto LAB_00491860;
        (*(code *)PTR_memset_004bf260)(param_1[1]);
        iVar11 = param_1[7];
      }
      param_1[8] = iVar11;
LAB_00491360:
      cVar2 = *(char *)((int)param_1 + 0x4b);
    }
    if (cVar2 == '\0') {
      param_1[1] = (int)((int)pppppppbVar20 + param_1[1]);
    }
  }
  param_1[6] = (int)param_2;
  iVar11 = param_1[0xc];
  param_1[0xc] = iVar11 - (int)pppppppbVar20;
  iVar24 = param_1[0xe] - (int)pppppppbVar20;
  param_1[0xe] = iVar24;
  if (param_1[0x14] < 2) {
    if (*(char *)((int)param_1 + 0x4b) == '\0') {
      param_1[7] = iVar11 - (int)pppppppbVar20;
      goto LAB_00491aa8;
    }
    if (*(char *)(param_1 + 0x12) == '\0') {
      if (param_1[0x10] == 0) goto LAB_00491aa8;
      FUN_00489d80();
      param_1[10] = 0;
    }
    else {
      FUN_0048b84c(param_1);
      param_1[10] = 0;
    }
  }
  else {
    if (*(char *)(param_1 + 0x12) == '\0') {
      FUN_0048b928(param_1);
      param_1[10] = 0;
      goto LAB_00491aac;
    }
    ppppbVar5 = (byte ****)FUN_0048c3a4();
    if (ppppbVar5 != (byte ****)0x0) goto LAB_00491ab0;
LAB_00491aa8:
    param_1[10] = 0;
  }
LAB_00491aac:
  ppppbVar5 = (byte ****)0x0;
LAB_00491ab0:
  if (appppppbStack_34[2] == *(byte *******)PTR___stack_chk_guard_004bf38c) {
    return ppppbVar5;
  }
  pcVar32 = FUN_00491b60;
  ppppppbVar6 = appppppbStack_34[2];
  (*(code *)PTR___stack_chk_fail_004bf34c)();
  ppppbStack_84 = *(byte *****)PTR___stack_chk_guard_004bf38c;
  pppppbVar31 = *ppppppbVar6;
  if (pppppbVar31[0x17] == (byte ****)0x1) {
    uVar29 = (uint)((int)ppppppbVar6[3] << 9) >> 0x1f;
  }
  else {
    uVar29 = 0;
  }
  ppppppbVar13 = ppppppbVar6;
  pppppppbVar20 = pppppppbVar18;
  ppppppbVar21 = ppppppbVar22;
  piStack_80 = param_1;
  iStack_7c = iVar24;
  pppppppbStack_78 = param_2;
  ppppppbStack_74 = param_3;
  pppppppbStack_70 = unaff_s4;
  pppppppbStack_6c = unaff_s5;
  pppppppbStack_68 = unaff_s6;
  pppppppbStack_64 = unaff_s7;
  piStack_60 = unaff_s8;
  pcStack_5c = pcVar32;
  if (0 < (int)pppppppbVar18[2]) {
    iStack_1a8 = 0;
    do {
      pppppbVar23 = pppppppbVar18[3][iStack_1a8];
      ppppppbVar7 = (byte ******)((int)pppppbVar23 * 8);
      ppppbVar5 = *pppppbVar31 + (int)pppppbVar23 * 2;
      ppppppbVar13 = (byte ******)(uint)*(byte *)(ppppbVar5 + 1);
      pppppppbVar20 = (byte *******)&DAT_00000001;
      if (ppppppbVar13 == (byte ******)&DAT_00000001) {
        uVar30 = (uint)*(byte *)ppppbVar5;
        *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;
        if (uVar29 != 0) {
          if (uVar30 + 0x80 < 0x180) {
            piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();
            uVar30 = *(uint *)(*piVar9 + uVar30 * 4);
          }
          *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;
        }
        if (((int)ppppppbVar6[3] << 9 < 0) &&
           (ppppppbVar13 = ppppppbVar7, 1 < (int)pppppbVar31[0x17])) {
          bStack_184 = *(byte *)(*pppppbVar31 + (int)pppppbVar23 * 2);
          if ((byte ****)((int)pppppbVar23 + 1U) < pppppbVar31[2]) {
            ppppbVar5 = (byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2));
            ppppppbVar7 = ppppppbVar7 + 4;
            if (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400) {
              puVar15 = auStack_183;
              do {
                puVar14 = puVar15 + 1;
                *puVar15 = *(undefined1 *)ppppbVar5;
                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;
                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);
                ppppppbVar7 = ppppppbVar7 + 2;
                puVar15 = puVar14;
              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);
            }
            else {
              puVar14 = auStack_183;
            }
          }
          else {
            puVar14 = auStack_183;
          }
          pppppbStack_18c = (byte *****)0x0;
          uStack_188 = 0;
          pppppppbVar20 = (byte *******)&bStack_184;
          iVar11 = -(int)pppppppbVar20;
          ppppppbVar13 = (byte ******)&ppppppbStack_190;
          ppppppbVar21 = (byte ******)(puVar14 + iVar11);
          ppppppbVar7 = (byte ******)(*(code *)PTR_mbrtowc_004bf2ec)();
          if ((byte ******)(puVar14 + iVar11) == ppppppbVar7) {
            pppppppbVar20 = (byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190);
            ppppppbVar21 = &pppppbStack_18c;
            ppppppbVar13 = (byte ******)&bStack_184;
            iVar11 = (*(code *)PTR_wcrtomb_004bf3dc)();
            if (iVar11 != -1) {
              *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;
            }
          }
        }
      }
      else {
        pppppppbVar20 = (byte *******)&DAT_00000006;
        if (ppppppbVar13 == (byte ******)0x3) {
          iStack_1ac = 0;
          iVar11 = 0;
          do {
            uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac);
            uVar30 = 0;
            iVar24 = iVar11;
            do {
              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&
                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {
                iVar8 = iVar24;
                if (iVar24 + 0x80U < 0x180) {
                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();
                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);
                }
                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;
              }
              uVar30 = uVar30 + 1;
              iVar24 = iVar24 + 1;
            } while (uVar30 != 0x20);
            iVar11 = iVar11 + 0x20;
            iStack_1ac = iStack_1ac + 4;
          } while (iVar11 != 0x100);
        }
        else if (ppppppbVar13 == (byte ******)&DAT_00000006) {
          pppbVar25 = *ppppbVar5;
          if (((int)pppppbVar31[0x17] < 2) ||
             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&
              (pppbVar25[8] == (byte **)0x0)))) {
            iVar11 = 0;
            if (0 < (int)pppbVar25[5]) {
              do {
                pppppbStack_18c = (byte *****)0x0;
                uStack_188 = 0;
                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];
                ppppppbVar13 = (byte ******)&bStack_184;
                ppppppbVar21 = &pppppbStack_18c;
                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();
                uVar30 = (uint)bStack_184;
                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)
                   ) {
                  if (uVar30 + 0x80 < 0x180) {
                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();
                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);
                  }
                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;
                }
                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {
                  pppppppbVar20 =
                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);
                  ppppppbVar13 = (byte ******)&bStack_184;
                  ppppppbVar21 = &pppppbStack_18c;
                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();
                  if (iVar24 != -1) {
                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;
                  }
                }
                iVar11 = iVar11 + 1;
              } while (iVar11 < (int)pppbVar25[5]);
            }
          }
          else {
            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);
            do {
              pppppbStack_18c = (byte *****)0x0;
              uStack_188 = 0;
              ppppppbVar21 = (byte ******)&DAT_00000001;
              ppppppbVar13 = (byte ******)0x0;
              pppppppbVar20 = &ppppppbStack_190;
              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();
              if (iVar11 == -2) {
                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;
              }
              bVar1 = ppppppbStack_190._0_1_ != 0xff;
              ppppppbStack_190 =
                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);
            } while (bVar1);
          }
        }
        else {
          if (((uint)ppppppbVar13 & 0xfd) == 5) {
            ppppppbVar21 = (byte ******)0x100;
            pppppppbVar20 = (byte *******)&DAT_00000001;
            (*(code *)PTR_memset_004bf260)();
            ppppppbVar13 = ppppppbVar22;
            break;
          }
          if (ppppppbVar13 == (byte ******)0x2) {
            ppppppbVar21 = (byte ******)0x100;
            pppppppbVar20 = (byte *******)&DAT_00000001;
            (*(code *)PTR_memset_004bf260)(ppppppbVar22);
            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;
            ppppppbVar13 = ppppppbVar6;
            break;
          }
        }
      }
      iStack_1a8 = iStack_1a8 + 1;
    } while (iStack_1a8 < (int)pppppppbVar18[2]);
  }
  if (ppppbStack_84 == *(byte *****)PTR___stack_chk_guard_004bf38c) {
    return *(byte *****)PTR___stack_chk_guard_004bf38c;
  }
  (*(code *)PTR___stack_chk_fail_004bf34c)();
  pppppbVar31 = ppppppbVar21[1];
  if (pppppbVar31 == (byte *****)0x0) {
    *ppppppbVar13 = (byte *****)0x0;
  }
  else {
    if (0 < (int)pppppbVar31) {
      pppppbVar23 = ppppppbVar21[2];
      pppppbVar26 = pppppbVar23 + (int)pppppbVar31;
      do {
        ppppbVar5 = *pppppbVar23;
        pppppbVar23 = pppppbVar23 + 1;
        pppppbVar31 = (byte *****)((int)pppppbVar31 + (int)ppppbVar5);
      } while (pppppbVar23 != pppppbVar26);
    }
    pppppbVar23 = pppppppbVar20[8][((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3];
    if (0 < (int)pppppbVar23) {
      pppppbVar26 = (pppppppbVar20[8] + ((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3)[2];
      pppppbVar28 = (byte *****)0x0;
      do {
        ppppbVar5 = *pppppbVar26;
        if ((pppppbVar31 == (byte *****)*ppppbVar5) &&
           (iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21), iVar11 != 0)) {
          return ppppbVar5;
        }
        pppppbVar28 = (byte *****)((int)pppppbVar28 + 1);
        pppppbVar26 = pppppbVar26 + 1;
      } while (pppppbVar23 != pppppbVar28);
    }
    ppppbVar5 = (byte ****)(*(code *)PTR_calloc_004bf160)(0x38,1);
    if (ppppbVar5 != (byte ****)0x0) {
      iVar11 = FUN_0048c08c(ppppbVar5 + 1,ppppppbVar21);
      if (iVar11 == 0) {
        ppppbVar5[10] = (byte ***)(ppppbVar5 + 1);
        if (0 < (int)ppppppbVar21[1]) {
          ppppppbVar22 = *pppppppbVar20;
          pppppbVar23 = ppppppbVar21[2];
          pppppbVar26 = pppppbVar23 + (int)ppppppbVar21[1];
          do {
            ppppbVar10 = *pppppbVar23;
            cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1);
            if (cVar2 == '\x01') {
              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {
                *(byte *)(ppppbVar5 + 0xd) =
                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |
                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |
                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);
LAB_004922f0:
                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {
                  bVar3 = *(byte *)(ppppbVar5 + 0xd);
LAB_00492380:
                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;
                }
              }
            }
            else {
              bVar3 = *(byte *)(ppppbVar5 + 0xd);
              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |
                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<
                            2);
              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;
              if (cVar2 == '\x02') {
                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;
              }
              else {
                if (cVar2 != '\x04') {
                  if (cVar2 != '\f') goto LAB_004922f0;
                  bVar3 = *(byte *)(ppppbVar5 + 0xd);
                  goto LAB_00492380;
                }
                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;
              }
            }
            pppppbVar23 = pppppbVar23 + 1;
          } while (pppppbVar23 != pppppbVar26);
        }
        iVar11 = FUN_0048b6d0(pppppppbVar20,ppppbVar5,pppppbVar31);
        if (iVar11 == 0) {
          return ppppbVar5;
        }
        FUN_0048e3e8(ppppbVar5);
      }
      else {
        (*(code *)PTR_free_004bf39c)(ppppbVar5);
      }
    }
    *ppppppbVar13 = (byte *****)0xc;
  }
  return (byte ****)0x0;
}


addiu sp,sp,-0x58
sw ra,0x54(sp)
sw s8,0x50(sp)
sw s7,0x4c(sp)
sw s6,0x48(sp)
sw s5,0x44(sp)
sw s4,0x40(sp)
sw s3,0x3c(sp)
sw s2,0x38(sp)
sw s1,0x34(sp)
sw s0,0x30(sp)
lui gp,0x4c
addiu gp,gp,0x6b20
sw gp,0x10(sp)
or s0,a0,zero
or s2,a1,zero
or s3,a2,zero
lw v0,-0x7794(gp)
lw v0,0x0(v0)
sw v0,0x2c(sp)
lw s1,0x18(a0)
slt v0,a1,s1
beq v0,zero,0x004912f0
_subu s1,a1,s1
lw v0,0x50(a0)
slti v0,v0,0x2
beq v0,zero,0x004913cc
_nop
lw v0,0x2c(s0)
sw v0,0x30(s0)
lw v0,0x34(s0)
sw v0,0x38(s0)
sw zero,0x1c(s0)
sw zero,0x18(s0)
sw zero,0x20(s0)
sb zero,0x4c(s0)
andi v0,s3,0x1
li a0,0x4
li v1,0x6
movn v1,a0,v0
sw v1,0x3c(s0)
lbu v0,0x4b(s0)
bne v0,zero,0x004912f0
_or s1,s2,zero
lw v0,0x0(s0)
sw v0,0x4(s0)
beq s1,zero,0x00491378
_nop
lw v0,0x20(s0)
slt v0,s1,v0
beq v0,zero,0x004916ac
_nop
lbu v0,0x4c(s0)
bne v0,zero,0x004913f0
_addiu a1,s1,-0x1
or a2,s3,zero
or a0,s0,zero
jal 0x0048efec
_nop
lw gp,0x10(sp)
sw v0,0x3c(s0)
lw v0,0x50(s0)
slti v0,v0,0x2
beq v0,zero,0x0049165c
_sll a1,s1,0x2
lbu v0,0x4b(s0)
bne v0,zero,0x00491688
_lw t9,-0x777c(gp)
lw v0,0x1c(s0)
subu v0,v0,s1
sw v0,0x1c(s0)
lw v0,0x20(s0)
subu v0,v0,s1
sw v0,0x20(s0)
lbu v0,0x4b(s0)
bne v0,zero,0x00491378
_nop
lw v0,0x4(s0)
addu v0,v0,s1
sw v0,0x4(s0)
sw s2,0x18(s0)
lw v0,0x30(s0)
subu v0,v0,s1
sw v0,0x30(s0)
lw v1,0x38(s0)
subu s1,v1,s1
sw s1,0x38(s0)
lw v1,0x50(s0)
slti v1,v1,0x2
bne v1,zero,0x00491a98
_nop
lbu v0,0x48(s0)
beq v0,zero,0x00491a84
_or a0,s0,zero
jal 0x0048c3a4
_nop
lw gp,0x10(sp)
beq v0,zero,0x00491aa8
_nop
b 0x00491ab0
_nop
sb zero,0x10(a0)
sb zero,0x11(a0)
sb zero,0x12(a0)
sb zero,0x13(a0)
sb zero,0x14(a0)
sb zero,0x15(a0)
sb zero,0x16(a0)
b 0x004912a8
_sb zero,0x17(a0)
lw s6,0x1c(s0)
lw s5,0xc(s0)
or v1,s6,zero
b 0x00491410
_or a0,zero,zero
or v1,s4,zero
beq a1,zero,0x0049144c
_slt v0,v0,s1
addu v0,a0,v1
srl s4,v0,0x1f
addu s4,s4,v0
sra s4,s4,0x1
sll v0,s4,0x2
addu v0,s5,v0
lw v0,0x0(v0)
slt a1,s1,v0
bne a1,zero,0x00491404
_slt a1,a0,s4
slt a0,v0,s1
beq a0,zero,0x00491458
_addiu a0,s4,0x1
b 0x00491408
_slt a1,a0,v1
beq v0,zero,0x0049145c
_or a2,s3,zero
addiu s4,s4,0x1
or a2,s3,zero
addiu a1,s4,-0x1
or a0,s0,zero
jal 0x0048efec
_nop
lw gp,0x10(sp)
sw v0,0x3c(s0)
slt v0,s1,s6
beq v0,zero,0x00491488
_nop
beq s1,s4,0x0049159c
_sll v0,s4,0x2
lw v0,0x2c(s0)
subu v0,v0,s2
addu v0,v0,s1
sw v0,0x30(s0)
lw v0,0x34(s0)
subu v0,v0,s2
addu v0,v0,s1
sw v0,0x38(s0)
blez s4,0x004914f0
_sb zero,0x4c(s0)
lui v0,0x3fff
ori v0,v0,0xffff
addu v0,s4,v0
sll v0,v0,0x2
addu v1,s5,v0
lw v1,0x0(v1)
bne v1,s1,0x004914f0
_addiu v0,v0,0x4
addu v0,s5,v0
addiu s4,s4,-0x1
beq s4,zero,0x004914f0
_addiu v0,v0,-0x4
lw v1,-0x4(v0)
beq v1,s1,0x004914d8
_addiu s4,s4,-0x1
addiu s4,s4,0x1
slt v0,s4,s6
beq v0,zero,0x00491644
_sll v0,s4,0x2
lw v1,0x8(s0)
addu v0,v1,v0
lw a0,0x0(v0)
li v1,-0x1
bne a0,v1,0x00491534
_nop
li a0,-0x1
addiu s4,s4,0x1
beq s6,s4,0x0049164c
_addiu v0,v0,0x4
lw v1,0x0(v0)
beq v1,a0,0x0049151c
_addiu s4,s4,0x1
addiu s4,s4,-0x1
sll s4,s4,0x2
addu s4,s5,s4
lw a2,0x0(s4)
subu a2,a2,s1
beq a2,zero,0x00491650
_sw a2,0x1c(s0)
blez a2,0x0049157c
_li a1,-0x1
or v0,zero,zero
lw v1,0x8(s0)
sll a0,v0,0x2
addu v1,v1,a0
sw a1,0x0(v1)
addiu v0,v0,0x1
lw a2,0x1c(s0)
slt v1,v0,a2
bne v1,zero,0x00491558
_nop
li a1,0xff
lw a0,0x4(s0)
lw t9,-0x78c0(gp)
jalr t9
_nop
lw gp,0x10(sp)
b 0x00491654
_lw v0,0x1c(s0)
addu v0,s5,v0
lw v0,0x0(v0)
bne v0,s1,0x00491488
_sll s3,s1,0x2
lw a0,0x8(s0)
subu a2,s6,s1
sll a2,a2,0x2
addu a1,a0,s3
lw t9,-0x777c(gp)
jalr t9
_nop
lw gp,0x10(sp)
lw a0,0x4(s0)
lw a2,0x1c(s0)
subu a2,a2,s1
addu a1,a0,s1
lw t9,-0x777c(gp)
jalr t9
_nop
lw gp,0x10(sp)
lw v0,0x1c(s0)
subu v0,v0,s1
sw v0,0x1c(s0)
lw v1,0x20(s0)
subu v1,v1,s1
blez v0,0x00491360
_sw v1,0x20(s0)
or v1,zero,zero
lw v0,0xc(s0)
sll a0,v1,0x2
addu a0,v0,a0
addu v0,v0,s3
lw v0,0x0(v0)
subu v0,v0,s1
sw v0,0x0(a0)
addiu v1,v1,0x1
lw v0,0x1c(s0)
slt v0,v1,v0
bne v0,zero,0x0049160c
_addiu s3,s3,0x4
b 0x00491364
_lbu v0,0x4b(s0)
bne s4,s6,0x00491534
_nop
sw zero,0x1c(s0)
lw v0,0x1c(s0)
b 0x00491360
_sw v0,0x20(s0)
lw a0,0x8(s0)
lw a2,0x1c(s0)
subu a2,a2,s1
sll a2,a2,0x2
addu a1,a0,a1
lw t9,-0x777c(gp)
jalr t9
_nop
lw gp,0x10(sp)
b 0x00491340
_lbu v0,0x4b(s0)
lw a0,0x4(s0)
lw a2,0x1c(s0)
subu a2,a2,s1
addu a1,a0,s1
jalr t9
_nop
lw gp,0x10(sp)
b 0x0049134c
_lw v0,0x1c(s0)
lbu v0,0x4c(s0)
bne v0,zero,0x0049186c
_lw s6,0x1c(s0)
sw zero,0x1c(s0)
lw v0,0x50(s0)
slti v1,v0,0x2
bne v1,zero,0x004919f8
_nop
lbu v1,0x49(s0)
beq v1,zero,0x0049179c
_subu v0,s1,v0
lw v1,0x0(s0)
lw s4,0x18(s0)
addu s4,v1,s4
addu v0,s4,v0
sltu a0,v1,v0
movz v0,v1,a0
or a0,v0,zero
addiu a1,s1,-0x1
addu a1,s4,a1
sltu v0,a1,v0
bne v0,zero,0x0049179c
_or s5,s1,zero
lbu v0,0x0(a1)
andi v0,v0,0xc0
li v1,0x80
bne v0,v1,0x0049174c
_or s7,a1,zero
li a3,-0x40
li a2,0x80
addiu a1,a1,-0x1
sltu v1,a1,a0
bne v1,zero,0x0049179c
_nop
lbu v0,0x0(a1)
and v0,a3,v0
beq v0,a2,0x00491728
_addiu a1,a1,-0x1
addiu a1,a1,0x1
or s7,a1,zero
lw a2,0x30(s0)
addu a2,s4,a2
lw v1,0x40(s0)
bne v1,zero,0x00491894
_subu a2,a2,a1
sw zero,0x1c(sp)
addiu a3,sp,0x1c
sw zero,0x4(a3)
addiu a0,sp,0x18
lw t9,-0x7834(gp)
jalr t9
_nop
lw gp,0x10(sp)
addu v1,s4,s5
subu v1,v1,s7
sltu a0,v0,v1
bne a0,zero,0x0049179c
_sltiu a0,v0,-0x2
bne a0,zero,0x004918e4
_subu v0,v0,v1
lw v0,0x18(s0)
lw v1,0x20(s0)
addu v0,v0,v1
slt v1,v0,s2
beq v1,zero,0x00491b30
_or a2,s3,zero
addiu s8,s0,0x10
addiu s7,sp,0x18
lw s4,0x2c(s0)
subu s4,s4,v0
lw a0,0x10(s0)
lw v1,0x14(s0)
sw a0,0x1c(sp)
sw v1,0x20(sp)
or s5,v0,zero
lw a1,0x0(s0)
or a3,s8,zero
or a2,s4,zero
addu a1,a1,v0
or a0,s7,zero
lw t9,-0x7834(gp)
jalr t9
_nop
lw gp,0x10(sp)
addiu v1,v0,-0x1
sltiu v1,v1,-0x3
beq v1,zero,0x00491920
_nop
lw s4,0x18(sp)
addu v0,s5,v0
slt v1,v0,s2
bne v1,zero,0x004917bc
_nop
subu v0,v0,s2
sw v0,0x1c(s0)
li v0,-0x1
beq s4,v0,0x00491b38
_or a2,s3,zero
lbu v0,0x4e(s0)
bne v0,zero,0x00491964
_or a0,s4,zero
li v0,0xa
beq s4,v0,0x00491990
_li v1,0x2
or v0,zero,zero
sw v0,0x3c(s0)
lw a2,0x1c(s0)
bne a2,zero,0x004919a0
_nop
lw v0,0x1c(s0)
b 0x00491360
_sw v0,0x20(s0)
lw v0,0x2c(s0)
subu v0,v0,s2
addu v0,v0,s1
sw v0,0x30(s0)
lw v0,0x34(s0)
subu v0,v0,s2
addu v0,v0,s1
sw v0,0x38(s0)
b 0x004916b8
_sb zero,0x4c(s0)
slti v0,a2,0x7
li a0,0x6
movn a0,a2,v0
or v0,a0,zero
addiu a0,a0,-0x1
bltz a0,0x004918dc
_addiu a3,sp,0x24
addu a1,a1,a0
addu v0,a3,v0
lbu a0,0x0(a1)
addu a0,v1,a0
lbu a0,0x0(a0)
sb a0,-0x1(v0)
addiu v0,v0,-0x1
bne v0,a3,0x004918b8
_addiu a1,a1,-0x1
b 0x00491760
_addiu a1,sp,0x24
b 0x00491760
_addiu a1,sp,0x24
sb zero,0x10(s0)
sb zero,0x11(s0)
sb zero,0x12(s0)
sb zero,0x13(s0)
sb zero,0x14(s0)
sb zero,0x15(s0)
sb zero,0x16(s0)
sb zero,0x17(s0)
sw v0,0x1c(s0)
lw s4,0x18(sp)
li v0,-0x1
bne s4,v0,0x00491834
_nop
b 0x004917a0
_lw v0,0x18(s0)
beq v0,zero,0x00491940
_nop
beq s4,zero,0x0049195c
_nop
lw v0,0x0(s0)
addu v0,v0,s5
b 0x00491944
_lbu s4,0x0(v0)
or s4,zero,zero
lw v0,0x1c(sp)
sw v0,0x10(s0)
lw v0,0x20(sp)
sw v0,0x14(s0)
b 0x00491810
_li v0,0x1
b 0x00491944
_or s4,zero,zero
lw t9,-0x78c4(gp)
jalr t9
_nop
lw gp,0x10(sp)
bne v0,zero,0x00491850
_li v0,0x1
li v0,0x5f
bne s4,v0,0x00491840
_li v0,0x1
b 0x00491854
_sw v0,0x3c(s0)
lbu v0,0x4d(s0)
movz v1,zero,v0
b 0x00491850
_or v0,v1,zero
blez a2,0x004919d0
_or v0,zero,zero
li a1,-0x1
lw v1,0x8(s0)
sll a0,v0,0x2
addu v1,v1,a0
sw a1,0x0(v1)
addiu v0,v0,0x1
lw a2,0x1c(s0)
slt v1,v0,a2
bne v1,zero,0x004919ac
_nop
lbu v0,0x4b(s0)
beq v0,zero,0x00491860
_li a1,0xff
lw a0,0x4(s0)
lw t9,-0x78c0(gp)
jalr t9
_nop
lw gp,0x10(sp)
b 0x00491864
_lw v0,0x1c(s0)
lw v0,0x0(s0)
lw v1,0x18(s0)
addu v0,v0,s1
addu v0,v0,v1
lbu v0,-0x1(v0)
sw zero,0x20(s0)
lw v1,0x40(s0)
beq v1,zero,0x00491a28
_or a1,v0,zero
addu v0,v1,v0
lbu v0,0x0(v0)
or a1,v0,zero
bltz v0,0x00491a68
_or v1,v0,zero
sra v1,v1,0x5
lw a0,0x44(s0)
sll v1,v1,0x2
addu v1,a0,v1
lw v1,0x0(v1)
srlv v0,v1,v0
andi v0,v0,0x1
bne v0,zero,0x00491a7c
_li v0,0x1
li v0,0xa
beq a1,v0,0x00491a70
_li v1,0x2
b 0x00491a7c
_or v0,zero,zero
b 0x00491a30
_addiu v1,v0,0x1f
lbu v0,0x4d(s0)
movz v1,zero,v0
or v0,v1,zero
b 0x00491360
_sw v0,0x3c(s0)
jal 0x0048b928
_nop
lw gp,0x10(sp)
b 0x00491aac
_sw zero,0x28(s0)
lbu v1,0x4b(s0)
bne v1,zero,0x00491af0
_nop
sw v0,0x1c(s0)
sw zero,0x28(s0)
or v0,zero,zero
lw a0,0x2c(sp)
lw v1,-0x7794(gp)
lw v1,0x0(v1)
bne a0,v1,0x00491b54
_lw ra,0x54(sp)
lw s8,0x50(sp)
lw s7,0x4c(sp)
lw s6,0x48(sp)
lw s5,0x44(sp)
lw s4,0x40(sp)
lw s3,0x3c(sp)
lw s2,0x38(sp)
lw s1,0x34(sp)
lw s0,0x30(sp)
jr ra
_addiu sp,sp,0x58
lbu v0,0x48(s0)
bne v0,zero,0x00491b1c
_or a0,s0,zero
lw v0,0x40(s0)
beq v0,zero,0x00491aa8
_nop
jal 0x00489d80
_nop
lw gp,0x10(sp)
b 0x00491aac
_sw zero,0x28(s0)
jal 0x0048b84c
_nop
lw gp,0x10(sp)
b 0x00491aac
_sw zero,0x28(s0)
subu v0,v0,s2
sw v0,0x1c(s0)
addiu a1,s6,-0x1
or a0,s0,zero
jal 0x0048efec
_nop
lw gp,0x10(sp)
b 0x00491854
_sw v0,0x3c(s0)
lw t9,-0x77d4(gp)
jalr t9
_nop
(translation_unit "/* WARNING: Removing unreachable block (ram,0x00491a68) */\n/* WARNING: Type propagation algorithm not settling */\n\nbyte **** FUN_00491238(int *param_1,byte *******param_2,byte ******param_3)\n\n{\n  bool bVar1;\n  char cVar2;\n  byte bVar3;\n  byte bVar4;\n  byte ****ppppbVar5;\n  byte ******ppppppbVar6;\n  byte ******ppppppbVar7;\n  int iVar8;\n  int *piVar9;\n  byte ****ppppbVar10;\n  int iVar11;\n  byte *******pppppppbVar12;\n  byte ******ppppppbVar13;\n  undefined1 *puVar14;\n  byte *pbVar16;\n  byte *pbVar17;\n  byte *******pppppppbVar18;\n  byte *******pppppppbVar19;\n  byte *******pppppppbVar20;\n  byte ******ppppppbVar21;\n  byte ******ppppppbVar22;\n  byte *****pppppbVar23;\n  int iVar24;\n  byte ***pppbVar25;\n  byte *****pppppbVar26;\n  uint uVar27;\n  byte *****pppppbVar28;\n  byte *******unaff_s4;\n  byte *******unaff_s5;\n  byte *******unaff_s6;\n  uint uVar29;\n  byte *******unaff_s7;\n  uint uVar30;\n  int *unaff_s8;\n  byte *****pppppbVar31;\n  code *pcVar32;\n  int iStack_1ac;\n  int iStack_1a8;\n  byte ******ppppppbStack_190;\n  byte *****pppppbStack_18c;\n  undefined4 uStack_188;\n  byte bStack_184;\n  undefined1 auStack_183 [255];\n  byte ****ppppbStack_84;\n  int *piStack_80;\n  int iStack_7c;\n  byte *******pppppppbStack_78;\n  byte ******ppppppbStack_74;\n  byte *******pppppppbStack_70;\n  byte *******pppppppbStack_6c;\n  byte *******pppppppbStack_68;\n  byte *******pppppppbStack_64;\n  int *piStack_60;\n  code *pcStack_5c;\n  byte *******local_40;\n  int local_3c;\n  int local_38;\n  byte ******appppppbStack_34 [3];\n  undefined1 *puVar15;\n  \n  appppppbStack_34[2] = *(byte *******)PTR___stack_chk_guard_004bf38c;\n  pppppppbVar20 = (byte *******)((int)param_2 - param_1[6]);\n  if ((int)param_2 < param_1[6]) {\n    if (1 < param_1[0x14]) {\n      *(undefined1 *)(param_1 + 4) = 0;\n      *(undefined1 *)((int)param_1 + 0x11) = 0;\n      *(undefined1 *)((int)param_1 + 0x12) = 0;\n      *(undefined1 *)((int)param_1 + 0x13) = 0;\n      *(undefined1 *)(param_1 + 5) = 0;\n      *(undefined1 *)((int)param_1 + 0x15) = 0;\n      *(undefined1 *)((int)param_1 + 0x16) = 0;\n      *(undefined1 *)((int)param_1 + 0x17) = 0;\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    iVar11 = 6;\n    if (((uint)param_3 & 1) != 0) {\n      iVar11 = 4;\n    }\n    param_1[0xf] = iVar11;\n    pppppppbVar20 = param_2;\n    if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[1] = *param_1;\n    }\n  }\n  pppppppbVar18 = param_2;\n  ppppppbVar22 = param_3;\n  if (pppppppbVar20 != (byte *******)0x0) {\n    if ((int)pppppppbVar20 < param_1[8]) {\n      if (*(char *)(param_1 + 0x13) == '\0') {\n        iVar11 = FUN_0048efec(param_1,(byte *)((int)pppppppbVar20 + -1));\n        param_1[0xf] = iVar11;\n        pppppppbVar18 = (byte *******)((int)pppppppbVar20 * 4);\n        if (param_1[0x14] < 2) {\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        else {\n          ppppppbVar22 = (byte ******)((param_1[7] - (int)pppppppbVar20) * 4);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar18 + param_1[2]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        if (cVar2 == '\0') {\n          iVar11 = param_1[7];\n        }\n        else {\n          ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar11 = param_1[7];\n        }\n        param_1[7] = iVar11 - (int)pppppppbVar20;\n        param_1[8] = param_1[8] - (int)pppppppbVar20;\n        goto LAB_00491360;\n      }\n      unaff_s6 = (byte *******)param_1[7];\n      unaff_s5 = (byte *******)param_1[3];\n      pbVar16 = (byte *)0x0;\n      pppppppbVar18 = unaff_s6;\n      do {\n        unaff_s4 = (byte *******)((int)(pbVar16 + (int)pppppppbVar18) / 2);\n        ppppppbVar6 = unaff_s5[(int)unaff_s4];\n        bVar1 = (int)pbVar16 < (int)unaff_s4;\n        pppppppbVar12 = unaff_s4;\n        if ((int)ppppppbVar6 <= (int)pppppppbVar20) {\n          pbVar16 = (byte *)((int)unaff_s4 + 1);\n          if ((int)pppppppbVar20 <= (int)ppppppbVar6) goto LAB_0049145c;\n          bVar1 = (int)pbVar16 < (int)pppppppbVar18;\n          pppppppbVar12 = pppppppbVar18;\n        }\n        pppppppbVar18 = pppppppbVar12;\n      } while (bVar1);\n      if ((int)ppppppbVar6 < (int)pppppppbVar20) {\n        unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n      }\nLAB_0049145c:\n      pppppppbVar18 = (byte *******)((int)unaff_s4 + -1);\n      iVar11 = FUN_0048efec(param_1);\n      param_1[0xf] = iVar11;\n      if ((((int)unaff_s6 <= (int)pppppppbVar20) || (pppppppbVar20 != unaff_s4)) ||\n         (param_3 = (byte ******)((int)pppppppbVar20 * 4),\n         (byte *******)unaff_s5[(int)unaff_s4] != pppppppbVar20)) {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        if ((0 < (int)unaff_s4) &&\n           ((byte *******)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pppppppbVar20)) {\n          pppppppbVar12 = unaff_s5 + (int)(unaff_s4 + 0x10000000);\n          do {\n            unaff_s4 = (byte *******)((int)unaff_s4 + -1);\n            if (unaff_s4 == (byte *******)0x0) break;\n            pppppppbVar19 = pppppppbVar12 + -2;\n            pppppppbVar12 = pppppppbVar12 + -1;\n          } while ((byte *******)*pppppppbVar19 == pppppppbVar20);\n        }\n        if ((int)unaff_s4 < (int)unaff_s6) {\n          piVar9 = (int *)(param_1[2] + (int)unaff_s4 * 4);\n          iVar11 = *piVar9;\n          while (iVar11 == -1) {\n            unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n            piVar9 = piVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            iVar11 = *piVar9;\n          }\nLAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;\n          ppppppbVar22 = (byte ******)((int)*unaff_s4 - (int)pppppppbVar20);\n          param_1[7] = (int)ppppppbVar22;\n          if (ppppppbVar22 == (byte ******)0x0) goto LAB_00491650;\n          if (0 < (int)ppppppbVar22) {\n            iVar11 = 0;\n            do {\n              *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n              iVar11 = iVar11 + 1;\n              ppppppbVar22 = (byte ******)param_1[7];\n            } while (iVar11 < (int)ppppppbVar22);\n          }\n          pppppppbVar18 = (byte *******)0xff;\n          (*(code *)PTR_memset_004bf260)(param_1[1]);\n          iVar11 = param_1[7];\n        }\n        else {\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          param_1[7] = 0;\nLAB_00491650:\n          iVar11 = param_1[7];\n        }\n        param_1[8] = iVar11;\n        goto LAB_00491360;\n      }\n      (*(code *)PTR_memmove_004bf3a4)\n                (param_1[2],param_1[2] + (int)param_3,((int)unaff_s6 - (int)pppppppbVar20) * 4);\n      ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n      pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n      (*(code *)PTR_memmove_004bf3a4)();\n      iVar11 = param_1[7];\n      param_1[7] = iVar11 - (int)pppppppbVar20;\n      param_1[8] = param_1[8] - (int)pppppppbVar20;\n      if (iVar11 - (int)pppppppbVar20 < 1) goto LAB_00491360;\n      iVar11 = 0;\n      do {\n        *(int *)(param_1[3] + iVar11 * 4) = *(int *)(param_1[3] + (int)param_3) - (int)pppppppbVar20\n        ;\n        iVar11 = iVar11 + 1;\n        param_3 = param_3 + 1;\n      } while (iVar11 < param_1[7]);\n      cVar2 = *(char *)((int)param_1 + 0x4b);\n    }\n    else {\n      unaff_s6 = (byte *******)param_1[7];\n      if (*(char *)(param_1 + 0x13) != '\0') {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n      }\n      param_1[7] = 0;\n      if (param_1[0x14] < 2) {\n        pppppppbVar18 =\n             (byte *******)(uint)*(byte *)((int)pppppppbVar20 + param_1[6] + *param_1 + -1);\n        param_1[8] = 0;\n        if (param_1[0x10] != 0) {\n          pppppppbVar18 = (byte *******)(uint)*(byte *)((int)pppppppbVar18 + param_1[0x10]);\n        }\n        iVar11 = 1;\n        if ((*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f) & 1) == 0) {\n          iVar11 = 2;\n          if (pppppppbVar18 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        param_1[0xf] = iVar11;\n        goto LAB_00491360;\n      }\n      if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0049179c:\n        iVar11 = param_1[6];\nLAB_004917a0:\n        pppppppbVar12 = (byte *******)(iVar11 + param_1[8]);\n        if ((int)pppppppbVar12 < (int)param_2) {\n          unaff_s8 = param_1 + 4;\n          unaff_s7 = (byte *******)&local_40;\n          do {\n            unaff_s5 = pppppppbVar12;\n            iVar24 = param_1[0xb];\n            local_3c = param_1[4];\n            local_38 = param_1[5];\n            pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1);\n            iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8);\n            unaff_s4 = local_40;\n            if (0xfffffffc < iVar11 - 1U) {\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }\n            pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11);\n          } while ((int)pppppppbVar12 < (int)param_2);\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n          if (unaff_s4 != (byte *******)0xffffffff) goto LAB_00491834;\n        }\n        else {\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n        }\n        pppppppbVar18 = (byte *******)((int)unaff_s6 + -1);\n        iVar11 = FUN_0048efec(param_1,pppppppbVar18,param_3);\n        param_1[0xf] = iVar11;\n      }\n      else {\n        pppppppbVar12 = (byte *******)*param_1;\n        unaff_s4 = (byte *******)((int)pppppppbVar12 + param_1[6]);\n        pppppppbVar18 = (byte *******)((int)unaff_s4 + ((int)pppppppbVar20 - param_1[0x14]));\n        if (pppppppbVar18 <= pppppppbVar12) {\n          pppppppbVar18 = pppppppbVar12;\n        }\n        pppppppbVar12 = (byte *******)((int)unaff_s4 + (int)((int)pppppppbVar20 + -1));\n        unaff_s5 = pppppppbVar20;\n        if (pppppppbVar12 < pppppppbVar18) goto LAB_0049179c;\n        bVar3 = *(byte *)pppppppbVar12;\n        unaff_s7 = pppppppbVar12;\n        while ((bVar3 & 0xc0) == 0x80) {\n          pppppppbVar19 = (byte *******)((int)unaff_s7 + -1);\n          unaff_s7 = pppppppbVar12;\n          if (pppppppbVar19 < pppppppbVar18) goto LAB_0049179c;\n          unaff_s7 = pppppppbVar19;\n          bVar3 = *(byte *)pppppppbVar19;\n        }\n        iVar11 = param_1[0x10];\n        pbVar16 = (byte *)((int)unaff_s4 + (param_1[0xc] - (int)unaff_s7));\n        pppppppbVar18 = unaff_s7;\n        if (iVar11 != 0) {\n          pbVar17 = (byte *)0x6;\n          if ((int)pbVar16 < 7) {\n            pbVar17 = pbVar16;\n          }\n          if ((int)(pbVar17 + -1) < 0) {\n            pppppppbVar18 = appppppbStack_34;\n          }\n          else {\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }\n        }\n        local_3c = 0;\n        local_38 = 0;\n        uVar29 = (*(code *)PTR_mbrtowc_004bf2ec)(&local_40);\n        uVar30 = (int)((int)unaff_s4 + (int)pppppppbVar20) - (int)unaff_s7;\n        if ((uVar29 < uVar30) || (0xfffffffd < uVar29)) goto LAB_0049179c;\n        *(undefined1 *)(param_1 + 4) = 0;\n        *(undefined1 *)((int)param_1 + 0x11) = 0;\n        *(undefined1 *)((int)param_1 + 0x12) = 0;\n        *(undefined1 *)((int)param_1 + 0x13) = 0;\n        *(undefined1 *)(param_1 + 5) = 0;\n        *(undefined1 *)((int)param_1 + 0x15) = 0;\n        *(undefined1 *)((int)param_1 + 0x16) = 0;\n        *(undefined1 *)((int)param_1 + 0x17) = 0;\n        param_1[7] = uVar29 - uVar30;\n        unaff_s4 = local_40;\n        if (local_40 == (byte *******)0xffffffff) {\n          iVar11 = param_1[6];\n          goto LAB_004917a0;\n        }\nLAB_00491834:\n        if (*(char *)((int)param_1 + 0x4e) == '\0') {\nLAB_00491840:\n          iVar11 = 2;\n          if (unaff_s4 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        else {\n          iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          iVar11 = 1;\n          if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }\n        param_1[0xf] = iVar11;\n      }\nLAB_00491854:\n      ppppppbVar22 = (byte ******)param_1[7];\n      if (ppppppbVar22 == (byte ******)0x0) {\nLAB_00491860:\n        iVar11 = param_1[7];\n      }\n      else {\n        iVar11 = 0;\n        if (0 < (int)ppppppbVar22) {\n          do {\n            *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n            iVar11 = iVar11 + 1;\n            ppppppbVar22 = (byte ******)param_1[7];\n          } while (iVar11 < (int)ppppppbVar22);\n        }\n        pppppppbVar18 = (byte *******)0xff;\n        if (*(char *)((int)param_1 + 0x4b) == '\0') goto LAB_00491860;\n        (*(code *)PTR_memset_004bf260)(param_1[1]);\n        iVar11 = param_1[7];\n      }\n      param_1[8] = iVar11;\nLAB_00491360:\n      cVar2 = *(char *)((int)param_1 + 0x4b);\n    }\n    if (cVar2 == '\0') {\n      param_1[1] = (int)((int)pppppppbVar20 + param_1[1]);\n    }\n  }\n  param_1[6] = (int)param_2;\n  iVar11 = param_1[0xc];\n  param_1[0xc] = iVar11 - (int)pppppppbVar20;\n  iVar24 = param_1[0xe] - (int)pppppppbVar20;\n  param_1[0xe] = iVar24;\n  if (param_1[0x14] < 2) {\n    if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[7] = iVar11 - (int)pppppppbVar20;\n      goto LAB_00491aa8;\n    }\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      if (param_1[0x10] == 0) goto LAB_00491aa8;\n      FUN_00489d80();\n      param_1[10] = 0;\n    }\n    else {\n      FUN_0048b84c(param_1);\n      param_1[10] = 0;\n    }\n  }\n  else {\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      FUN_0048b928(param_1);\n      param_1[10] = 0;\n      goto LAB_00491aac;\n    }\n    ppppbVar5 = (byte ****)FUN_0048c3a4();\n    if (ppppbVar5 != (byte ****)0x0) goto LAB_00491ab0;\nLAB_00491aa8:\n    param_1[10] = 0;\n  }\nLAB_00491aac:\n  ppppbVar5 = (byte ****)0x0;\nLAB_00491ab0:\n  if (appppppbStack_34[2] == *(byte *******)PTR___stack_chk_guard_004bf38c) {\n    return ppppbVar5;\n  }\n  pcVar32 = FUN_00491b60;\n  ppppppbVar6 = appppppbStack_34[2];\n  (*(code *)PTR___stack_chk_fail_004bf34c)();\n  ppppbStack_84 = *(byte *****)PTR___stack_chk_guard_004bf38c;\n  pppppbVar31 = *ppppppbVar6;\n  if (pppppbVar31[0x17] == (byte ****)0x1) {\n    uVar29 = (uint)((int)ppppppbVar6[3] << 9) >> 0x1f;\n  }\n  else {\n    uVar29 = 0;\n  }\n  ppppppbVar13 = ppppppbVar6;\n  pppppppbVar20 = pppppppbVar18;\n  ppppppbVar21 = ppppppbVar22;\n  piStack_80 = param_1;\n  iStack_7c = iVar24;\n  pppppppbStack_78 = param_2;\n  ppppppbStack_74 = param_3;\n  pppppppbStack_70 = unaff_s4;\n  pppppppbStack_6c = unaff_s5;\n  pppppppbStack_68 = unaff_s6;\n  pppppppbStack_64 = unaff_s7;\n  piStack_60 = unaff_s8;\n  pcStack_5c = pcVar32;\n  if (0 < (int)pppppppbVar18[2]) {\n    iStack_1a8 = 0;\n    do {\n      pppppbVar23 = pppppppbVar18[3][iStack_1a8];\n      ppppppbVar7 = (byte ******)((int)pppppbVar23 * 8);\n      ppppbVar5 = *pppppbVar31 + (int)pppppbVar23 * 2;\n      ppppppbVar13 = (byte ******)(uint)*(byte *)(ppppbVar5 + 1);\n      pppppppbVar20 = (byte *******)&DAT_00000001;\n      if (ppppppbVar13 == (byte ******)&DAT_00000001) {\n        uVar30 = (uint)*(byte *)ppppbVar5;\n        *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        if (uVar29 != 0) {\n          if (uVar30 + 0x80 < 0x180) {\n            piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n          }\n          *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        }\n        if (((int)ppppppbVar6[3] << 9 < 0) &&\n           (ppppppbVar13 = ppppppbVar7, 1 < (int)pppppbVar31[0x17])) {\n          bStack_184 = *(byte *)(*pppppbVar31 + (int)pppppbVar23 * 2);\n          if ((byte ****)((int)pppppbVar23 + 1U) < pppppbVar31[2]) {\n            ppppbVar5 = (byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2));\n            ppppppbVar7 = ppppppbVar7 + 4;\n            if (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400) {\n              puVar15 = auStack_183;\n              do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar14 = auStack_183;\n            }\n          }\n          else {\n            puVar14 = auStack_183;\n          }\n          pppppbStack_18c = (byte *****)0x0;\n          uStack_188 = 0;\n          pppppppbVar20 = (byte *******)&bStack_184;\n          iVar11 = -(int)pppppppbVar20;\n          ppppppbVar13 = (byte ******)&ppppppbStack_190;\n          ppppppbVar21 = (byte ******)(puVar14 + iVar11);\n          ppppppbVar7 = (byte ******)(*(code *)PTR_mbrtowc_004bf2ec)();\n          if ((byte ******)(puVar14 + iVar11) == ppppppbVar7) {\n            pppppppbVar20 = (byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190);\n            ppppppbVar21 = &pppppbStack_18c;\n            ppppppbVar13 = (byte ******)&bStack_184;\n            iVar11 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar11 != -1) {\n              *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n            }\n          }\n        }\n      }\n      else {\n        pppppppbVar20 = (byte *******)&DAT_00000006;\n        if (ppppppbVar13 == (byte ******)0x3) {\n          iStack_1ac = 0;\n          iVar11 = 0;\n          do {\n            uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac);\n            uVar30 = 0;\n            iVar24 = iVar11;\n            do {\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            } while (uVar30 != 0x20);\n            iVar11 = iVar11 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar11 != 0x100);\n        }\n        else if (ppppppbVar13 == (byte ******)&DAT_00000006) {\n          pppbVar25 = *ppppbVar5;\n          if (((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))) {\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }\n          else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }\n          if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }\n        }\n      }\n      iStack_1a8 = iStack_1a8 + 1;\n    } while (iStack_1a8 < (int)pppppppbVar18[2]);\n  }\n  if (ppppbStack_84 == *(byte *****)PTR___stack_chk_guard_004bf38c) {\n    return *(byte *****)PTR___stack_chk_guard_004bf38c;\n  }\n  (*(code *)PTR___stack_chk_fail_004bf34c)();\n  pppppbVar31 = ppppppbVar21[1];\n  if (pppppbVar31 == (byte *****)0x0) {\n    *ppppppbVar13 = (byte *****)0x0;\n  }\n  else {\n    if (0 < (int)pppppbVar31) {\n      pppppbVar23 = ppppppbVar21[2];\n      pppppbVar26 = pppppbVar23 + (int)pppppbVar31;\n      do {\n        ppppbVar5 = *pppppbVar23;\n        pppppbVar23 = pppppbVar23 + 1;\n        pppppbVar31 = (byte *****)((int)pppppbVar31 + (int)ppppbVar5);\n      } while (pppppbVar23 != pppppbVar26);\n    }\n    pppppbVar23 = pppppppbVar20[8][((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3];\n    if (0 < (int)pppppbVar23) {\n      pppppbVar26 = (pppppppbVar20[8] + ((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3)[2];\n      pppppbVar28 = (byte *****)0x0;\n      do {\n        ppppbVar5 = *pppppbVar26;\n        if ((pppppbVar31 == (byte *****)*ppppbVar5) &&\n           (iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21), iVar11 != 0)) {\n          return ppppbVar5;\n        }\n        pppppbVar28 = (byte *****)((int)pppppbVar28 + 1);\n        pppppbVar26 = pppppbVar26 + 1;\n      } while (pppppbVar23 != pppppbVar28);\n    }\n    ppppbVar5 = (byte ****)(*(code *)PTR_calloc_004bf160)(0x38,1);\n    if (ppppbVar5 != (byte ****)0x0) {\n      iVar11 = FUN_0048c08c(ppppbVar5 + 1,ppppppbVar21);\n      if (iVar11 == 0) {\n        ppppbVar5[10] = (byte ***)(ppppbVar5 + 1);\n        if (0 < (int)ppppppbVar21[1]) {\n          ppppppbVar22 = *pppppppbVar20;\n          pppppbVar23 = ppppppbVar21[2];\n          pppppbVar26 = pppppbVar23 + (int)ppppppbVar21[1];\n          do {\n            ppppbVar10 = *pppppbVar23;\n            cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1);\n            if (cVar2 == '\x01') {\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }\n            pppppbVar23 = pppppbVar23 + 1;\n          } while (pppppbVar23 != pppppbVar26);\n        }\n        iVar11 = FUN_0048b6d0(pppppppbVar20,ppppbVar5,pppppbVar31);\n        if (iVar11 == 0) {\n          return ppppbVar5;\n        }\n        FUN_0048e3e8(ppppbVar5);\n      }\n      else {\n        (*(code *)PTR_free_004bf39c)(ppppbVar5);\n      }\n    }\n    *ppppppbVar13 = (byte *****)0xc;\n  }\n  return (byte ****)0x0;\n}\n\n" comment comment (function_definition "byte **** FUN_00491238(int *param_1,byte *******param_2,byte ******param_3)\n\n{\n  bool bVar1;\n  char cVar2;\n  byte bVar3;\n  byte bVar4;\n  byte ****ppppbVar5;\n  byte ******ppppppbVar6;\n  byte ******ppppppbVar7;\n  int iVar8;\n  int *piVar9;\n  byte ****ppppbVar10;\n  int iVar11;\n  byte *******pppppppbVar12;\n  byte ******ppppppbVar13;\n  undefined1 *puVar14;\n  byte *pbVar16;\n  byte *pbVar17;\n  byte *******pppppppbVar18;\n  byte *******pppppppbVar19;\n  byte *******pppppppbVar20;\n  byte ******ppppppbVar21;\n  byte ******ppppppbVar22;\n  byte *****pppppbVar23;\n  int iVar24;\n  byte ***pppbVar25;\n  byte *****pppppbVar26;\n  uint uVar27;\n  byte *****pppppbVar28;\n  byte *******unaff_s4;\n  byte *******unaff_s5;\n  byte *******unaff_s6;\n  uint uVar29;\n  byte *******unaff_s7;\n  uint uVar30;\n  int *unaff_s8;\n  byte *****pppppbVar31;\n  code *pcVar32;\n  int iStack_1ac;\n  int iStack_1a8;\n  byte ******ppppppbStack_190;\n  byte *****pppppbStack_18c;\n  undefined4 uStack_188;\n  byte bStack_184;\n  undefined1 auStack_183 [255];\n  byte ****ppppbStack_84;\n  int *piStack_80;\n  int iStack_7c;\n  byte *******pppppppbStack_78;\n  byte ******ppppppbStack_74;\n  byte *******pppppppbStack_70;\n  byte *******pppppppbStack_6c;\n  byte *******pppppppbStack_68;\n  byte *******pppppppbStack_64;\n  int *piStack_60;\n  code *pcStack_5c;\n  byte *******local_40;\n  int local_3c;\n  int local_38;\n  byte ******appppppbStack_34 [3];\n  undefined1 *puVar15;\n  \n  appppppbStack_34[2] = *(byte *******)PTR___stack_chk_guard_004bf38c;\n  pppppppbVar20 = (byte *******)((int)param_2 - param_1[6]);\n  if ((int)param_2 < param_1[6]) {\n    if (1 < param_1[0x14]) {\n      *(undefined1 *)(param_1 + 4) = 0;\n      *(undefined1 *)((int)param_1 + 0x11) = 0;\n      *(undefined1 *)((int)param_1 + 0x12) = 0;\n      *(undefined1 *)((int)param_1 + 0x13) = 0;\n      *(undefined1 *)(param_1 + 5) = 0;\n      *(undefined1 *)((int)param_1 + 0x15) = 0;\n      *(undefined1 *)((int)param_1 + 0x16) = 0;\n      *(undefined1 *)((int)param_1 + 0x17) = 0;\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    iVar11 = 6;\n    if (((uint)param_3 & 1) != 0) {\n      iVar11 = 4;\n    }\n    param_1[0xf] = iVar11;\n    pppppppbVar20 = param_2;\n    if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[1] = *param_1;\n    }\n  }\n  pppppppbVar18 = param_2;\n  ppppppbVar22 = param_3;\n  if (pppppppbVar20 != (byte *******)0x0) {\n    if ((int)pppppppbVar20 < param_1[8]) {\n      if (*(char *)(param_1 + 0x13) == '\0') {\n        iVar11 = FUN_0048efec(param_1,(byte *)((int)pppppppbVar20 + -1));\n        param_1[0xf] = iVar11;\n        pppppppbVar18 = (byte *******)((int)pppppppbVar20 * 4);\n        if (param_1[0x14] < 2) {\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        else {\n          ppppppbVar22 = (byte ******)((param_1[7] - (int)pppppppbVar20) * 4);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar18 + param_1[2]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        if (cVar2 == '\0') {\n          iVar11 = param_1[7];\n        }\n        else {\n          ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar11 = param_1[7];\n        }\n        param_1[7] = iVar11 - (int)pppppppbVar20;\n        param_1[8] = param_1[8] - (int)pppppppbVar20;\n        goto LAB_00491360;\n      }\n      unaff_s6 = (byte *******)param_1[7];\n      unaff_s5 = (byte *******)param_1[3];\n      pbVar16 = (byte *)0x0;\n      pppppppbVar18 = unaff_s6;\n      do {\n        unaff_s4 = (byte *******)((int)(pbVar16 + (int)pppppppbVar18) / 2);\n        ppppppbVar6 = unaff_s5[(int)unaff_s4];\n        bVar1 = (int)pbVar16 < (int)unaff_s4;\n        pppppppbVar12 = unaff_s4;\n        if ((int)ppppppbVar6 <= (int)pppppppbVar20) {\n          pbVar16 = (byte *)((int)unaff_s4 + 1);\n          if ((int)pppppppbVar20 <= (int)ppppppbVar6) goto LAB_0049145c;\n          bVar1 = (int)pbVar16 < (int)pppppppbVar18;\n          pppppppbVar12 = pppppppbVar18;\n        }\n        pppppppbVar18 = pppppppbVar12;\n      } while (bVar1);\n      if ((int)ppppppbVar6 < (int)pppppppbVar20) {\n        unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n      }\nLAB_0049145c:\n      pppppppbVar18 = (byte *******)((int)unaff_s4 + -1);\n      iVar11 = FUN_0048efec(param_1);\n      param_1[0xf] = iVar11;\n      if ((((int)unaff_s6 <= (int)pppppppbVar20) || (pppppppbVar20 != unaff_s4)) ||\n         (param_3 = (byte ******)((int)pppppppbVar20 * 4),\n         (byte *******)unaff_s5[(int)unaff_s4] != pppppppbVar20)) {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        if ((0 < (int)unaff_s4) &&\n           ((byte *******)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pppppppbVar20)) {\n          pppppppbVar12 = unaff_s5 + (int)(unaff_s4 + 0x10000000);\n          do {\n            unaff_s4 = (byte *******)((int)unaff_s4 + -1);\n            if (unaff_s4 == (byte *******)0x0) break;\n            pppppppbVar19 = pppppppbVar12 + -2;\n            pppppppbVar12 = pppppppbVar12 + -1;\n          } while ((byte *******)*pppppppbVar19 == pppppppbVar20);\n        }\n        if ((int)unaff_s4 < (int)unaff_s6) {\n          piVar9 = (int *)(param_1[2] + (int)unaff_s4 * 4);\n          iVar11 = *piVar9;\n          while (iVar11 == -1) {\n            unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n            piVar9 = piVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            iVar11 = *piVar9;\n          }\nLAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;\n          ppppppbVar22 = (byte ******)((int)*unaff_s4 - (int)pppppppbVar20);\n          param_1[7] = (int)ppppppbVar22;\n          if (ppppppbVar22 == (byte ******)0x0) goto LAB_00491650;\n          if (0 < (int)ppppppbVar22) {\n            iVar11 = 0;\n            do {\n              *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n              iVar11 = iVar11 + 1;\n              ppppppbVar22 = (byte ******)param_1[7];\n            } while (iVar11 < (int)ppppppbVar22);\n          }\n          pppppppbVar18 = (byte *******)0xff;\n          (*(code *)PTR_memset_004bf260)(param_1[1]);\n          iVar11 = param_1[7];\n        }\n        else {\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          param_1[7] = 0;\nLAB_00491650:\n          iVar11 = param_1[7];\n        }\n        param_1[8] = iVar11;\n        goto LAB_00491360;\n      }\n      (*(code *)PTR_memmove_004bf3a4)\n                (param_1[2],param_1[2] + (int)param_3,((int)unaff_s6 - (int)pppppppbVar20) * 4);\n      ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n      pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n      (*(code *)PTR_memmove_004bf3a4)();\n      iVar11 = param_1[7];\n      param_1[7] = iVar11 - (int)pppppppbVar20;\n      param_1[8] = param_1[8] - (int)pppppppbVar20;\n      if (iVar11 - (int)pppppppbVar20 < 1) goto LAB_00491360;\n      iVar11 = 0;\n      do {\n        *(int *)(param_1[3] + iVar11 * 4) = *(int *)(param_1[3] + (int)param_3) - (int)pppppppbVar20\n        ;\n        iVar11 = iVar11 + 1;\n        param_3 = param_3 + 1;\n      } while (iVar11 < param_1[7]);\n      cVar2 = *(char *)((int)param_1 + 0x4b);\n    }\n    else {\n      unaff_s6 = (byte *******)param_1[7];\n      if (*(char *)(param_1 + 0x13) != '\0') {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n      }\n      param_1[7] = 0;\n      if (param_1[0x14] < 2) {\n        pppppppbVar18 =\n             (byte *******)(uint)*(byte *)((int)pppppppbVar20 + param_1[6] + *param_1 + -1);\n        param_1[8] = 0;\n        if (param_1[0x10] != 0) {\n          pppppppbVar18 = (byte *******)(uint)*(byte *)((int)pppppppbVar18 + param_1[0x10]);\n        }\n        iVar11 = 1;\n        if ((*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f) & 1) == 0) {\n          iVar11 = 2;\n          if (pppppppbVar18 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        param_1[0xf] = iVar11;\n        goto LAB_00491360;\n      }\n      if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0049179c:\n        iVar11 = param_1[6];\nLAB_004917a0:\n        pppppppbVar12 = (byte *******)(iVar11 + param_1[8]);\n        if ((int)pppppppbVar12 < (int)param_2) {\n          unaff_s8 = param_1 + 4;\n          unaff_s7 = (byte *******)&local_40;\n          do {\n            unaff_s5 = pppppppbVar12;\n            iVar24 = param_1[0xb];\n            local_3c = param_1[4];\n            local_38 = param_1[5];\n            pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1);\n            iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8);\n            unaff_s4 = local_40;\n            if (0xfffffffc < iVar11 - 1U) {\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }\n            pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11);\n          } while ((int)pppppppbVar12 < (int)param_2);\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n          if (unaff_s4 != (byte *******)0xffffffff) goto LAB_00491834;\n        }\n        else {\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n        }\n        pppppppbVar18 = (byte *******)((int)unaff_s6 + -1);\n        iVar11 = FUN_0048efec(param_1,pppppppbVar18,param_3);\n        param_1[0xf] = iVar11;\n      }\n      else {\n        pppppppbVar12 = (byte *******)*param_1;\n        unaff_s4 = (byte *******)((int)pppppppbVar12 + param_1[6]);\n        pppppppbVar18 = (byte *******)((int)unaff_s4 + ((int)pppppppbVar20 - param_1[0x14]));\n        if (pppppppbVar18 <= pppppppbVar12) {\n          pppppppbVar18 = pppppppbVar12;\n        }\n        pppppppbVar12 = (byte *******)((int)unaff_s4 + (int)((int)pppppppbVar20 + -1));\n        unaff_s5 = pppppppbVar20;\n        if (pppppppbVar12 < pppppppbVar18) goto LAB_0049179c;\n        bVar3 = *(byte *)pppppppbVar12;\n        unaff_s7 = pppppppbVar12;\n        while ((bVar3 & 0xc0) == 0x80) {\n          pppppppbVar19 = (byte *******)((int)unaff_s7 + -1);\n          unaff_s7 = pppppppbVar12;\n          if (pppppppbVar19 < pppppppbVar18) goto LAB_0049179c;\n          unaff_s7 = pppppppbVar19;\n          bVar3 = *(byte *)pppppppbVar19;\n        }\n        iVar11 = param_1[0x10];\n        pbVar16 = (byte *)((int)unaff_s4 + (param_1[0xc] - (int)unaff_s7));\n        pppppppbVar18 = unaff_s7;\n        if (iVar11 != 0) {\n          pbVar17 = (byte *)0x6;\n          if ((int)pbVar16 < 7) {\n            pbVar17 = pbVar16;\n          }\n          if ((int)(pbVar17 + -1) < 0) {\n            pppppppbVar18 = appppppbStack_34;\n          }\n          else {\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }\n        }\n        local_3c = 0;\n        local_38 = 0;\n        uVar29 = (*(code *)PTR_mbrtowc_004bf2ec)(&local_40);\n        uVar30 = (int)((int)unaff_s4 + (int)pppppppbVar20) - (int)unaff_s7;\n        if ((uVar29 < uVar30) || (0xfffffffd < uVar29)) goto LAB_0049179c;\n        *(undefined1 *)(param_1 + 4) = 0;\n        *(undefined1 *)((int)param_1 + 0x11) = 0;\n        *(undefined1 *)((int)param_1 + 0x12) = 0;\n        *(undefined1 *)((int)param_1 + 0x13) = 0;\n        *(undefined1 *)(param_1 + 5) = 0;\n        *(undefined1 *)((int)param_1 + 0x15) = 0;\n        *(undefined1 *)((int)param_1 + 0x16) = 0;\n        *(undefined1 *)((int)param_1 + 0x17) = 0;\n        param_1[7] = uVar29 - uVar30;\n        unaff_s4 = local_40;\n        if (local_40 == (byte *******)0xffffffff) {\n          iVar11 = param_1[6];\n          goto LAB_004917a0;\n        }\nLAB_00491834:\n        if (*(char *)((int)param_1 + 0x4e) == '\0') {\nLAB_00491840:\n          iVar11 = 2;\n          if (unaff_s4 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        else {\n          iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          iVar11 = 1;\n          if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }\n        param_1[0xf] = iVar11;\n      }\nLAB_00491854:\n      ppppppbVar22 = (byte ******)param_1[7];\n      if (ppppppbVar22 == (byte ******)0x0) {\nLAB_00491860:\n        iVar11 = param_1[7];\n      }\n      else {\n        iVar11 = 0;\n        if (0 < (int)ppppppbVar22) {\n          do {\n            *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n            iVar11 = iVar11 + 1;\n            ppppppbVar22 = (byte ******)param_1[7];\n          } while (iVar11 < (int)ppppppbVar22);\n        }\n        pppppppbVar18 = (byte *******)0xff;\n        if (*(char *)((int)param_1 + 0x4b) == '\0') goto LAB_00491860;\n        (*(code *)PTR_memset_004bf260)(param_1[1]);\n        iVar11 = param_1[7];\n      }\n      param_1[8] = iVar11;\nLAB_00491360:\n      cVar2 = *(char *)((int)param_1 + 0x4b);\n    }\n    if (cVar2 == '\0') {\n      param_1[1] = (int)((int)pppppppbVar20 + param_1[1]);\n    }\n  }\n  param_1[6] = (int)param_2;\n  iVar11 = param_1[0xc];\n  param_1[0xc] = iVar11 - (int)pppppppbVar20;\n  iVar24 = param_1[0xe] - (int)pppppppbVar20;\n  param_1[0xe] = iVar24;\n  if (param_1[0x14] < 2) {\n    if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[7] = iVar11 - (int)pppppppbVar20;\n      goto LAB_00491aa8;\n    }\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      if (param_1[0x10] == 0) goto LAB_00491aa8;\n      FUN_00489d80();\n      param_1[10] = 0;\n    }\n    else {\n      FUN_0048b84c(param_1);\n      param_1[10] = 0;\n    }\n  }\n  else {\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      FUN_0048b928(param_1);\n      param_1[10] = 0;\n      goto LAB_00491aac;\n    }\n    ppppbVar5 = (byte ****)FUN_0048c3a4();\n    if (ppppbVar5 != (byte ****)0x0) goto LAB_00491ab0;\nLAB_00491aa8:\n    param_1[10] = 0;\n  }\nLAB_00491aac:\n  ppppbVar5 = (byte ****)0x0;\nLAB_00491ab0:\n  if (appppppbStack_34[2] == *(byte *******)PTR___stack_chk_guard_004bf38c) {\n    return ppppbVar5;\n  }\n  pcVar32 = FUN_00491b60;\n  ppppppbVar6 = appppppbStack_34[2];\n  (*(code *)PTR___stack_chk_fail_004bf34c)();\n  ppppbStack_84 = *(byte *****)PTR___stack_chk_guard_004bf38c;\n  pppppbVar31 = *ppppppbVar6;\n  if (pppppbVar31[0x17] == (byte ****)0x1) {\n    uVar29 = (uint)((int)ppppppbVar6[3] << 9) >> 0x1f;\n  }\n  else {\n    uVar29 = 0;\n  }\n  ppppppbVar13 = ppppppbVar6;\n  pppppppbVar20 = pppppppbVar18;\n  ppppppbVar21 = ppppppbVar22;\n  piStack_80 = param_1;\n  iStack_7c = iVar24;\n  pppppppbStack_78 = param_2;\n  ppppppbStack_74 = param_3;\n  pppppppbStack_70 = unaff_s4;\n  pppppppbStack_6c = unaff_s5;\n  pppppppbStack_68 = unaff_s6;\n  pppppppbStack_64 = unaff_s7;\n  piStack_60 = unaff_s8;\n  pcStack_5c = pcVar32;\n  if (0 < (int)pppppppbVar18[2]) {\n    iStack_1a8 = 0;\n    do {\n      pppppbVar23 = pppppppbVar18[3][iStack_1a8];\n      ppppppbVar7 = (byte ******)((int)pppppbVar23 * 8);\n      ppppbVar5 = *pppppbVar31 + (int)pppppbVar23 * 2;\n      ppppppbVar13 = (byte ******)(uint)*(byte *)(ppppbVar5 + 1);\n      pppppppbVar20 = (byte *******)&DAT_00000001;\n      if (ppppppbVar13 == (byte ******)&DAT_00000001) {\n        uVar30 = (uint)*(byte *)ppppbVar5;\n        *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        if (uVar29 != 0) {\n          if (uVar30 + 0x80 < 0x180) {\n            piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n          }\n          *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        }\n        if (((int)ppppppbVar6[3] << 9 < 0) &&\n           (ppppppbVar13 = ppppppbVar7, 1 < (int)pppppbVar31[0x17])) {\n          bStack_184 = *(byte *)(*pppppbVar31 + (int)pppppbVar23 * 2);\n          if ((byte ****)((int)pppppbVar23 + 1U) < pppppbVar31[2]) {\n            ppppbVar5 = (byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2));\n            ppppppbVar7 = ppppppbVar7 + 4;\n            if (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400) {\n              puVar15 = auStack_183;\n              do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar14 = auStack_183;\n            }\n          }\n          else {\n            puVar14 = auStack_183;\n          }\n          pppppbStack_18c = (byte *****)0x0;\n          uStack_188 = 0;\n          pppppppbVar20 = (byte *******)&bStack_184;\n          iVar11 = -(int)pppppppbVar20;\n          ppppppbVar13 = (byte ******)&ppppppbStack_190;\n          ppppppbVar21 = (byte ******)(puVar14 + iVar11);\n          ppppppbVar7 = (byte ******)(*(code *)PTR_mbrtowc_004bf2ec)();\n          if ((byte ******)(puVar14 + iVar11) == ppppppbVar7) {\n            pppppppbVar20 = (byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190);\n            ppppppbVar21 = &pppppbStack_18c;\n            ppppppbVar13 = (byte ******)&bStack_184;\n            iVar11 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar11 != -1) {\n              *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n            }\n          }\n        }\n      }\n      else {\n        pppppppbVar20 = (byte *******)&DAT_00000006;\n        if (ppppppbVar13 == (byte ******)0x3) {\n          iStack_1ac = 0;\n          iVar11 = 0;\n          do {\n            uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac);\n            uVar30 = 0;\n            iVar24 = iVar11;\n            do {\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            } while (uVar30 != 0x20);\n            iVar11 = iVar11 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar11 != 0x100);\n        }\n        else if (ppppppbVar13 == (byte ******)&DAT_00000006) {\n          pppbVar25 = *ppppbVar5;\n          if (((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))) {\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }\n          else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }\n          if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }\n        }\n      }\n      iStack_1a8 = iStack_1a8 + 1;\n    } while (iStack_1a8 < (int)pppppppbVar18[2]);\n  }\n  if (ppppbStack_84 == *(byte *****)PTR___stack_chk_guard_004bf38c) {\n    return *(byte *****)PTR___stack_chk_guard_004bf38c;\n  }\n  (*(code *)PTR___stack_chk_fail_004bf34c)();\n  pppppbVar31 = ppppppbVar21[1];\n  if (pppppbVar31 == (byte *****)0x0) {\n    *ppppppbVar13 = (byte *****)0x0;\n  }\n  else {\n    if (0 < (int)pppppbVar31) {\n      pppppbVar23 = ppppppbVar21[2];\n      pppppbVar26 = pppppbVar23 + (int)pppppbVar31;\n      do {\n        ppppbVar5 = *pppppbVar23;\n        pppppbVar23 = pppppbVar23 + 1;\n        pppppbVar31 = (byte *****)((int)pppppbVar31 + (int)ppppbVar5);\n      } while (pppppbVar23 != pppppbVar26);\n    }\n    pppppbVar23 = pppppppbVar20[8][((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3];\n    if (0 < (int)pppppbVar23) {\n      pppppbVar26 = (pppppppbVar20[8] + ((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3)[2];\n      pppppbVar28 = (byte *****)0x0;\n      do {\n        ppppbVar5 = *pppppbVar26;\n        if ((pppppbVar31 == (byte *****)*ppppbVar5) &&\n           (iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21), iVar11 != 0)) {\n          return ppppbVar5;\n        }\n        pppppbVar28 = (byte *****)((int)pppppbVar28 + 1);\n        pppppbVar26 = pppppbVar26 + 1;\n      } while (pppppbVar23 != pppppbVar28);\n    }\n    ppppbVar5 = (byte ****)(*(code *)PTR_calloc_004bf160)(0x38,1);\n    if (ppppbVar5 != (byte ****)0x0) {\n      iVar11 = FUN_0048c08c(ppppbVar5 + 1,ppppppbVar21);\n      if (iVar11 == 0) {\n        ppppbVar5[10] = (byte ***)(ppppbVar5 + 1);\n        if (0 < (int)ppppppbVar21[1]) {\n          ppppppbVar22 = *pppppppbVar20;\n          pppppbVar23 = ppppppbVar21[2];\n          pppppbVar26 = pppppbVar23 + (int)ppppppbVar21[1];\n          do {\n            ppppbVar10 = *pppppbVar23;\n            cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1);\n            if (cVar2 == '\x01') {\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }\n            pppppbVar23 = pppppbVar23 + 1;\n          } while (pppppbVar23 != pppppbVar26);\n        }\n        iVar11 = FUN_0048b6d0(pppppppbVar20,ppppbVar5,pppppbVar31);\n        if (iVar11 == 0) {\n          return ppppbVar5;\n        }\n        FUN_0048e3e8(ppppbVar5);\n      }\n      else {\n        (*(code *)PTR_free_004bf39c)(ppppbVar5);\n      }\n    }\n    *ppppppbVar13 = (byte *****)0xc;\n  }\n  return (byte ****)0x0;\n}" type_identifier (pointer_declarator "**** FUN_00491238(int *param_1,byte *******param_2,byte ******param_3)" * (pointer_declarator "*** FUN_00491238(int *param_1,byte *******param_2,byte ******param_3)" * (pointer_declarator "** FUN_00491238(int *param_1,byte *******param_2,byte ******param_3)" * (pointer_declarator "* FUN_00491238(int *param_1,byte *******param_2,byte ******param_3)" * (function_declarator "FUN_00491238(int *param_1,byte *******param_2,byte ******param_3)" identifier (parameter_list "(int *param_1,byte *******param_2,byte ******param_3)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "byte *******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 "byte ******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" * identifier))))))) ))))))) (compound_statement "{\n  bool bVar1;\n  char cVar2;\n  byte bVar3;\n  byte bVar4;\n  byte ****ppppbVar5;\n  byte ******ppppppbVar6;\n  byte ******ppppppbVar7;\n  int iVar8;\n  int *piVar9;\n  byte ****ppppbVar10;\n  int iVar11;\n  byte *******pppppppbVar12;\n  byte ******ppppppbVar13;\n  undefined1 *puVar14;\n  byte *pbVar16;\n  byte *pbVar17;\n  byte *******pppppppbVar18;\n  byte *******pppppppbVar19;\n  byte *******pppppppbVar20;\n  byte ******ppppppbVar21;\n  byte ******ppppppbVar22;\n  byte *****pppppbVar23;\n  int iVar24;\n  byte ***pppbVar25;\n  byte *****pppppbVar26;\n  uint uVar27;\n  byte *****pppppbVar28;\n  byte *******unaff_s4;\n  byte *******unaff_s5;\n  byte *******unaff_s6;\n  uint uVar29;\n  byte *******unaff_s7;\n  uint uVar30;\n  int *unaff_s8;\n  byte *****pppppbVar31;\n  code *pcVar32;\n  int iStack_1ac;\n  int iStack_1a8;\n  byte ******ppppppbStack_190;\n  byte *****pppppbStack_18c;\n  undefined4 uStack_188;\n  byte bStack_184;\n  undefined1 auStack_183 [255];\n  byte ****ppppbStack_84;\n  int *piStack_80;\n  int iStack_7c;\n  byte *******pppppppbStack_78;\n  byte ******ppppppbStack_74;\n  byte *******pppppppbStack_70;\n  byte *******pppppppbStack_6c;\n  byte *******pppppppbStack_68;\n  byte *******pppppppbStack_64;\n  int *piStack_60;\n  code *pcStack_5c;\n  byte *******local_40;\n  int local_3c;\n  int local_38;\n  byte ******appppppbStack_34 [3];\n  undefined1 *puVar15;\n  \n  appppppbStack_34[2] = *(byte *******)PTR___stack_chk_guard_004bf38c;\n  pppppppbVar20 = (byte *******)((int)param_2 - param_1[6]);\n  if ((int)param_2 < param_1[6]) {\n    if (1 < param_1[0x14]) {\n      *(undefined1 *)(param_1 + 4) = 0;\n      *(undefined1 *)((int)param_1 + 0x11) = 0;\n      *(undefined1 *)((int)param_1 + 0x12) = 0;\n      *(undefined1 *)((int)param_1 + 0x13) = 0;\n      *(undefined1 *)(param_1 + 5) = 0;\n      *(undefined1 *)((int)param_1 + 0x15) = 0;\n      *(undefined1 *)((int)param_1 + 0x16) = 0;\n      *(undefined1 *)((int)param_1 + 0x17) = 0;\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    iVar11 = 6;\n    if (((uint)param_3 & 1) != 0) {\n      iVar11 = 4;\n    }\n    param_1[0xf] = iVar11;\n    pppppppbVar20 = param_2;\n    if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[1] = *param_1;\n    }\n  }\n  pppppppbVar18 = param_2;\n  ppppppbVar22 = param_3;\n  if (pppppppbVar20 != (byte *******)0x0) {\n    if ((int)pppppppbVar20 < param_1[8]) {\n      if (*(char *)(param_1 + 0x13) == '\0') {\n        iVar11 = FUN_0048efec(param_1,(byte *)((int)pppppppbVar20 + -1));\n        param_1[0xf] = iVar11;\n        pppppppbVar18 = (byte *******)((int)pppppppbVar20 * 4);\n        if (param_1[0x14] < 2) {\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        else {\n          ppppppbVar22 = (byte ******)((param_1[7] - (int)pppppppbVar20) * 4);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar18 + param_1[2]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        if (cVar2 == '\0') {\n          iVar11 = param_1[7];\n        }\n        else {\n          ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar11 = param_1[7];\n        }\n        param_1[7] = iVar11 - (int)pppppppbVar20;\n        param_1[8] = param_1[8] - (int)pppppppbVar20;\n        goto LAB_00491360;\n      }\n      unaff_s6 = (byte *******)param_1[7];\n      unaff_s5 = (byte *******)param_1[3];\n      pbVar16 = (byte *)0x0;\n      pppppppbVar18 = unaff_s6;\n      do {\n        unaff_s4 = (byte *******)((int)(pbVar16 + (int)pppppppbVar18) / 2);\n        ppppppbVar6 = unaff_s5[(int)unaff_s4];\n        bVar1 = (int)pbVar16 < (int)unaff_s4;\n        pppppppbVar12 = unaff_s4;\n        if ((int)ppppppbVar6 <= (int)pppppppbVar20) {\n          pbVar16 = (byte *)((int)unaff_s4 + 1);\n          if ((int)pppppppbVar20 <= (int)ppppppbVar6) goto LAB_0049145c;\n          bVar1 = (int)pbVar16 < (int)pppppppbVar18;\n          pppppppbVar12 = pppppppbVar18;\n        }\n        pppppppbVar18 = pppppppbVar12;\n      } while (bVar1);\n      if ((int)ppppppbVar6 < (int)pppppppbVar20) {\n        unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n      }\nLAB_0049145c:\n      pppppppbVar18 = (byte *******)((int)unaff_s4 + -1);\n      iVar11 = FUN_0048efec(param_1);\n      param_1[0xf] = iVar11;\n      if ((((int)unaff_s6 <= (int)pppppppbVar20) || (pppppppbVar20 != unaff_s4)) ||\n         (param_3 = (byte ******)((int)pppppppbVar20 * 4),\n         (byte *******)unaff_s5[(int)unaff_s4] != pppppppbVar20)) {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        if ((0 < (int)unaff_s4) &&\n           ((byte *******)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pppppppbVar20)) {\n          pppppppbVar12 = unaff_s5 + (int)(unaff_s4 + 0x10000000);\n          do {\n            unaff_s4 = (byte *******)((int)unaff_s4 + -1);\n            if (unaff_s4 == (byte *******)0x0) break;\n            pppppppbVar19 = pppppppbVar12 + -2;\n            pppppppbVar12 = pppppppbVar12 + -1;\n          } while ((byte *******)*pppppppbVar19 == pppppppbVar20);\n        }\n        if ((int)unaff_s4 < (int)unaff_s6) {\n          piVar9 = (int *)(param_1[2] + (int)unaff_s4 * 4);\n          iVar11 = *piVar9;\n          while (iVar11 == -1) {\n            unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n            piVar9 = piVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            iVar11 = *piVar9;\n          }\nLAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;\n          ppppppbVar22 = (byte ******)((int)*unaff_s4 - (int)pppppppbVar20);\n          param_1[7] = (int)ppppppbVar22;\n          if (ppppppbVar22 == (byte ******)0x0) goto LAB_00491650;\n          if (0 < (int)ppppppbVar22) {\n            iVar11 = 0;\n            do {\n              *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n              iVar11 = iVar11 + 1;\n              ppppppbVar22 = (byte ******)param_1[7];\n            } while (iVar11 < (int)ppppppbVar22);\n          }\n          pppppppbVar18 = (byte *******)0xff;\n          (*(code *)PTR_memset_004bf260)(param_1[1]);\n          iVar11 = param_1[7];\n        }\n        else {\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          param_1[7] = 0;\nLAB_00491650:\n          iVar11 = param_1[7];\n        }\n        param_1[8] = iVar11;\n        goto LAB_00491360;\n      }\n      (*(code *)PTR_memmove_004bf3a4)\n                (param_1[2],param_1[2] + (int)param_3,((int)unaff_s6 - (int)pppppppbVar20) * 4);\n      ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n      pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n      (*(code *)PTR_memmove_004bf3a4)();\n      iVar11 = param_1[7];\n      param_1[7] = iVar11 - (int)pppppppbVar20;\n      param_1[8] = param_1[8] - (int)pppppppbVar20;\n      if (iVar11 - (int)pppppppbVar20 < 1) goto LAB_00491360;\n      iVar11 = 0;\n      do {\n        *(int *)(param_1[3] + iVar11 * 4) = *(int *)(param_1[3] + (int)param_3) - (int)pppppppbVar20\n        ;\n        iVar11 = iVar11 + 1;\n        param_3 = param_3 + 1;\n      } while (iVar11 < param_1[7]);\n      cVar2 = *(char *)((int)param_1 + 0x4b);\n    }\n    else {\n      unaff_s6 = (byte *******)param_1[7];\n      if (*(char *)(param_1 + 0x13) != '\0') {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n      }\n      param_1[7] = 0;\n      if (param_1[0x14] < 2) {\n        pppppppbVar18 =\n             (byte *******)(uint)*(byte *)((int)pppppppbVar20 + param_1[6] + *param_1 + -1);\n        param_1[8] = 0;\n        if (param_1[0x10] != 0) {\n          pppppppbVar18 = (byte *******)(uint)*(byte *)((int)pppppppbVar18 + param_1[0x10]);\n        }\n        iVar11 = 1;\n        if ((*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f) & 1) == 0) {\n          iVar11 = 2;\n          if (pppppppbVar18 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        param_1[0xf] = iVar11;\n        goto LAB_00491360;\n      }\n      if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0049179c:\n        iVar11 = param_1[6];\nLAB_004917a0:\n        pppppppbVar12 = (byte *******)(iVar11 + param_1[8]);\n        if ((int)pppppppbVar12 < (int)param_2) {\n          unaff_s8 = param_1 + 4;\n          unaff_s7 = (byte *******)&local_40;\n          do {\n            unaff_s5 = pppppppbVar12;\n            iVar24 = param_1[0xb];\n            local_3c = param_1[4];\n            local_38 = param_1[5];\n            pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1);\n            iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8);\n            unaff_s4 = local_40;\n            if (0xfffffffc < iVar11 - 1U) {\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }\n            pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11);\n          } while ((int)pppppppbVar12 < (int)param_2);\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n          if (unaff_s4 != (byte *******)0xffffffff) goto LAB_00491834;\n        }\n        else {\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n        }\n        pppppppbVar18 = (byte *******)((int)unaff_s6 + -1);\n        iVar11 = FUN_0048efec(param_1,pppppppbVar18,param_3);\n        param_1[0xf] = iVar11;\n      }\n      else {\n        pppppppbVar12 = (byte *******)*param_1;\n        unaff_s4 = (byte *******)((int)pppppppbVar12 + param_1[6]);\n        pppppppbVar18 = (byte *******)((int)unaff_s4 + ((int)pppppppbVar20 - param_1[0x14]));\n        if (pppppppbVar18 <= pppppppbVar12) {\n          pppppppbVar18 = pppppppbVar12;\n        }\n        pppppppbVar12 = (byte *******)((int)unaff_s4 + (int)((int)pppppppbVar20 + -1));\n        unaff_s5 = pppppppbVar20;\n        if (pppppppbVar12 < pppppppbVar18) goto LAB_0049179c;\n        bVar3 = *(byte *)pppppppbVar12;\n        unaff_s7 = pppppppbVar12;\n        while ((bVar3 & 0xc0) == 0x80) {\n          pppppppbVar19 = (byte *******)((int)unaff_s7 + -1);\n          unaff_s7 = pppppppbVar12;\n          if (pppppppbVar19 < pppppppbVar18) goto LAB_0049179c;\n          unaff_s7 = pppppppbVar19;\n          bVar3 = *(byte *)pppppppbVar19;\n        }\n        iVar11 = param_1[0x10];\n        pbVar16 = (byte *)((int)unaff_s4 + (param_1[0xc] - (int)unaff_s7));\n        pppppppbVar18 = unaff_s7;\n        if (iVar11 != 0) {\n          pbVar17 = (byte *)0x6;\n          if ((int)pbVar16 < 7) {\n            pbVar17 = pbVar16;\n          }\n          if ((int)(pbVar17 + -1) < 0) {\n            pppppppbVar18 = appppppbStack_34;\n          }\n          else {\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }\n        }\n        local_3c = 0;\n        local_38 = 0;\n        uVar29 = (*(code *)PTR_mbrtowc_004bf2ec)(&local_40);\n        uVar30 = (int)((int)unaff_s4 + (int)pppppppbVar20) - (int)unaff_s7;\n        if ((uVar29 < uVar30) || (0xfffffffd < uVar29)) goto LAB_0049179c;\n        *(undefined1 *)(param_1 + 4) = 0;\n        *(undefined1 *)((int)param_1 + 0x11) = 0;\n        *(undefined1 *)((int)param_1 + 0x12) = 0;\n        *(undefined1 *)((int)param_1 + 0x13) = 0;\n        *(undefined1 *)(param_1 + 5) = 0;\n        *(undefined1 *)((int)param_1 + 0x15) = 0;\n        *(undefined1 *)((int)param_1 + 0x16) = 0;\n        *(undefined1 *)((int)param_1 + 0x17) = 0;\n        param_1[7] = uVar29 - uVar30;\n        unaff_s4 = local_40;\n        if (local_40 == (byte *******)0xffffffff) {\n          iVar11 = param_1[6];\n          goto LAB_004917a0;\n        }\nLAB_00491834:\n        if (*(char *)((int)param_1 + 0x4e) == '\0') {\nLAB_00491840:\n          iVar11 = 2;\n          if (unaff_s4 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        else {\n          iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          iVar11 = 1;\n          if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }\n        param_1[0xf] = iVar11;\n      }\nLAB_00491854:\n      ppppppbVar22 = (byte ******)param_1[7];\n      if (ppppppbVar22 == (byte ******)0x0) {\nLAB_00491860:\n        iVar11 = param_1[7];\n      }\n      else {\n        iVar11 = 0;\n        if (0 < (int)ppppppbVar22) {\n          do {\n            *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n            iVar11 = iVar11 + 1;\n            ppppppbVar22 = (byte ******)param_1[7];\n          } while (iVar11 < (int)ppppppbVar22);\n        }\n        pppppppbVar18 = (byte *******)0xff;\n        if (*(char *)((int)param_1 + 0x4b) == '\0') goto LAB_00491860;\n        (*(code *)PTR_memset_004bf260)(param_1[1]);\n        iVar11 = param_1[7];\n      }\n      param_1[8] = iVar11;\nLAB_00491360:\n      cVar2 = *(char *)((int)param_1 + 0x4b);\n    }\n    if (cVar2 == '\0') {\n      param_1[1] = (int)((int)pppppppbVar20 + param_1[1]);\n    }\n  }\n  param_1[6] = (int)param_2;\n  iVar11 = param_1[0xc];\n  param_1[0xc] = iVar11 - (int)pppppppbVar20;\n  iVar24 = param_1[0xe] - (int)pppppppbVar20;\n  param_1[0xe] = iVar24;\n  if (param_1[0x14] < 2) {\n    if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[7] = iVar11 - (int)pppppppbVar20;\n      goto LAB_00491aa8;\n    }\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      if (param_1[0x10] == 0) goto LAB_00491aa8;\n      FUN_00489d80();\n      param_1[10] = 0;\n    }\n    else {\n      FUN_0048b84c(param_1);\n      param_1[10] = 0;\n    }\n  }\n  else {\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      FUN_0048b928(param_1);\n      param_1[10] = 0;\n      goto LAB_00491aac;\n    }\n    ppppbVar5 = (byte ****)FUN_0048c3a4();\n    if (ppppbVar5 != (byte ****)0x0) goto LAB_00491ab0;\nLAB_00491aa8:\n    param_1[10] = 0;\n  }\nLAB_00491aac:\n  ppppbVar5 = (byte ****)0x0;\nLAB_00491ab0:\n  if (appppppbStack_34[2] == *(byte *******)PTR___stack_chk_guard_004bf38c) {\n    return ppppbVar5;\n  }\n  pcVar32 = FUN_00491b60;\n  ppppppbVar6 = appppppbStack_34[2];\n  (*(code *)PTR___stack_chk_fail_004bf34c)();\n  ppppbStack_84 = *(byte *****)PTR___stack_chk_guard_004bf38c;\n  pppppbVar31 = *ppppppbVar6;\n  if (pppppbVar31[0x17] == (byte ****)0x1) {\n    uVar29 = (uint)((int)ppppppbVar6[3] << 9) >> 0x1f;\n  }\n  else {\n    uVar29 = 0;\n  }\n  ppppppbVar13 = ppppppbVar6;\n  pppppppbVar20 = pppppppbVar18;\n  ppppppbVar21 = ppppppbVar22;\n  piStack_80 = param_1;\n  iStack_7c = iVar24;\n  pppppppbStack_78 = param_2;\n  ppppppbStack_74 = param_3;\n  pppppppbStack_70 = unaff_s4;\n  pppppppbStack_6c = unaff_s5;\n  pppppppbStack_68 = unaff_s6;\n  pppppppbStack_64 = unaff_s7;\n  piStack_60 = unaff_s8;\n  pcStack_5c = pcVar32;\n  if (0 < (int)pppppppbVar18[2]) {\n    iStack_1a8 = 0;\n    do {\n      pppppbVar23 = pppppppbVar18[3][iStack_1a8];\n      ppppppbVar7 = (byte ******)((int)pppppbVar23 * 8);\n      ppppbVar5 = *pppppbVar31 + (int)pppppbVar23 * 2;\n      ppppppbVar13 = (byte ******)(uint)*(byte *)(ppppbVar5 + 1);\n      pppppppbVar20 = (byte *******)&DAT_00000001;\n      if (ppppppbVar13 == (byte ******)&DAT_00000001) {\n        uVar30 = (uint)*(byte *)ppppbVar5;\n        *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        if (uVar29 != 0) {\n          if (uVar30 + 0x80 < 0x180) {\n            piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n          }\n          *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        }\n        if (((int)ppppppbVar6[3] << 9 < 0) &&\n           (ppppppbVar13 = ppppppbVar7, 1 < (int)pppppbVar31[0x17])) {\n          bStack_184 = *(byte *)(*pppppbVar31 + (int)pppppbVar23 * 2);\n          if ((byte ****)((int)pppppbVar23 + 1U) < pppppbVar31[2]) {\n            ppppbVar5 = (byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2));\n            ppppppbVar7 = ppppppbVar7 + 4;\n            if (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400) {\n              puVar15 = auStack_183;\n              do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar14 = auStack_183;\n            }\n          }\n          else {\n            puVar14 = auStack_183;\n          }\n          pppppbStack_18c = (byte *****)0x0;\n          uStack_188 = 0;\n          pppppppbVar20 = (byte *******)&bStack_184;\n          iVar11 = -(int)pppppppbVar20;\n          ppppppbVar13 = (byte ******)&ppppppbStack_190;\n          ppppppbVar21 = (byte ******)(puVar14 + iVar11);\n          ppppppbVar7 = (byte ******)(*(code *)PTR_mbrtowc_004bf2ec)();\n          if ((byte ******)(puVar14 + iVar11) == ppppppbVar7) {\n            pppppppbVar20 = (byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190);\n            ppppppbVar21 = &pppppbStack_18c;\n            ppppppbVar13 = (byte ******)&bStack_184;\n            iVar11 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar11 != -1) {\n              *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n            }\n          }\n        }\n      }\n      else {\n        pppppppbVar20 = (byte *******)&DAT_00000006;\n        if (ppppppbVar13 == (byte ******)0x3) {\n          iStack_1ac = 0;\n          iVar11 = 0;\n          do {\n            uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac);\n            uVar30 = 0;\n            iVar24 = iVar11;\n            do {\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            } while (uVar30 != 0x20);\n            iVar11 = iVar11 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar11 != 0x100);\n        }\n        else if (ppppppbVar13 == (byte ******)&DAT_00000006) {\n          pppbVar25 = *ppppbVar5;\n          if (((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))) {\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }\n          else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }\n          if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }\n        }\n      }\n      iStack_1a8 = iStack_1a8 + 1;\n    } while (iStack_1a8 < (int)pppppppbVar18[2]);\n  }\n  if (ppppbStack_84 == *(byte *****)PTR___stack_chk_guard_004bf38c) {\n    return *(byte *****)PTR___stack_chk_guard_004bf38c;\n  }\n  (*(code *)PTR___stack_chk_fail_004bf34c)();\n  pppppbVar31 = ppppppbVar21[1];\n  if (pppppbVar31 == (byte *****)0x0) {\n    *ppppppbVar13 = (byte *****)0x0;\n  }\n  else {\n    if (0 < (int)pppppbVar31) {\n      pppppbVar23 = ppppppbVar21[2];\n      pppppbVar26 = pppppbVar23 + (int)pppppbVar31;\n      do {\n        ppppbVar5 = *pppppbVar23;\n        pppppbVar23 = pppppbVar23 + 1;\n        pppppbVar31 = (byte *****)((int)pppppbVar31 + (int)ppppbVar5);\n      } while (pppppbVar23 != pppppbVar26);\n    }\n    pppppbVar23 = pppppppbVar20[8][((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3];\n    if (0 < (int)pppppbVar23) {\n      pppppbVar26 = (pppppppbVar20[8] + ((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3)[2];\n      pppppbVar28 = (byte *****)0x0;\n      do {\n        ppppbVar5 = *pppppbVar26;\n        if ((pppppbVar31 == (byte *****)*ppppbVar5) &&\n           (iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21), iVar11 != 0)) {\n          return ppppbVar5;\n        }\n        pppppbVar28 = (byte *****)((int)pppppbVar28 + 1);\n        pppppbVar26 = pppppbVar26 + 1;\n      } while (pppppbVar23 != pppppbVar28);\n    }\n    ppppbVar5 = (byte ****)(*(code *)PTR_calloc_004bf160)(0x38,1);\n    if (ppppbVar5 != (byte ****)0x0) {\n      iVar11 = FUN_0048c08c(ppppbVar5 + 1,ppppppbVar21);\n      if (iVar11 == 0) {\n        ppppbVar5[10] = (byte ***)(ppppbVar5 + 1);\n        if (0 < (int)ppppppbVar21[1]) {\n          ppppppbVar22 = *pppppppbVar20;\n          pppppbVar23 = ppppppbVar21[2];\n          pppppbVar26 = pppppbVar23 + (int)ppppppbVar21[1];\n          do {\n            ppppbVar10 = *pppppbVar23;\n            cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1);\n            if (cVar2 == '\x01') {\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }\n            pppppbVar23 = pppppbVar23 + 1;\n          } while (pppppbVar23 != pppppbVar26);\n        }\n        iVar11 = FUN_0048b6d0(pppppppbVar20,ppppbVar5,pppppbVar31);\n        if (iVar11 == 0) {\n          return ppppbVar5;\n        }\n        FUN_0048e3e8(ppppbVar5);\n      }\n      else {\n        (*(code *)PTR_free_004bf39c)(ppppbVar5);\n      }\n    }\n    *ppppppbVar13 = (byte *****)0xc;\n  }\n  return (byte ****)0x0;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "byte ****ppppbVar5;" type_identifier (pointer_declarator "****ppppbVar5" * (pointer_declarator "***ppppbVar5" * (pointer_declarator "**ppppbVar5" * (pointer_declarator "*ppppbVar5" * identifier)))) ;) (declaration "byte ******ppppppbVar6;" type_identifier (pointer_declarator "******ppppppbVar6" * (pointer_declarator "*****ppppppbVar6" * (pointer_declarator "****ppppppbVar6" * (pointer_declarator "***ppppppbVar6" * (pointer_declarator "**ppppppbVar6" * (pointer_declarator "*ppppppbVar6" * identifier)))))) ;) (declaration "byte ******ppppppbVar7;" type_identifier (pointer_declarator "******ppppppbVar7" * (pointer_declarator "*****ppppppbVar7" * (pointer_declarator "****ppppppbVar7" * (pointer_declarator "***ppppppbVar7" * (pointer_declarator "**ppppppbVar7" * (pointer_declarator "*ppppppbVar7" * identifier)))))) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "byte ****ppppbVar10;" type_identifier (pointer_declarator "****ppppbVar10" * (pointer_declarator "***ppppbVar10" * (pointer_declarator "**ppppbVar10" * (pointer_declarator "*ppppbVar10" * identifier)))) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "byte *******pppppppbVar12;" type_identifier (pointer_declarator "*******pppppppbVar12" * (pointer_declarator "******pppppppbVar12" * (pointer_declarator "*****pppppppbVar12" * (pointer_declarator "****pppppppbVar12" * (pointer_declarator "***pppppppbVar12" * (pointer_declarator "**pppppppbVar12" * (pointer_declarator "*pppppppbVar12" * identifier))))))) ;) (declaration "byte ******ppppppbVar13;" type_identifier (pointer_declarator "******ppppppbVar13" * (pointer_declarator "*****ppppppbVar13" * (pointer_declarator "****ppppppbVar13" * (pointer_declarator "***ppppppbVar13" * (pointer_declarator "**ppppppbVar13" * (pointer_declarator "*ppppppbVar13" * identifier)))))) ;) (declaration "undefined1 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "byte *******pppppppbVar18;" type_identifier (pointer_declarator "*******pppppppbVar18" * (pointer_declarator "******pppppppbVar18" * (pointer_declarator "*****pppppppbVar18" * (pointer_declarator "****pppppppbVar18" * (pointer_declarator "***pppppppbVar18" * (pointer_declarator "**pppppppbVar18" * (pointer_declarator "*pppppppbVar18" * identifier))))))) ;) (declaration "byte *******pppppppbVar19;" type_identifier (pointer_declarator "*******pppppppbVar19" * (pointer_declarator "******pppppppbVar19" * (pointer_declarator "*****pppppppbVar19" * (pointer_declarator "****pppppppbVar19" * (pointer_declarator "***pppppppbVar19" * (pointer_declarator "**pppppppbVar19" * (pointer_declarator "*pppppppbVar19" * identifier))))))) ;) (declaration "byte *******pppppppbVar20;" type_identifier (pointer_declarator "*******pppppppbVar20" * (pointer_declarator "******pppppppbVar20" * (pointer_declarator "*****pppppppbVar20" * (pointer_declarator "****pppppppbVar20" * (pointer_declarator "***pppppppbVar20" * (pointer_declarator "**pppppppbVar20" * (pointer_declarator "*pppppppbVar20" * identifier))))))) ;) (declaration "byte ******ppppppbVar21;" type_identifier (pointer_declarator "******ppppppbVar21" * (pointer_declarator "*****ppppppbVar21" * (pointer_declarator "****ppppppbVar21" * (pointer_declarator "***ppppppbVar21" * (pointer_declarator "**ppppppbVar21" * (pointer_declarator "*ppppppbVar21" * identifier)))))) ;) (declaration "byte ******ppppppbVar22;" type_identifier (pointer_declarator "******ppppppbVar22" * (pointer_declarator "*****ppppppbVar22" * (pointer_declarator "****ppppppbVar22" * (pointer_declarator "***ppppppbVar22" * (pointer_declarator "**ppppppbVar22" * (pointer_declarator "*ppppppbVar22" * identifier)))))) ;) (declaration "byte *****pppppbVar23;" type_identifier (pointer_declarator "*****pppppbVar23" * (pointer_declarator "****pppppbVar23" * (pointer_declarator "***pppppbVar23" * (pointer_declarator "**pppppbVar23" * (pointer_declarator "*pppppbVar23" * identifier))))) ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "byte ***pppbVar25;" type_identifier (pointer_declarator "***pppbVar25" * (pointer_declarator "**pppbVar25" * (pointer_declarator "*pppbVar25" * identifier))) ;) (declaration "byte *****pppppbVar26;" type_identifier (pointer_declarator "*****pppppbVar26" * (pointer_declarator "****pppppbVar26" * (pointer_declarator "***pppppbVar26" * (pointer_declarator "**pppppbVar26" * (pointer_declarator "*pppppbVar26" * identifier))))) ;) (declaration "uint uVar27;" type_identifier identifier ;) (declaration "byte *****pppppbVar28;" type_identifier (pointer_declarator "*****pppppbVar28" * (pointer_declarator "****pppppbVar28" * (pointer_declarator "***pppppbVar28" * (pointer_declarator "**pppppbVar28" * (pointer_declarator "*pppppbVar28" * identifier))))) ;) (declaration "byte *******unaff_s4;" type_identifier (pointer_declarator "*******unaff_s4" * (pointer_declarator "******unaff_s4" * (pointer_declarator "*****unaff_s4" * (pointer_declarator "****unaff_s4" * (pointer_declarator "***unaff_s4" * (pointer_declarator "**unaff_s4" * (pointer_declarator "*unaff_s4" * identifier))))))) ;) (declaration "byte *******unaff_s5;" type_identifier (pointer_declarator "*******unaff_s5" * (pointer_declarator "******unaff_s5" * (pointer_declarator "*****unaff_s5" * (pointer_declarator "****unaff_s5" * (pointer_declarator "***unaff_s5" * (pointer_declarator "**unaff_s5" * (pointer_declarator "*unaff_s5" * identifier))))))) ;) (declaration "byte *******unaff_s6;" type_identifier (pointer_declarator "*******unaff_s6" * (pointer_declarator "******unaff_s6" * (pointer_declarator "*****unaff_s6" * (pointer_declarator "****unaff_s6" * (pointer_declarator "***unaff_s6" * (pointer_declarator "**unaff_s6" * (pointer_declarator "*unaff_s6" * identifier))))))) ;) (declaration "uint uVar29;" type_identifier identifier ;) (declaration "byte *******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 "uint uVar30;" type_identifier identifier ;) (declaration "int *unaff_s8;" primitive_type (pointer_declarator "*unaff_s8" * identifier) ;) (declaration "byte *****pppppbVar31;" type_identifier (pointer_declarator "*****pppppbVar31" * (pointer_declarator "****pppppbVar31" * (pointer_declarator "***pppppbVar31" * (pointer_declarator "**pppppbVar31" * (pointer_declarator "*pppppbVar31" * identifier))))) ;) (declaration "code *pcVar32;" type_identifier (pointer_declarator "*pcVar32" * identifier) ;) (declaration "int iStack_1ac;" primitive_type identifier ;) (declaration "int iStack_1a8;" primitive_type identifier ;) (declaration "byte ******ppppppbStack_190;" type_identifier (pointer_declarator "******ppppppbStack_190" * (pointer_declarator "*****ppppppbStack_190" * (pointer_declarator "****ppppppbStack_190" * (pointer_declarator "***ppppppbStack_190" * (pointer_declarator "**ppppppbStack_190" * (pointer_declarator "*ppppppbStack_190" * identifier)))))) ;) (declaration "byte *****pppppbStack_18c;" type_identifier (pointer_declarator "*****pppppbStack_18c" * (pointer_declarator "****pppppbStack_18c" * (pointer_declarator "***pppppbStack_18c" * (pointer_declarator "**pppppbStack_18c" * (pointer_declarator "*pppppbStack_18c" * identifier))))) ;) (declaration "undefined4 uStack_188;" type_identifier identifier ;) (declaration "byte bStack_184;" type_identifier identifier ;) (declaration "undefined1 auStack_183 [255];" type_identifier (array_declarator "auStack_183 [255]" identifier [ number_literal ]) ;) (declaration "byte ****ppppbStack_84;" type_identifier (pointer_declarator "****ppppbStack_84" * (pointer_declarator "***ppppbStack_84" * (pointer_declarator "**ppppbStack_84" * (pointer_declarator "*ppppbStack_84" * identifier)))) ;) (declaration "int *piStack_80;" primitive_type (pointer_declarator "*piStack_80" * identifier) ;) (declaration "int iStack_7c;" primitive_type identifier ;) (declaration "byte *******pppppppbStack_78;" type_identifier (pointer_declarator "*******pppppppbStack_78" * (pointer_declarator "******pppppppbStack_78" * (pointer_declarator "*****pppppppbStack_78" * (pointer_declarator "****pppppppbStack_78" * (pointer_declarator "***pppppppbStack_78" * (pointer_declarator "**pppppppbStack_78" * (pointer_declarator "*pppppppbStack_78" * identifier))))))) ;) (declaration "byte ******ppppppbStack_74;" type_identifier (pointer_declarator "******ppppppbStack_74" * (pointer_declarator "*****ppppppbStack_74" * (pointer_declarator "****ppppppbStack_74" * (pointer_declarator "***ppppppbStack_74" * (pointer_declarator "**ppppppbStack_74" * (pointer_declarator "*ppppppbStack_74" * identifier)))))) ;) (declaration "byte *******pppppppbStack_70;" type_identifier (pointer_declarator "*******pppppppbStack_70" * (pointer_declarator "******pppppppbStack_70" * (pointer_declarator "*****pppppppbStack_70" * (pointer_declarator "****pppppppbStack_70" * (pointer_declarator "***pppppppbStack_70" * (pointer_declarator "**pppppppbStack_70" * (pointer_declarator "*pppppppbStack_70" * identifier))))))) ;) (declaration "byte *******pppppppbStack_6c;" type_identifier (pointer_declarator "*******pppppppbStack_6c" * (pointer_declarator "******pppppppbStack_6c" * (pointer_declarator "*****pppppppbStack_6c" * (pointer_declarator "****pppppppbStack_6c" * (pointer_declarator "***pppppppbStack_6c" * (pointer_declarator "**pppppppbStack_6c" * (pointer_declarator "*pppppppbStack_6c" * identifier))))))) ;) (declaration "byte *******pppppppbStack_68;" type_identifier (pointer_declarator "*******pppppppbStack_68" * (pointer_declarator "******pppppppbStack_68" * (pointer_declarator "*****pppppppbStack_68" * (pointer_declarator "****pppppppbStack_68" * (pointer_declarator "***pppppppbStack_68" * (pointer_declarator "**pppppppbStack_68" * (pointer_declarator "*pppppppbStack_68" * identifier))))))) ;) (declaration "byte *******pppppppbStack_64;" type_identifier (pointer_declarator "*******pppppppbStack_64" * (pointer_declarator "******pppppppbStack_64" * (pointer_declarator "*****pppppppbStack_64" * (pointer_declarator "****pppppppbStack_64" * (pointer_declarator "***pppppppbStack_64" * (pointer_declarator "**pppppppbStack_64" * (pointer_declarator "*pppppppbStack_64" * identifier))))))) ;) (declaration "int *piStack_60;" primitive_type (pointer_declarator "*piStack_60" * identifier) ;) (declaration "code *pcStack_5c;" type_identifier (pointer_declarator "*pcStack_5c" * identifier) ;) (declaration "byte *******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 "byte ******appppppbStack_34 [3];" type_identifier (pointer_declarator "******appppppbStack_34 [3]" * (pointer_declarator "*****appppppbStack_34 [3]" * (pointer_declarator "****appppppbStack_34 [3]" * (pointer_declarator "***appppppbStack_34 [3]" * (pointer_declarator "**appppppbStack_34 [3]" * (pointer_declarator "*appppppbStack_34 [3]" * (array_declarator "appppppbStack_34 [3]" identifier [ number_literal ]))))))) ;) (declaration "undefined1 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (expression_statement "appppppbStack_34[2] = *(byte *******)PTR___stack_chk_guard_004bf38c;" (assignment_expression "appppppbStack_34[2] = *(byte *******)PTR___stack_chk_guard_004bf38c" (subscript_expression "appppppbStack_34[2]" identifier [ number_literal ]) = (pointer_expression "*(byte *******)PTR___stack_chk_guard_004bf38c" * (cast_expression "(byte *******)PTR___stack_chk_guard_004bf38c" ( (type_descriptor "byte *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) identifier))) ;) (expression_statement "pppppppbVar20 = (byte *******)((int)param_2 - param_1[6]);" (assignment_expression "pppppppbVar20 = (byte *******)((int)param_2 - param_1[6])" identifier = (cast_expression "(byte *******)((int)param_2 - param_1[6])" ( (type_descriptor "byte *******" 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      *(undefined1 *)(param_1 + 4) = 0;\n      *(undefined1 *)((int)param_1 + 0x11) = 0;\n      *(undefined1 *)((int)param_1 + 0x12) = 0;\n      *(undefined1 *)((int)param_1 + 0x13) = 0;\n      *(undefined1 *)(param_1 + 5) = 0;\n      *(undefined1 *)((int)param_1 + 0x15) = 0;\n      *(undefined1 *)((int)param_1 + 0x16) = 0;\n      *(undefined1 *)((int)param_1 + 0x17) = 0;\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    iVar11 = 6;\n    if (((uint)param_3 & 1) != 0) {\n      iVar11 = 4;\n    }\n    param_1[0xf] = iVar11;\n    pppppppbVar20 = param_2;\n    if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[1] = *param_1;\n    }\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      *(undefined1 *)(param_1 + 4) = 0;\n      *(undefined1 *)((int)param_1 + 0x11) = 0;\n      *(undefined1 *)((int)param_1 + 0x12) = 0;\n      *(undefined1 *)((int)param_1 + 0x13) = 0;\n      *(undefined1 *)(param_1 + 5) = 0;\n      *(undefined1 *)((int)param_1 + 0x15) = 0;\n      *(undefined1 *)((int)param_1 + 0x16) = 0;\n      *(undefined1 *)((int)param_1 + 0x17) = 0;\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    iVar11 = 6;\n    if (((uint)param_3 & 1) != 0) {\n      iVar11 = 4;\n    }\n    param_1[0xf] = iVar11;\n    pppppppbVar20 = param_2;\n    if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[1] = *param_1;\n    }\n  }" { (if_statement "if (1 < param_1[0x14]) {\n      *(undefined1 *)(param_1 + 4) = 0;\n      *(undefined1 *)((int)param_1 + 0x11) = 0;\n      *(undefined1 *)((int)param_1 + 0x12) = 0;\n      *(undefined1 *)((int)param_1 + 0x13) = 0;\n      *(undefined1 *)(param_1 + 5) = 0;\n      *(undefined1 *)((int)param_1 + 0x15) = 0;\n      *(undefined1 *)((int)param_1 + 0x16) = 0;\n      *(undefined1 *)((int)param_1 + 0x17) = 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      *(undefined1 *)(param_1 + 4) = 0;\n      *(undefined1 *)((int)param_1 + 0x11) = 0;\n      *(undefined1 *)((int)param_1 + 0x12) = 0;\n      *(undefined1 *)((int)param_1 + 0x13) = 0;\n      *(undefined1 *)(param_1 + 5) = 0;\n      *(undefined1 *)((int)param_1 + 0x15) = 0;\n      *(undefined1 *)((int)param_1 + 0x16) = 0;\n      *(undefined1 *)((int)param_1 + 0x17) = 0;\n    }" { (expression_statement "*(undefined1 *)(param_1 + 4) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 4) = 0" (pointer_expression "*(undefined1 *)(param_1 + 4)" * (cast_expression "(undefined1 *)(param_1 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)param_1 + 0x11) = 0;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x11) = 0" (pointer_expression "*(undefined1 *)((int)param_1 + 0x11)" * (cast_expression "(undefined1 *)((int)param_1 + 0x11)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x11)" ( (binary_expression "(int)param_1 + 0x11" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)param_1 + 0x12) = 0;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x12) = 0" (pointer_expression "*(undefined1 *)((int)param_1 + 0x12)" * (cast_expression "(undefined1 *)((int)param_1 + 0x12)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x12)" ( (binary_expression "(int)param_1 + 0x12" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)param_1 + 0x13) = 0;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x13) = 0" (pointer_expression "*(undefined1 *)((int)param_1 + 0x13)" * (cast_expression "(undefined1 *)((int)param_1 + 0x13)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x13)" ( (binary_expression "(int)param_1 + 0x13" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 5) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 5) = 0" (pointer_expression "*(undefined1 *)(param_1 + 5)" * (cast_expression "(undefined1 *)(param_1 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 5)" ( (binary_expression "param_1 + 5" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)param_1 + 0x15) = 0;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x15) = 0" (pointer_expression "*(undefined1 *)((int)param_1 + 0x15)" * (cast_expression "(undefined1 *)((int)param_1 + 0x15)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x15)" ( (binary_expression "(int)param_1 + 0x15" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)param_1 + 0x16) = 0;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x16) = 0" (pointer_expression "*(undefined1 *)((int)param_1 + 0x16)" * (cast_expression "(undefined1 *)((int)param_1 + 0x16)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x16)" ( (binary_expression "(int)param_1 + 0x16" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)param_1 + 0x17) = 0;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x17) = 0" (pointer_expression "*(undefined1 *)((int)param_1 + 0x17)" * (cast_expression "(undefined1 *)((int)param_1 + 0x17)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x17)" ( (binary_expression "(int)param_1 + 0x17" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = 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 "iVar11 = 6;" (assignment_expression "iVar11 = 6" identifier = number_literal) ;) (if_statement "if (((uint)param_3 & 1) != 0) {\n      iVar11 = 4;\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      iVar11 = 4;\n    }" { (expression_statement "iVar11 = 4;" (assignment_expression "iVar11 = 4" identifier = number_literal) ;) })) (expression_statement "param_1[0xf] = iVar11;" (assignment_expression "param_1[0xf] = iVar11" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppbVar20 = param_2;" (assignment_expression "pppppppbVar20 = param_2" identifier = identifier) ;) (if_statement "if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[1] = *param_1;\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    }" { (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)) ;) })) })) (expression_statement "pppppppbVar18 = param_2;" (assignment_expression "pppppppbVar18 = param_2" identifier = identifier) ;) (expression_statement "ppppppbVar22 = param_3;" (assignment_expression "ppppppbVar22 = param_3" identifier = identifier) ;) (if_statement "if (pppppppbVar20 != (byte *******)0x0) {\n    if ((int)pppppppbVar20 < param_1[8]) {\n      if (*(char *)(param_1 + 0x13) == '\0') {\n        iVar11 = FUN_0048efec(param_1,(byte *)((int)pppppppbVar20 + -1));\n        param_1[0xf] = iVar11;\n        pppppppbVar18 = (byte *******)((int)pppppppbVar20 * 4);\n        if (param_1[0x14] < 2) {\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        else {\n          ppppppbVar22 = (byte ******)((param_1[7] - (int)pppppppbVar20) * 4);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar18 + param_1[2]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        if (cVar2 == '\0') {\n          iVar11 = param_1[7];\n        }\n        else {\n          ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar11 = param_1[7];\n        }\n        param_1[7] = iVar11 - (int)pppppppbVar20;\n        param_1[8] = param_1[8] - (int)pppppppbVar20;\n        goto LAB_00491360;\n      }\n      unaff_s6 = (byte *******)param_1[7];\n      unaff_s5 = (byte *******)param_1[3];\n      pbVar16 = (byte *)0x0;\n      pppppppbVar18 = unaff_s6;\n      do {\n        unaff_s4 = (byte *******)((int)(pbVar16 + (int)pppppppbVar18) / 2);\n        ppppppbVar6 = unaff_s5[(int)unaff_s4];\n        bVar1 = (int)pbVar16 < (int)unaff_s4;\n        pppppppbVar12 = unaff_s4;\n        if ((int)ppppppbVar6 <= (int)pppppppbVar20) {\n          pbVar16 = (byte *)((int)unaff_s4 + 1);\n          if ((int)pppppppbVar20 <= (int)ppppppbVar6) goto LAB_0049145c;\n          bVar1 = (int)pbVar16 < (int)pppppppbVar18;\n          pppppppbVar12 = pppppppbVar18;\n        }\n        pppppppbVar18 = pppppppbVar12;\n      } while (bVar1);\n      if ((int)ppppppbVar6 < (int)pppppppbVar20) {\n        unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n      }\nLAB_0049145c:\n      pppppppbVar18 = (byte *******)((int)unaff_s4 + -1);\n      iVar11 = FUN_0048efec(param_1);\n      param_1[0xf] = iVar11;\n      if ((((int)unaff_s6 <= (int)pppppppbVar20) || (pppppppbVar20 != unaff_s4)) ||\n         (param_3 = (byte ******)((int)pppppppbVar20 * 4),\n         (byte *******)unaff_s5[(int)unaff_s4] != pppppppbVar20)) {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        if ((0 < (int)unaff_s4) &&\n           ((byte *******)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pppppppbVar20)) {\n          pppppppbVar12 = unaff_s5 + (int)(unaff_s4 + 0x10000000);\n          do {\n            unaff_s4 = (byte *******)((int)unaff_s4 + -1);\n            if (unaff_s4 == (byte *******)0x0) break;\n            pppppppbVar19 = pppppppbVar12 + -2;\n            pppppppbVar12 = pppppppbVar12 + -1;\n          } while ((byte *******)*pppppppbVar19 == pppppppbVar20);\n        }\n        if ((int)unaff_s4 < (int)unaff_s6) {\n          piVar9 = (int *)(param_1[2] + (int)unaff_s4 * 4);\n          iVar11 = *piVar9;\n          while (iVar11 == -1) {\n            unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n            piVar9 = piVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            iVar11 = *piVar9;\n          }\nLAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;\n          ppppppbVar22 = (byte ******)((int)*unaff_s4 - (int)pppppppbVar20);\n          param_1[7] = (int)ppppppbVar22;\n          if (ppppppbVar22 == (byte ******)0x0) goto LAB_00491650;\n          if (0 < (int)ppppppbVar22) {\n            iVar11 = 0;\n            do {\n              *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n              iVar11 = iVar11 + 1;\n              ppppppbVar22 = (byte ******)param_1[7];\n            } while (iVar11 < (int)ppppppbVar22);\n          }\n          pppppppbVar18 = (byte *******)0xff;\n          (*(code *)PTR_memset_004bf260)(param_1[1]);\n          iVar11 = param_1[7];\n        }\n        else {\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          param_1[7] = 0;\nLAB_00491650:\n          iVar11 = param_1[7];\n        }\n        param_1[8] = iVar11;\n        goto LAB_00491360;\n      }\n      (*(code *)PTR_memmove_004bf3a4)\n                (param_1[2],param_1[2] + (int)param_3,((int)unaff_s6 - (int)pppppppbVar20) * 4);\n      ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n      pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n      (*(code *)PTR_memmove_004bf3a4)();\n      iVar11 = param_1[7];\n      param_1[7] = iVar11 - (int)pppppppbVar20;\n      param_1[8] = param_1[8] - (int)pppppppbVar20;\n      if (iVar11 - (int)pppppppbVar20 < 1) goto LAB_00491360;\n      iVar11 = 0;\n      do {\n        *(int *)(param_1[3] + iVar11 * 4) = *(int *)(param_1[3] + (int)param_3) - (int)pppppppbVar20\n        ;\n        iVar11 = iVar11 + 1;\n        param_3 = param_3 + 1;\n      } while (iVar11 < param_1[7]);\n      cVar2 = *(char *)((int)param_1 + 0x4b);\n    }\n    else {\n      unaff_s6 = (byte *******)param_1[7];\n      if (*(char *)(param_1 + 0x13) != '\0') {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n      }\n      param_1[7] = 0;\n      if (param_1[0x14] < 2) {\n        pppppppbVar18 =\n             (byte *******)(uint)*(byte *)((int)pppppppbVar20 + param_1[6] + *param_1 + -1);\n        param_1[8] = 0;\n        if (param_1[0x10] != 0) {\n          pppppppbVar18 = (byte *******)(uint)*(byte *)((int)pppppppbVar18 + param_1[0x10]);\n        }\n        iVar11 = 1;\n        if ((*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f) & 1) == 0) {\n          iVar11 = 2;\n          if (pppppppbVar18 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        param_1[0xf] = iVar11;\n        goto LAB_00491360;\n      }\n      if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0049179c:\n        iVar11 = param_1[6];\nLAB_004917a0:\n        pppppppbVar12 = (byte *******)(iVar11 + param_1[8]);\n        if ((int)pppppppbVar12 < (int)param_2) {\n          unaff_s8 = param_1 + 4;\n          unaff_s7 = (byte *******)&local_40;\n          do {\n            unaff_s5 = pppppppbVar12;\n            iVar24 = param_1[0xb];\n            local_3c = param_1[4];\n            local_38 = param_1[5];\n            pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1);\n            iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8);\n            unaff_s4 = local_40;\n            if (0xfffffffc < iVar11 - 1U) {\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }\n            pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11);\n          } while ((int)pppppppbVar12 < (int)param_2);\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n          if (unaff_s4 != (byte *******)0xffffffff) goto LAB_00491834;\n        }\n        else {\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n        }\n        pppppppbVar18 = (byte *******)((int)unaff_s6 + -1);\n        iVar11 = FUN_0048efec(param_1,pppppppbVar18,param_3);\n        param_1[0xf] = iVar11;\n      }\n      else {\n        pppppppbVar12 = (byte *******)*param_1;\n        unaff_s4 = (byte *******)((int)pppppppbVar12 + param_1[6]);\n        pppppppbVar18 = (byte *******)((int)unaff_s4 + ((int)pppppppbVar20 - param_1[0x14]));\n        if (pppppppbVar18 <= pppppppbVar12) {\n          pppppppbVar18 = pppppppbVar12;\n        }\n        pppppppbVar12 = (byte *******)((int)unaff_s4 + (int)((int)pppppppbVar20 + -1));\n        unaff_s5 = pppppppbVar20;\n        if (pppppppbVar12 < pppppppbVar18) goto LAB_0049179c;\n        bVar3 = *(byte *)pppppppbVar12;\n        unaff_s7 = pppppppbVar12;\n        while ((bVar3 & 0xc0) == 0x80) {\n          pppppppbVar19 = (byte *******)((int)unaff_s7 + -1);\n          unaff_s7 = pppppppbVar12;\n          if (pppppppbVar19 < pppppppbVar18) goto LAB_0049179c;\n          unaff_s7 = pppppppbVar19;\n          bVar3 = *(byte *)pppppppbVar19;\n        }\n        iVar11 = param_1[0x10];\n        pbVar16 = (byte *)((int)unaff_s4 + (param_1[0xc] - (int)unaff_s7));\n        pppppppbVar18 = unaff_s7;\n        if (iVar11 != 0) {\n          pbVar17 = (byte *)0x6;\n          if ((int)pbVar16 < 7) {\n            pbVar17 = pbVar16;\n          }\n          if ((int)(pbVar17 + -1) < 0) {\n            pppppppbVar18 = appppppbStack_34;\n          }\n          else {\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }\n        }\n        local_3c = 0;\n        local_38 = 0;\n        uVar29 = (*(code *)PTR_mbrtowc_004bf2ec)(&local_40);\n        uVar30 = (int)((int)unaff_s4 + (int)pppppppbVar20) - (int)unaff_s7;\n        if ((uVar29 < uVar30) || (0xfffffffd < uVar29)) goto LAB_0049179c;\n        *(undefined1 *)(param_1 + 4) = 0;\n        *(undefined1 *)((int)param_1 + 0x11) = 0;\n        *(undefined1 *)((int)param_1 + 0x12) = 0;\n        *(undefined1 *)((int)param_1 + 0x13) = 0;\n        *(undefined1 *)(param_1 + 5) = 0;\n        *(undefined1 *)((int)param_1 + 0x15) = 0;\n        *(undefined1 *)((int)param_1 + 0x16) = 0;\n        *(undefined1 *)((int)param_1 + 0x17) = 0;\n        param_1[7] = uVar29 - uVar30;\n        unaff_s4 = local_40;\n        if (local_40 == (byte *******)0xffffffff) {\n          iVar11 = param_1[6];\n          goto LAB_004917a0;\n        }\nLAB_00491834:\n        if (*(char *)((int)param_1 + 0x4e) == '\0') {\nLAB_00491840:\n          iVar11 = 2;\n          if (unaff_s4 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        else {\n          iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          iVar11 = 1;\n          if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }\n        param_1[0xf] = iVar11;\n      }\nLAB_00491854:\n      ppppppbVar22 = (byte ******)param_1[7];\n      if (ppppppbVar22 == (byte ******)0x0) {\nLAB_00491860:\n        iVar11 = param_1[7];\n      }\n      else {\n        iVar11 = 0;\n        if (0 < (int)ppppppbVar22) {\n          do {\n            *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n            iVar11 = iVar11 + 1;\n            ppppppbVar22 = (byte ******)param_1[7];\n          } while (iVar11 < (int)ppppppbVar22);\n        }\n        pppppppbVar18 = (byte *******)0xff;\n        if (*(char *)((int)param_1 + 0x4b) == '\0') goto LAB_00491860;\n        (*(code *)PTR_memset_004bf260)(param_1[1]);\n        iVar11 = param_1[7];\n      }\n      param_1[8] = iVar11;\nLAB_00491360:\n      cVar2 = *(char *)((int)param_1 + 0x4b);\n    }\n    if (cVar2 == '\0') {\n      param_1[1] = (int)((int)pppppppbVar20 + param_1[1]);\n    }\n  }" if (parenthesized_expression "(pppppppbVar20 != (byte *******)0x0)" ( (binary_expression "pppppppbVar20 != (byte *******)0x0" identifier != (cast_expression "(byte *******)0x0" ( (type_descriptor "byte *******" 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 ((int)pppppppbVar20 < param_1[8]) {\n      if (*(char *)(param_1 + 0x13) == '\0') {\n        iVar11 = FUN_0048efec(param_1,(byte *)((int)pppppppbVar20 + -1));\n        param_1[0xf] = iVar11;\n        pppppppbVar18 = (byte *******)((int)pppppppbVar20 * 4);\n        if (param_1[0x14] < 2) {\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        else {\n          ppppppbVar22 = (byte ******)((param_1[7] - (int)pppppppbVar20) * 4);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar18 + param_1[2]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        if (cVar2 == '\0') {\n          iVar11 = param_1[7];\n        }\n        else {\n          ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar11 = param_1[7];\n        }\n        param_1[7] = iVar11 - (int)pppppppbVar20;\n        param_1[8] = param_1[8] - (int)pppppppbVar20;\n        goto LAB_00491360;\n      }\n      unaff_s6 = (byte *******)param_1[7];\n      unaff_s5 = (byte *******)param_1[3];\n      pbVar16 = (byte *)0x0;\n      pppppppbVar18 = unaff_s6;\n      do {\n        unaff_s4 = (byte *******)((int)(pbVar16 + (int)pppppppbVar18) / 2);\n        ppppppbVar6 = unaff_s5[(int)unaff_s4];\n        bVar1 = (int)pbVar16 < (int)unaff_s4;\n        pppppppbVar12 = unaff_s4;\n        if ((int)ppppppbVar6 <= (int)pppppppbVar20) {\n          pbVar16 = (byte *)((int)unaff_s4 + 1);\n          if ((int)pppppppbVar20 <= (int)ppppppbVar6) goto LAB_0049145c;\n          bVar1 = (int)pbVar16 < (int)pppppppbVar18;\n          pppppppbVar12 = pppppppbVar18;\n        }\n        pppppppbVar18 = pppppppbVar12;\n      } while (bVar1);\n      if ((int)ppppppbVar6 < (int)pppppppbVar20) {\n        unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n      }\nLAB_0049145c:\n      pppppppbVar18 = (byte *******)((int)unaff_s4 + -1);\n      iVar11 = FUN_0048efec(param_1);\n      param_1[0xf] = iVar11;\n      if ((((int)unaff_s6 <= (int)pppppppbVar20) || (pppppppbVar20 != unaff_s4)) ||\n         (param_3 = (byte ******)((int)pppppppbVar20 * 4),\n         (byte *******)unaff_s5[(int)unaff_s4] != pppppppbVar20)) {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        if ((0 < (int)unaff_s4) &&\n           ((byte *******)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pppppppbVar20)) {\n          pppppppbVar12 = unaff_s5 + (int)(unaff_s4 + 0x10000000);\n          do {\n            unaff_s4 = (byte *******)((int)unaff_s4 + -1);\n            if (unaff_s4 == (byte *******)0x0) break;\n            pppppppbVar19 = pppppppbVar12 + -2;\n            pppppppbVar12 = pppppppbVar12 + -1;\n          } while ((byte *******)*pppppppbVar19 == pppppppbVar20);\n        }\n        if ((int)unaff_s4 < (int)unaff_s6) {\n          piVar9 = (int *)(param_1[2] + (int)unaff_s4 * 4);\n          iVar11 = *piVar9;\n          while (iVar11 == -1) {\n            unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n            piVar9 = piVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            iVar11 = *piVar9;\n          }\nLAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;\n          ppppppbVar22 = (byte ******)((int)*unaff_s4 - (int)pppppppbVar20);\n          param_1[7] = (int)ppppppbVar22;\n          if (ppppppbVar22 == (byte ******)0x0) goto LAB_00491650;\n          if (0 < (int)ppppppbVar22) {\n            iVar11 = 0;\n            do {\n              *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n              iVar11 = iVar11 + 1;\n              ppppppbVar22 = (byte ******)param_1[7];\n            } while (iVar11 < (int)ppppppbVar22);\n          }\n          pppppppbVar18 = (byte *******)0xff;\n          (*(code *)PTR_memset_004bf260)(param_1[1]);\n          iVar11 = param_1[7];\n        }\n        else {\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          param_1[7] = 0;\nLAB_00491650:\n          iVar11 = param_1[7];\n        }\n        param_1[8] = iVar11;\n        goto LAB_00491360;\n      }\n      (*(code *)PTR_memmove_004bf3a4)\n                (param_1[2],param_1[2] + (int)param_3,((int)unaff_s6 - (int)pppppppbVar20) * 4);\n      ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n      pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n      (*(code *)PTR_memmove_004bf3a4)();\n      iVar11 = param_1[7];\n      param_1[7] = iVar11 - (int)pppppppbVar20;\n      param_1[8] = param_1[8] - (int)pppppppbVar20;\n      if (iVar11 - (int)pppppppbVar20 < 1) goto LAB_00491360;\n      iVar11 = 0;\n      do {\n        *(int *)(param_1[3] + iVar11 * 4) = *(int *)(param_1[3] + (int)param_3) - (int)pppppppbVar20\n        ;\n        iVar11 = iVar11 + 1;\n        param_3 = param_3 + 1;\n      } while (iVar11 < param_1[7]);\n      cVar2 = *(char *)((int)param_1 + 0x4b);\n    }\n    else {\n      unaff_s6 = (byte *******)param_1[7];\n      if (*(char *)(param_1 + 0x13) != '\0') {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n      }\n      param_1[7] = 0;\n      if (param_1[0x14] < 2) {\n        pppppppbVar18 =\n             (byte *******)(uint)*(byte *)((int)pppppppbVar20 + param_1[6] + *param_1 + -1);\n        param_1[8] = 0;\n        if (param_1[0x10] != 0) {\n          pppppppbVar18 = (byte *******)(uint)*(byte *)((int)pppppppbVar18 + param_1[0x10]);\n        }\n        iVar11 = 1;\n        if ((*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f) & 1) == 0) {\n          iVar11 = 2;\n          if (pppppppbVar18 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        param_1[0xf] = iVar11;\n        goto LAB_00491360;\n      }\n      if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0049179c:\n        iVar11 = param_1[6];\nLAB_004917a0:\n        pppppppbVar12 = (byte *******)(iVar11 + param_1[8]);\n        if ((int)pppppppbVar12 < (int)param_2) {\n          unaff_s8 = param_1 + 4;\n          unaff_s7 = (byte *******)&local_40;\n          do {\n            unaff_s5 = pppppppbVar12;\n            iVar24 = param_1[0xb];\n            local_3c = param_1[4];\n            local_38 = param_1[5];\n            pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1);\n            iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8);\n            unaff_s4 = local_40;\n            if (0xfffffffc < iVar11 - 1U) {\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }\n            pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11);\n          } while ((int)pppppppbVar12 < (int)param_2);\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n          if (unaff_s4 != (byte *******)0xffffffff) goto LAB_00491834;\n        }\n        else {\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n        }\n        pppppppbVar18 = (byte *******)((int)unaff_s6 + -1);\n        iVar11 = FUN_0048efec(param_1,pppppppbVar18,param_3);\n        param_1[0xf] = iVar11;\n      }\n      else {\n        pppppppbVar12 = (byte *******)*param_1;\n        unaff_s4 = (byte *******)((int)pppppppbVar12 + param_1[6]);\n        pppppppbVar18 = (byte *******)((int)unaff_s4 + ((int)pppppppbVar20 - param_1[0x14]));\n        if (pppppppbVar18 <= pppppppbVar12) {\n          pppppppbVar18 = pppppppbVar12;\n        }\n        pppppppbVar12 = (byte *******)((int)unaff_s4 + (int)((int)pppppppbVar20 + -1));\n        unaff_s5 = pppppppbVar20;\n        if (pppppppbVar12 < pppppppbVar18) goto LAB_0049179c;\n        bVar3 = *(byte *)pppppppbVar12;\n        unaff_s7 = pppppppbVar12;\n        while ((bVar3 & 0xc0) == 0x80) {\n          pppppppbVar19 = (byte *******)((int)unaff_s7 + -1);\n          unaff_s7 = pppppppbVar12;\n          if (pppppppbVar19 < pppppppbVar18) goto LAB_0049179c;\n          unaff_s7 = pppppppbVar19;\n          bVar3 = *(byte *)pppppppbVar19;\n        }\n        iVar11 = param_1[0x10];\n        pbVar16 = (byte *)((int)unaff_s4 + (param_1[0xc] - (int)unaff_s7));\n        pppppppbVar18 = unaff_s7;\n        if (iVar11 != 0) {\n          pbVar17 = (byte *)0x6;\n          if ((int)pbVar16 < 7) {\n            pbVar17 = pbVar16;\n          }\n          if ((int)(pbVar17 + -1) < 0) {\n            pppppppbVar18 = appppppbStack_34;\n          }\n          else {\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }\n        }\n        local_3c = 0;\n        local_38 = 0;\n        uVar29 = (*(code *)PTR_mbrtowc_004bf2ec)(&local_40);\n        uVar30 = (int)((int)unaff_s4 + (int)pppppppbVar20) - (int)unaff_s7;\n        if ((uVar29 < uVar30) || (0xfffffffd < uVar29)) goto LAB_0049179c;\n        *(undefined1 *)(param_1 + 4) = 0;\n        *(undefined1 *)((int)param_1 + 0x11) = 0;\n        *(undefined1 *)((int)param_1 + 0x12) = 0;\n        *(undefined1 *)((int)param_1 + 0x13) = 0;\n        *(undefined1 *)(param_1 + 5) = 0;\n        *(undefined1 *)((int)param_1 + 0x15) = 0;\n        *(undefined1 *)((int)param_1 + 0x16) = 0;\n        *(undefined1 *)((int)param_1 + 0x17) = 0;\n        param_1[7] = uVar29 - uVar30;\n        unaff_s4 = local_40;\n        if (local_40 == (byte *******)0xffffffff) {\n          iVar11 = param_1[6];\n          goto LAB_004917a0;\n        }\nLAB_00491834:\n        if (*(char *)((int)param_1 + 0x4e) == '\0') {\nLAB_00491840:\n          iVar11 = 2;\n          if (unaff_s4 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        else {\n          iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          iVar11 = 1;\n          if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }\n        param_1[0xf] = iVar11;\n      }\nLAB_00491854:\n      ppppppbVar22 = (byte ******)param_1[7];\n      if (ppppppbVar22 == (byte ******)0x0) {\nLAB_00491860:\n        iVar11 = param_1[7];\n      }\n      else {\n        iVar11 = 0;\n        if (0 < (int)ppppppbVar22) {\n          do {\n            *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n            iVar11 = iVar11 + 1;\n            ppppppbVar22 = (byte ******)param_1[7];\n          } while (iVar11 < (int)ppppppbVar22);\n        }\n        pppppppbVar18 = (byte *******)0xff;\n        if (*(char *)((int)param_1 + 0x4b) == '\0') goto LAB_00491860;\n        (*(code *)PTR_memset_004bf260)(param_1[1]);\n        iVar11 = param_1[7];\n      }\n      param_1[8] = iVar11;\nLAB_00491360:\n      cVar2 = *(char *)((int)param_1 + 0x4b);\n    }\n    if (cVar2 == '\0') {\n      param_1[1] = (int)((int)pppppppbVar20 + param_1[1]);\n    }\n  }" { (if_statement "if ((int)pppppppbVar20 < param_1[8]) {\n      if (*(char *)(param_1 + 0x13) == '\0') {\n        iVar11 = FUN_0048efec(param_1,(byte *)((int)pppppppbVar20 + -1));\n        param_1[0xf] = iVar11;\n        pppppppbVar18 = (byte *******)((int)pppppppbVar20 * 4);\n        if (param_1[0x14] < 2) {\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        else {\n          ppppppbVar22 = (byte ******)((param_1[7] - (int)pppppppbVar20) * 4);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar18 + param_1[2]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        if (cVar2 == '\0') {\n          iVar11 = param_1[7];\n        }\n        else {\n          ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar11 = param_1[7];\n        }\n        param_1[7] = iVar11 - (int)pppppppbVar20;\n        param_1[8] = param_1[8] - (int)pppppppbVar20;\n        goto LAB_00491360;\n      }\n      unaff_s6 = (byte *******)param_1[7];\n      unaff_s5 = (byte *******)param_1[3];\n      pbVar16 = (byte *)0x0;\n      pppppppbVar18 = unaff_s6;\n      do {\n        unaff_s4 = (byte *******)((int)(pbVar16 + (int)pppppppbVar18) / 2);\n        ppppppbVar6 = unaff_s5[(int)unaff_s4];\n        bVar1 = (int)pbVar16 < (int)unaff_s4;\n        pppppppbVar12 = unaff_s4;\n        if ((int)ppppppbVar6 <= (int)pppppppbVar20) {\n          pbVar16 = (byte *)((int)unaff_s4 + 1);\n          if ((int)pppppppbVar20 <= (int)ppppppbVar6) goto LAB_0049145c;\n          bVar1 = (int)pbVar16 < (int)pppppppbVar18;\n          pppppppbVar12 = pppppppbVar18;\n        }\n        pppppppbVar18 = pppppppbVar12;\n      } while (bVar1);\n      if ((int)ppppppbVar6 < (int)pppppppbVar20) {\n        unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n      }\nLAB_0049145c:\n      pppppppbVar18 = (byte *******)((int)unaff_s4 + -1);\n      iVar11 = FUN_0048efec(param_1);\n      param_1[0xf] = iVar11;\n      if ((((int)unaff_s6 <= (int)pppppppbVar20) || (pppppppbVar20 != unaff_s4)) ||\n         (param_3 = (byte ******)((int)pppppppbVar20 * 4),\n         (byte *******)unaff_s5[(int)unaff_s4] != pppppppbVar20)) {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        if ((0 < (int)unaff_s4) &&\n           ((byte *******)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pppppppbVar20)) {\n          pppppppbVar12 = unaff_s5 + (int)(unaff_s4 + 0x10000000);\n          do {\n            unaff_s4 = (byte *******)((int)unaff_s4 + -1);\n            if (unaff_s4 == (byte *******)0x0) break;\n            pppppppbVar19 = pppppppbVar12 + -2;\n            pppppppbVar12 = pppppppbVar12 + -1;\n          } while ((byte *******)*pppppppbVar19 == pppppppbVar20);\n        }\n        if ((int)unaff_s4 < (int)unaff_s6) {\n          piVar9 = (int *)(param_1[2] + (int)unaff_s4 * 4);\n          iVar11 = *piVar9;\n          while (iVar11 == -1) {\n            unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n            piVar9 = piVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            iVar11 = *piVar9;\n          }\nLAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;\n          ppppppbVar22 = (byte ******)((int)*unaff_s4 - (int)pppppppbVar20);\n          param_1[7] = (int)ppppppbVar22;\n          if (ppppppbVar22 == (byte ******)0x0) goto LAB_00491650;\n          if (0 < (int)ppppppbVar22) {\n            iVar11 = 0;\n            do {\n              *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n              iVar11 = iVar11 + 1;\n              ppppppbVar22 = (byte ******)param_1[7];\n            } while (iVar11 < (int)ppppppbVar22);\n          }\n          pppppppbVar18 = (byte *******)0xff;\n          (*(code *)PTR_memset_004bf260)(param_1[1]);\n          iVar11 = param_1[7];\n        }\n        else {\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          param_1[7] = 0;\nLAB_00491650:\n          iVar11 = param_1[7];\n        }\n        param_1[8] = iVar11;\n        goto LAB_00491360;\n      }\n      (*(code *)PTR_memmove_004bf3a4)\n                (param_1[2],param_1[2] + (int)param_3,((int)unaff_s6 - (int)pppppppbVar20) * 4);\n      ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n      pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n      (*(code *)PTR_memmove_004bf3a4)();\n      iVar11 = param_1[7];\n      param_1[7] = iVar11 - (int)pppppppbVar20;\n      param_1[8] = param_1[8] - (int)pppppppbVar20;\n      if (iVar11 - (int)pppppppbVar20 < 1) goto LAB_00491360;\n      iVar11 = 0;\n      do {\n        *(int *)(param_1[3] + iVar11 * 4) = *(int *)(param_1[3] + (int)param_3) - (int)pppppppbVar20\n        ;\n        iVar11 = iVar11 + 1;\n        param_3 = param_3 + 1;\n      } while (iVar11 < param_1[7]);\n      cVar2 = *(char *)((int)param_1 + 0x4b);\n    }\n    else {\n      unaff_s6 = (byte *******)param_1[7];\n      if (*(char *)(param_1 + 0x13) != '\0') {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n      }\n      param_1[7] = 0;\n      if (param_1[0x14] < 2) {\n        pppppppbVar18 =\n             (byte *******)(uint)*(byte *)((int)pppppppbVar20 + param_1[6] + *param_1 + -1);\n        param_1[8] = 0;\n        if (param_1[0x10] != 0) {\n          pppppppbVar18 = (byte *******)(uint)*(byte *)((int)pppppppbVar18 + param_1[0x10]);\n        }\n        iVar11 = 1;\n        if ((*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f) & 1) == 0) {\n          iVar11 = 2;\n          if (pppppppbVar18 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        param_1[0xf] = iVar11;\n        goto LAB_00491360;\n      }\n      if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0049179c:\n        iVar11 = param_1[6];\nLAB_004917a0:\n        pppppppbVar12 = (byte *******)(iVar11 + param_1[8]);\n        if ((int)pppppppbVar12 < (int)param_2) {\n          unaff_s8 = param_1 + 4;\n          unaff_s7 = (byte *******)&local_40;\n          do {\n            unaff_s5 = pppppppbVar12;\n            iVar24 = param_1[0xb];\n            local_3c = param_1[4];\n            local_38 = param_1[5];\n            pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1);\n            iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8);\n            unaff_s4 = local_40;\n            if (0xfffffffc < iVar11 - 1U) {\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }\n            pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11);\n          } while ((int)pppppppbVar12 < (int)param_2);\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n          if (unaff_s4 != (byte *******)0xffffffff) goto LAB_00491834;\n        }\n        else {\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n        }\n        pppppppbVar18 = (byte *******)((int)unaff_s6 + -1);\n        iVar11 = FUN_0048efec(param_1,pppppppbVar18,param_3);\n        param_1[0xf] = iVar11;\n      }\n      else {\n        pppppppbVar12 = (byte *******)*param_1;\n        unaff_s4 = (byte *******)((int)pppppppbVar12 + param_1[6]);\n        pppppppbVar18 = (byte *******)((int)unaff_s4 + ((int)pppppppbVar20 - param_1[0x14]));\n        if (pppppppbVar18 <= pppppppbVar12) {\n          pppppppbVar18 = pppppppbVar12;\n        }\n        pppppppbVar12 = (byte *******)((int)unaff_s4 + (int)((int)pppppppbVar20 + -1));\n        unaff_s5 = pppppppbVar20;\n        if (pppppppbVar12 < pppppppbVar18) goto LAB_0049179c;\n        bVar3 = *(byte *)pppppppbVar12;\n        unaff_s7 = pppppppbVar12;\n        while ((bVar3 & 0xc0) == 0x80) {\n          pppppppbVar19 = (byte *******)((int)unaff_s7 + -1);\n          unaff_s7 = pppppppbVar12;\n          if (pppppppbVar19 < pppppppbVar18) goto LAB_0049179c;\n          unaff_s7 = pppppppbVar19;\n          bVar3 = *(byte *)pppppppbVar19;\n        }\n        iVar11 = param_1[0x10];\n        pbVar16 = (byte *)((int)unaff_s4 + (param_1[0xc] - (int)unaff_s7));\n        pppppppbVar18 = unaff_s7;\n        if (iVar11 != 0) {\n          pbVar17 = (byte *)0x6;\n          if ((int)pbVar16 < 7) {\n            pbVar17 = pbVar16;\n          }\n          if ((int)(pbVar17 + -1) < 0) {\n            pppppppbVar18 = appppppbStack_34;\n          }\n          else {\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }\n        }\n        local_3c = 0;\n        local_38 = 0;\n        uVar29 = (*(code *)PTR_mbrtowc_004bf2ec)(&local_40);\n        uVar30 = (int)((int)unaff_s4 + (int)pppppppbVar20) - (int)unaff_s7;\n        if ((uVar29 < uVar30) || (0xfffffffd < uVar29)) goto LAB_0049179c;\n        *(undefined1 *)(param_1 + 4) = 0;\n        *(undefined1 *)((int)param_1 + 0x11) = 0;\n        *(undefined1 *)((int)param_1 + 0x12) = 0;\n        *(undefined1 *)((int)param_1 + 0x13) = 0;\n        *(undefined1 *)(param_1 + 5) = 0;\n        *(undefined1 *)((int)param_1 + 0x15) = 0;\n        *(undefined1 *)((int)param_1 + 0x16) = 0;\n        *(undefined1 *)((int)param_1 + 0x17) = 0;\n        param_1[7] = uVar29 - uVar30;\n        unaff_s4 = local_40;\n        if (local_40 == (byte *******)0xffffffff) {\n          iVar11 = param_1[6];\n          goto LAB_004917a0;\n        }\nLAB_00491834:\n        if (*(char *)((int)param_1 + 0x4e) == '\0') {\nLAB_00491840:\n          iVar11 = 2;\n          if (unaff_s4 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        else {\n          iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          iVar11 = 1;\n          if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }\n        param_1[0xf] = iVar11;\n      }\nLAB_00491854:\n      ppppppbVar22 = (byte ******)param_1[7];\n      if (ppppppbVar22 == (byte ******)0x0) {\nLAB_00491860:\n        iVar11 = param_1[7];\n      }\n      else {\n        iVar11 = 0;\n        if (0 < (int)ppppppbVar22) {\n          do {\n            *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n            iVar11 = iVar11 + 1;\n            ppppppbVar22 = (byte ******)param_1[7];\n          } while (iVar11 < (int)ppppppbVar22);\n        }\n        pppppppbVar18 = (byte *******)0xff;\n        if (*(char *)((int)param_1 + 0x4b) == '\0') goto LAB_00491860;\n        (*(code *)PTR_memset_004bf260)(param_1[1]);\n        iVar11 = param_1[7];\n      }\n      param_1[8] = iVar11;\nLAB_00491360:\n      cVar2 = *(char *)((int)param_1 + 0x4b);\n    }" if (parenthesized_expression "((int)pppppppbVar20 < param_1[8])" ( (binary_expression "(int)pppppppbVar20 < param_1[8]" (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier) < (subscript_expression "param_1[8]" identifier [ number_literal ])) )) (compound_statement "{\n      if (*(char *)(param_1 + 0x13) == '\0') {\n        iVar11 = FUN_0048efec(param_1,(byte *)((int)pppppppbVar20 + -1));\n        param_1[0xf] = iVar11;\n        pppppppbVar18 = (byte *******)((int)pppppppbVar20 * 4);\n        if (param_1[0x14] < 2) {\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        else {\n          ppppppbVar22 = (byte ******)((param_1[7] - (int)pppppppbVar20) * 4);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar18 + param_1[2]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        if (cVar2 == '\0') {\n          iVar11 = param_1[7];\n        }\n        else {\n          ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar11 = param_1[7];\n        }\n        param_1[7] = iVar11 - (int)pppppppbVar20;\n        param_1[8] = param_1[8] - (int)pppppppbVar20;\n        goto LAB_00491360;\n      }\n      unaff_s6 = (byte *******)param_1[7];\n      unaff_s5 = (byte *******)param_1[3];\n      pbVar16 = (byte *)0x0;\n      pppppppbVar18 = unaff_s6;\n      do {\n        unaff_s4 = (byte *******)((int)(pbVar16 + (int)pppppppbVar18) / 2);\n        ppppppbVar6 = unaff_s5[(int)unaff_s4];\n        bVar1 = (int)pbVar16 < (int)unaff_s4;\n        pppppppbVar12 = unaff_s4;\n        if ((int)ppppppbVar6 <= (int)pppppppbVar20) {\n          pbVar16 = (byte *)((int)unaff_s4 + 1);\n          if ((int)pppppppbVar20 <= (int)ppppppbVar6) goto LAB_0049145c;\n          bVar1 = (int)pbVar16 < (int)pppppppbVar18;\n          pppppppbVar12 = pppppppbVar18;\n        }\n        pppppppbVar18 = pppppppbVar12;\n      } while (bVar1);\n      if ((int)ppppppbVar6 < (int)pppppppbVar20) {\n        unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n      }\nLAB_0049145c:\n      pppppppbVar18 = (byte *******)((int)unaff_s4 + -1);\n      iVar11 = FUN_0048efec(param_1);\n      param_1[0xf] = iVar11;\n      if ((((int)unaff_s6 <= (int)pppppppbVar20) || (pppppppbVar20 != unaff_s4)) ||\n         (param_3 = (byte ******)((int)pppppppbVar20 * 4),\n         (byte *******)unaff_s5[(int)unaff_s4] != pppppppbVar20)) {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        if ((0 < (int)unaff_s4) &&\n           ((byte *******)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pppppppbVar20)) {\n          pppppppbVar12 = unaff_s5 + (int)(unaff_s4 + 0x10000000);\n          do {\n            unaff_s4 = (byte *******)((int)unaff_s4 + -1);\n            if (unaff_s4 == (byte *******)0x0) break;\n            pppppppbVar19 = pppppppbVar12 + -2;\n            pppppppbVar12 = pppppppbVar12 + -1;\n          } while ((byte *******)*pppppppbVar19 == pppppppbVar20);\n        }\n        if ((int)unaff_s4 < (int)unaff_s6) {\n          piVar9 = (int *)(param_1[2] + (int)unaff_s4 * 4);\n          iVar11 = *piVar9;\n          while (iVar11 == -1) {\n            unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n            piVar9 = piVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            iVar11 = *piVar9;\n          }\nLAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;\n          ppppppbVar22 = (byte ******)((int)*unaff_s4 - (int)pppppppbVar20);\n          param_1[7] = (int)ppppppbVar22;\n          if (ppppppbVar22 == (byte ******)0x0) goto LAB_00491650;\n          if (0 < (int)ppppppbVar22) {\n            iVar11 = 0;\n            do {\n              *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n              iVar11 = iVar11 + 1;\n              ppppppbVar22 = (byte ******)param_1[7];\n            } while (iVar11 < (int)ppppppbVar22);\n          }\n          pppppppbVar18 = (byte *******)0xff;\n          (*(code *)PTR_memset_004bf260)(param_1[1]);\n          iVar11 = param_1[7];\n        }\n        else {\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          param_1[7] = 0;\nLAB_00491650:\n          iVar11 = param_1[7];\n        }\n        param_1[8] = iVar11;\n        goto LAB_00491360;\n      }\n      (*(code *)PTR_memmove_004bf3a4)\n                (param_1[2],param_1[2] + (int)param_3,((int)unaff_s6 - (int)pppppppbVar20) * 4);\n      ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n      pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n      (*(code *)PTR_memmove_004bf3a4)();\n      iVar11 = param_1[7];\n      param_1[7] = iVar11 - (int)pppppppbVar20;\n      param_1[8] = param_1[8] - (int)pppppppbVar20;\n      if (iVar11 - (int)pppppppbVar20 < 1) goto LAB_00491360;\n      iVar11 = 0;\n      do {\n        *(int *)(param_1[3] + iVar11 * 4) = *(int *)(param_1[3] + (int)param_3) - (int)pppppppbVar20\n        ;\n        iVar11 = iVar11 + 1;\n        param_3 = param_3 + 1;\n      } while (iVar11 < param_1[7]);\n      cVar2 = *(char *)((int)param_1 + 0x4b);\n    }" { (if_statement "if (*(char *)(param_1 + 0x13) == '\0') {\n        iVar11 = FUN_0048efec(param_1,(byte *)((int)pppppppbVar20 + -1));\n        param_1[0xf] = iVar11;\n        pppppppbVar18 = (byte *******)((int)pppppppbVar20 * 4);\n        if (param_1[0x14] < 2) {\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        else {\n          ppppppbVar22 = (byte ******)((param_1[7] - (int)pppppppbVar20) * 4);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar18 + param_1[2]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        if (cVar2 == '\0') {\n          iVar11 = param_1[7];\n        }\n        else {\n          ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar11 = param_1[7];\n        }\n        param_1[7] = iVar11 - (int)pppppppbVar20;\n        param_1[8] = param_1[8] - (int)pppppppbVar20;\n        goto LAB_00491360;\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        iVar11 = FUN_0048efec(param_1,(byte *)((int)pppppppbVar20 + -1));\n        param_1[0xf] = iVar11;\n        pppppppbVar18 = (byte *******)((int)pppppppbVar20 * 4);\n        if (param_1[0x14] < 2) {\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        else {\n          ppppppbVar22 = (byte ******)((param_1[7] - (int)pppppppbVar20) * 4);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar18 + param_1[2]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        if (cVar2 == '\0') {\n          iVar11 = param_1[7];\n        }\n        else {\n          ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar11 = param_1[7];\n        }\n        param_1[7] = iVar11 - (int)pppppppbVar20;\n        param_1[8] = param_1[8] - (int)pppppppbVar20;\n        goto LAB_00491360;\n      }" { (expression_statement "iVar11 = FUN_0048efec(param_1,(byte *)((int)pppppppbVar20 + -1));" (assignment_expression "iVar11 = FUN_0048efec(param_1,(byte *)((int)pppppppbVar20 + -1))" identifier = (call_expression "FUN_0048efec(param_1,(byte *)((int)pppppppbVar20 + -1))" identifier (argument_list "(param_1,(byte *)((int)pppppppbVar20 + -1))" ( identifier , (cast_expression "(byte *)((int)pppppppbVar20 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppppbVar20 + -1)" ( (binary_expression "(int)pppppppbVar20 + -1" (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )))) ;) (expression_statement "param_1[0xf] = iVar11;" (assignment_expression "param_1[0xf] = iVar11" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppbVar18 = (byte *******)((int)pppppppbVar20 * 4);" (assignment_expression "pppppppbVar18 = (byte *******)((int)pppppppbVar20 * 4)" identifier = (cast_expression "(byte *******)((int)pppppppbVar20 * 4)" ( (type_descriptor "byte *******" 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)pppppppbVar20 * 4)" ( (binary_expression "(int)pppppppbVar20 * 4" (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (if_statement "if (param_1[0x14] < 2) {\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        else {\n          ppppppbVar22 = (byte ******)((param_1[7] - (int)pppppppbVar20) * 4);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar18 + param_1[2]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }" if (parenthesized_expression "(param_1[0x14] < 2)" ( (binary_expression "param_1[0x14] < 2" (subscript_expression "param_1[0x14]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }" { (expression_statement "cVar2 = *(char *)((int)param_1 + 0x4b);" (assignment_expression "cVar2 = *(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          ppppppbVar22 = (byte ******)((param_1[7] - (int)pppppppbVar20) * 4);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar18 + param_1[2]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }" else (compound_statement "{\n          ppppppbVar22 = (byte ******)((param_1[7] - (int)pppppppbVar20) * 4);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar18 + param_1[2]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }" { (expression_statement "ppppppbVar22 = (byte ******)((param_1[7] - (int)pppppppbVar20) * 4);" (assignment_expression "ppppppbVar22 = (byte ******)((param_1[7] - (int)pppppppbVar20) * 4)" identifier = (cast_expression "(byte ******)((param_1[7] - (int)pppppppbVar20) * 4)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((param_1[7] - (int)pppppppbVar20) * 4)" ( (binary_expression "(param_1[7] - (int)pppppppbVar20) * 4" (parenthesized_expression "(param_1[7] - (int)pppppppbVar20)" ( (binary_expression "param_1[7] - (int)pppppppbVar20" (subscript_expression "param_1[7]" identifier [ number_literal ]) - (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal) )))) ;) (expression_statement "pppppppbVar18 = (byte *******)((int)pppppppbVar18 + param_1[2]);" (assignment_expression "pppppppbVar18 = (byte *******)((int)pppppppbVar18 + param_1[2])" identifier = (cast_expression "(byte *******)((int)pppppppbVar18 + param_1[2])" ( (type_descriptor "byte *******" 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)pppppppbVar18 + param_1[2])" ( (binary_expression "(int)pppppppbVar18 + param_1[2]" (cast_expression "(int)pppppppbVar18" ( (type_descriptor "int" primitive_type) ) identifier) + (subscript_expression "param_1[2]" identifier [ number_literal ])) )))) ;) (expression_statement "(*(code *)PTR_memmove_004bf3a4)();" (call_expression "(*(code *)PTR_memmove_004bf3a4)()" (parenthesized_expression "(*(code *)PTR_memmove_004bf3a4)" ( (pointer_expression "*(code *)PTR_memmove_004bf3a4" * (cast_expression "(code *)PTR_memmove_004bf3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "cVar2 = *(char *)((int)param_1 + 0x4b);" (assignment_expression "cVar2 = *(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 (cVar2 == '\0') {\n          iVar11 = param_1[7];\n        }\n        else {\n          ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar11 = param_1[7];\n        }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          iVar11 = param_1[7];\n        }" { (expression_statement "iVar11 = param_1[7];" (assignment_expression "iVar11 = param_1[7]" identifier = (subscript_expression "param_1[7]" identifier [ number_literal ])) ;) }) (else_clause "else {\n          ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar11 = param_1[7];\n        }" else (compound_statement "{\n          ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar11 = param_1[7];\n        }" { (expression_statement "ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);" (assignment_expression "ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20)" identifier = (cast_expression "(byte ******)(param_1[7] - (int)pppppppbVar20)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(param_1[7] - (int)pppppppbVar20)" ( (binary_expression "param_1[7] - (int)pppppppbVar20" (subscript_expression "param_1[7]" identifier [ number_literal ]) - (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);" (assignment_expression "pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1])" identifier = (cast_expression "(byte *******)((int)pppppppbVar20 + param_1[1])" ( (type_descriptor "byte *******" 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)pppppppbVar20 + param_1[1])" ( (binary_expression "(int)pppppppbVar20 + param_1[1]" (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier) + (subscript_expression "param_1[1]" identifier [ number_literal ])) )))) ;) (expression_statement "(*(code *)PTR_memmove_004bf3a4)();" (call_expression "(*(code *)PTR_memmove_004bf3a4)()" (parenthesized_expression "(*(code *)PTR_memmove_004bf3a4)" ( (pointer_expression "*(code *)PTR_memmove_004bf3a4" * (cast_expression "(code *)PTR_memmove_004bf3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar11 = param_1[7];" (assignment_expression "iVar11 = param_1[7]" identifier = (subscript_expression "param_1[7]" identifier [ number_literal ])) ;) }))) (expression_statement "param_1[7] = iVar11 - (int)pppppppbVar20;" (assignment_expression "param_1[7] = iVar11 - (int)pppppppbVar20" (subscript_expression "param_1[7]" identifier [ number_literal ]) = (binary_expression "iVar11 - (int)pppppppbVar20" identifier - (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "param_1[8] = param_1[8] - (int)pppppppbVar20;" (assignment_expression "param_1[8] = param_1[8] - (int)pppppppbVar20" (subscript_expression "param_1[8]" identifier [ number_literal ]) = (binary_expression "param_1[8] - (int)pppppppbVar20" (subscript_expression "param_1[8]" identifier [ number_literal ]) - (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (goto_statement "goto LAB_00491360;" goto statement_identifier ;) })) (expression_statement "unaff_s6 = (byte *******)param_1[7];" (assignment_expression "unaff_s6 = (byte *******)param_1[7]" identifier = (cast_expression "(byte *******)param_1[7]" ( (type_descriptor "byte *******" 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 "unaff_s5 = (byte *******)param_1[3];" (assignment_expression "unaff_s5 = (byte *******)param_1[3]" identifier = (cast_expression "(byte *******)param_1[3]" ( (type_descriptor "byte *******" 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 "pbVar16 = (byte *)0x0;" (assignment_expression "pbVar16 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pppppppbVar18 = unaff_s6;" (assignment_expression "pppppppbVar18 = unaff_s6" identifier = identifier) ;) (do_statement "do {\n        unaff_s4 = (byte *******)((int)(pbVar16 + (int)pppppppbVar18) / 2);\n        ppppppbVar6 = unaff_s5[(int)unaff_s4];\n        bVar1 = (int)pbVar16 < (int)unaff_s4;\n        pppppppbVar12 = unaff_s4;\n        if ((int)ppppppbVar6 <= (int)pppppppbVar20) {\n          pbVar16 = (byte *)((int)unaff_s4 + 1);\n          if ((int)pppppppbVar20 <= (int)ppppppbVar6) goto LAB_0049145c;\n          bVar1 = (int)pbVar16 < (int)pppppppbVar18;\n          pppppppbVar12 = pppppppbVar18;\n        }\n        pppppppbVar18 = pppppppbVar12;\n      } while (bVar1);" do (compound_statement "{\n        unaff_s4 = (byte *******)((int)(pbVar16 + (int)pppppppbVar18) / 2);\n        ppppppbVar6 = unaff_s5[(int)unaff_s4];\n        bVar1 = (int)pbVar16 < (int)unaff_s4;\n        pppppppbVar12 = unaff_s4;\n        if ((int)ppppppbVar6 <= (int)pppppppbVar20) {\n          pbVar16 = (byte *)((int)unaff_s4 + 1);\n          if ((int)pppppppbVar20 <= (int)ppppppbVar6) goto LAB_0049145c;\n          bVar1 = (int)pbVar16 < (int)pppppppbVar18;\n          pppppppbVar12 = pppppppbVar18;\n        }\n        pppppppbVar18 = pppppppbVar12;\n      }" { (expression_statement "unaff_s4 = (byte *******)((int)(pbVar16 + (int)pppppppbVar18) / 2);" (assignment_expression "unaff_s4 = (byte *******)((int)(pbVar16 + (int)pppppppbVar18) / 2)" identifier = (cast_expression "(byte *******)((int)(pbVar16 + (int)pppppppbVar18) / 2)" ( (type_descriptor "byte *******" 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)(pbVar16 + (int)pppppppbVar18) / 2)" ( (binary_expression "(int)(pbVar16 + (int)pppppppbVar18) / 2" (cast_expression "(int)(pbVar16 + (int)pppppppbVar18)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar16 + (int)pppppppbVar18)" ( (binary_expression "pbVar16 + (int)pppppppbVar18" identifier + (cast_expression "(int)pppppppbVar18" ( (type_descriptor "int" primitive_type) ) identifier)) ))) / number_literal) )))) ;) (expression_statement "ppppppbVar6 = unaff_s5[(int)unaff_s4];" (assignment_expression "ppppppbVar6 = unaff_s5[(int)unaff_s4]" identifier = (subscript_expression "unaff_s5[(int)unaff_s4]" identifier [ (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) ])) ;) (expression_statement "bVar1 = (int)pbVar16 < (int)unaff_s4;" (assignment_expression "bVar1 = (int)pbVar16 < (int)unaff_s4" identifier = (binary_expression "(int)pbVar16 < (int)unaff_s4" (cast_expression "(int)pbVar16" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pppppppbVar12 = unaff_s4;" (assignment_expression "pppppppbVar12 = unaff_s4" identifier = identifier) ;) (if_statement "if ((int)ppppppbVar6 <= (int)pppppppbVar20) {\n          pbVar16 = (byte *)((int)unaff_s4 + 1);\n          if ((int)pppppppbVar20 <= (int)ppppppbVar6) goto LAB_0049145c;\n          bVar1 = (int)pbVar16 < (int)pppppppbVar18;\n          pppppppbVar12 = pppppppbVar18;\n        }" if (parenthesized_expression "((int)ppppppbVar6 <= (int)pppppppbVar20)" ( (binary_expression "(int)ppppppbVar6 <= (int)pppppppbVar20" (cast_expression "(int)ppppppbVar6" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          pbVar16 = (byte *)((int)unaff_s4 + 1);\n          if ((int)pppppppbVar20 <= (int)ppppppbVar6) goto LAB_0049145c;\n          bVar1 = (int)pbVar16 < (int)pppppppbVar18;\n          pppppppbVar12 = pppppppbVar18;\n        }" { (expression_statement "pbVar16 = (byte *)((int)unaff_s4 + 1);" (assignment_expression "pbVar16 = (byte *)((int)unaff_s4 + 1)" identifier = (cast_expression "(byte *)((int)unaff_s4 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 1)" ( (binary_expression "(int)unaff_s4 + 1" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((int)pppppppbVar20 <= (int)ppppppbVar6) goto LAB_0049145c;" if (parenthesized_expression "((int)pppppppbVar20 <= (int)ppppppbVar6)" ( (binary_expression "(int)pppppppbVar20 <= (int)ppppppbVar6" (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)ppppppbVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0049145c;" goto statement_identifier ;)) (expression_statement "bVar1 = (int)pbVar16 < (int)pppppppbVar18;" (assignment_expression "bVar1 = (int)pbVar16 < (int)pppppppbVar18" identifier = (binary_expression "(int)pbVar16 < (int)pppppppbVar18" (cast_expression "(int)pbVar16" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pppppppbVar18" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pppppppbVar12 = pppppppbVar18;" (assignment_expression "pppppppbVar12 = pppppppbVar18" identifier = identifier) ;) })) (expression_statement "pppppppbVar18 = pppppppbVar12;" (assignment_expression "pppppppbVar18 = pppppppbVar12" identifier = identifier) ;) }) while (parenthesized_expression "(bVar1)" ( identifier )) ;) (if_statement "if ((int)ppppppbVar6 < (int)pppppppbVar20) {\n        unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n      }" if (parenthesized_expression "((int)ppppppbVar6 < (int)pppppppbVar20)" ( (binary_expression "(int)ppppppbVar6 < (int)pppppppbVar20" (cast_expression "(int)ppppppbVar6" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n      }" { (expression_statement "unaff_s4 = (byte *******)((int)unaff_s4 + 1);" (assignment_expression "unaff_s4 = (byte *******)((int)unaff_s4 + 1)" identifier = (cast_expression "(byte *******)((int)unaff_s4 + 1)" ( (type_descriptor "byte *******" 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_s4 + 1)" ( (binary_expression "(int)unaff_s4 + 1" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (labeled_statement "LAB_0049145c:\n      pppppppbVar18 = (byte *******)((int)unaff_s4 + -1);" statement_identifier : (expression_statement "pppppppbVar18 = (byte *******)((int)unaff_s4 + -1);" (assignment_expression "pppppppbVar18 = (byte *******)((int)unaff_s4 + -1)" identifier = (cast_expression "(byte *******)((int)unaff_s4 + -1)" ( (type_descriptor "byte *******" 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_s4 + -1)" ( (binary_expression "(int)unaff_s4 + -1" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) (expression_statement "iVar11 = FUN_0048efec(param_1);" (assignment_expression "iVar11 = FUN_0048efec(param_1)" identifier = (call_expression "FUN_0048efec(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "param_1[0xf] = iVar11;" (assignment_expression "param_1[0xf] = iVar11" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((((int)unaff_s6 <= (int)pppppppbVar20) || (pppppppbVar20 != unaff_s4)) ||\n         (param_3 = (byte ******)((int)pppppppbVar20 * 4),\n         (byte *******)unaff_s5[(int)unaff_s4] != pppppppbVar20)) {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        if ((0 < (int)unaff_s4) &&\n           ((byte *******)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pppppppbVar20)) {\n          pppppppbVar12 = unaff_s5 + (int)(unaff_s4 + 0x10000000);\n          do {\n            unaff_s4 = (byte *******)((int)unaff_s4 + -1);\n            if (unaff_s4 == (byte *******)0x0) break;\n            pppppppbVar19 = pppppppbVar12 + -2;\n            pppppppbVar12 = pppppppbVar12 + -1;\n          } while ((byte *******)*pppppppbVar19 == pppppppbVar20);\n        }\n        if ((int)unaff_s4 < (int)unaff_s6) {\n          piVar9 = (int *)(param_1[2] + (int)unaff_s4 * 4);\n          iVar11 = *piVar9;\n          while (iVar11 == -1) {\n            unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n            piVar9 = piVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            iVar11 = *piVar9;\n          }\nLAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;\n          ppppppbVar22 = (byte ******)((int)*unaff_s4 - (int)pppppppbVar20);\n          param_1[7] = (int)ppppppbVar22;\n          if (ppppppbVar22 == (byte ******)0x0) goto LAB_00491650;\n          if (0 < (int)ppppppbVar22) {\n            iVar11 = 0;\n            do {\n              *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n              iVar11 = iVar11 + 1;\n              ppppppbVar22 = (byte ******)param_1[7];\n            } while (iVar11 < (int)ppppppbVar22);\n          }\n          pppppppbVar18 = (byte *******)0xff;\n          (*(code *)PTR_memset_004bf260)(param_1[1]);\n          iVar11 = param_1[7];\n        }\n        else {\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          param_1[7] = 0;\nLAB_00491650:\n          iVar11 = param_1[7];\n        }\n        param_1[8] = iVar11;\n        goto LAB_00491360;\n      }" if (parenthesized_expression "((((int)unaff_s6 <= (int)pppppppbVar20) || (pppppppbVar20 != unaff_s4)) ||\n         (param_3 = (byte ******)((int)pppppppbVar20 * 4),\n         (byte *******)unaff_s5[(int)unaff_s4] != pppppppbVar20))" ( (binary_expression "(((int)unaff_s6 <= (int)pppppppbVar20) || (pppppppbVar20 != unaff_s4)) ||\n         (param_3 = (byte ******)((int)pppppppbVar20 * 4),\n         (byte *******)unaff_s5[(int)unaff_s4] != pppppppbVar20)" (parenthesized_expression "(((int)unaff_s6 <= (int)pppppppbVar20) || (pppppppbVar20 != unaff_s4))" ( (binary_expression "((int)unaff_s6 <= (int)pppppppbVar20) || (pppppppbVar20 != unaff_s4)" (parenthesized_expression "((int)unaff_s6 <= (int)pppppppbVar20)" ( (binary_expression "(int)unaff_s6 <= (int)pppppppbVar20" (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "(pppppppbVar20 != unaff_s4)" ( (binary_expression "pppppppbVar20 != unaff_s4" identifier != identifier) ))) )) || (parenthesized_expression "(param_3 = (byte ******)((int)pppppppbVar20 * 4),\n         (byte *******)unaff_s5[(int)unaff_s4] != pppppppbVar20)" ( (comma_expression "param_3 = (byte ******)((int)pppppppbVar20 * 4),\n         (byte *******)unaff_s5[(int)unaff_s4] != pppppppbVar20" (assignment_expression "param_3 = (byte ******)((int)pppppppbVar20 * 4)" identifier = (cast_expression "(byte ******)((int)pppppppbVar20 * 4)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)pppppppbVar20 * 4)" ( (binary_expression "(int)pppppppbVar20 * 4" (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) , (binary_expression "(byte *******)unaff_s5[(int)unaff_s4] != pppppppbVar20" (cast_expression "(byte *******)unaff_s5[(int)unaff_s4]" ( (type_descriptor "byte *******" 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_s5[(int)unaff_s4]" identifier [ (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) ])) != identifier)) ))) )) (compound_statement "{\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        if ((0 < (int)unaff_s4) &&\n           ((byte *******)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pppppppbVar20)) {\n          pppppppbVar12 = unaff_s5 + (int)(unaff_s4 + 0x10000000);\n          do {\n            unaff_s4 = (byte *******)((int)unaff_s4 + -1);\n            if (unaff_s4 == (byte *******)0x0) break;\n            pppppppbVar19 = pppppppbVar12 + -2;\n            pppppppbVar12 = pppppppbVar12 + -1;\n          } while ((byte *******)*pppppppbVar19 == pppppppbVar20);\n        }\n        if ((int)unaff_s4 < (int)unaff_s6) {\n          piVar9 = (int *)(param_1[2] + (int)unaff_s4 * 4);\n          iVar11 = *piVar9;\n          while (iVar11 == -1) {\n            unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n            piVar9 = piVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            iVar11 = *piVar9;\n          }\nLAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;\n          ppppppbVar22 = (byte ******)((int)*unaff_s4 - (int)pppppppbVar20);\n          param_1[7] = (int)ppppppbVar22;\n          if (ppppppbVar22 == (byte ******)0x0) goto LAB_00491650;\n          if (0 < (int)ppppppbVar22) {\n            iVar11 = 0;\n            do {\n              *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n              iVar11 = iVar11 + 1;\n              ppppppbVar22 = (byte ******)param_1[7];\n            } while (iVar11 < (int)ppppppbVar22);\n          }\n          pppppppbVar18 = (byte *******)0xff;\n          (*(code *)PTR_memset_004bf260)(param_1[1]);\n          iVar11 = param_1[7];\n        }\n        else {\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          param_1[7] = 0;\nLAB_00491650:\n          iVar11 = param_1[7];\n        }\n        param_1[8] = iVar11;\n        goto LAB_00491360;\n      }" { (expression_statement "param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));" (assignment_expression "param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2))" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (cast_expression "(int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)pppppppbVar20 + (param_1[0xb] - (int)param_2))" ( (binary_expression "(int)pppppppbVar20 + (param_1[0xb] - (int)param_2)" (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier) + (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 "param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));" (assignment_expression "param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2))" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = (cast_expression "(int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)pppppppbVar20 + (param_1[0xd] - (int)param_2))" ( (binary_expression "(int)pppppppbVar20 + (param_1[0xd] - (int)param_2)" (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier) + (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)) ))) )))) ;) (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) ;) (if_statement "if ((0 < (int)unaff_s4) &&\n           ((byte *******)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pppppppbVar20)) {\n          pppppppbVar12 = unaff_s5 + (int)(unaff_s4 + 0x10000000);\n          do {\n            unaff_s4 = (byte *******)((int)unaff_s4 + -1);\n            if (unaff_s4 == (byte *******)0x0) break;\n            pppppppbVar19 = pppppppbVar12 + -2;\n            pppppppbVar12 = pppppppbVar12 + -1;\n          } while ((byte *******)*pppppppbVar19 == pppppppbVar20);\n        }" if (parenthesized_expression "((0 < (int)unaff_s4) &&\n           ((byte *******)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pppppppbVar20))" ( (binary_expression "(0 < (int)unaff_s4) &&\n           ((byte *******)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pppppppbVar20)" (parenthesized_expression "(0 < (int)unaff_s4)" ( (binary_expression "0 < (int)unaff_s4" number_literal < (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "((byte *******)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pppppppbVar20)" ( (binary_expression "(byte *******)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pppppppbVar20" (cast_expression "(byte *******)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)]" ( (type_descriptor "byte *******" 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_s5[(int)((int)unaff_s4 + 0x3fffffff)]" identifier [ (cast_expression "(int)((int)unaff_s4 + 0x3fffffff)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)unaff_s4 + 0x3fffffff)" ( (binary_expression "(int)unaff_s4 + 0x3fffffff" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ])) == identifier) ))) )) (compound_statement "{\n          pppppppbVar12 = unaff_s5 + (int)(unaff_s4 + 0x10000000);\n          do {\n            unaff_s4 = (byte *******)((int)unaff_s4 + -1);\n            if (unaff_s4 == (byte *******)0x0) break;\n            pppppppbVar19 = pppppppbVar12 + -2;\n            pppppppbVar12 = pppppppbVar12 + -1;\n          } while ((byte *******)*pppppppbVar19 == pppppppbVar20);\n        }" { (expression_statement "pppppppbVar12 = unaff_s5 + (int)(unaff_s4 + 0x10000000);" (assignment_expression "pppppppbVar12 = unaff_s5 + (int)(unaff_s4 + 0x10000000)" identifier = (binary_expression "unaff_s5 + (int)(unaff_s4 + 0x10000000)" identifier + (cast_expression "(int)(unaff_s4 + 0x10000000)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(unaff_s4 + 0x10000000)" ( (binary_expression "unaff_s4 + 0x10000000" identifier + number_literal) ))))) ;) (do_statement "do {\n            unaff_s4 = (byte *******)((int)unaff_s4 + -1);\n            if (unaff_s4 == (byte *******)0x0) break;\n            pppppppbVar19 = pppppppbVar12 + -2;\n            pppppppbVar12 = pppppppbVar12 + -1;\n          } while ((byte *******)*pppppppbVar19 == pppppppbVar20);" do (compound_statement "{\n            unaff_s4 = (byte *******)((int)unaff_s4 + -1);\n            if (unaff_s4 == (byte *******)0x0) break;\n            pppppppbVar19 = pppppppbVar12 + -2;\n            pppppppbVar12 = pppppppbVar12 + -1;\n          }" { (expression_statement "unaff_s4 = (byte *******)((int)unaff_s4 + -1);" (assignment_expression "unaff_s4 = (byte *******)((int)unaff_s4 + -1)" identifier = (cast_expression "(byte *******)((int)unaff_s4 + -1)" ( (type_descriptor "byte *******" 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_s4 + -1)" ( (binary_expression "(int)unaff_s4 + -1" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (unaff_s4 == (byte *******)0x0) break;" if (parenthesized_expression "(unaff_s4 == (byte *******)0x0)" ( (binary_expression "unaff_s4 == (byte *******)0x0" identifier == (cast_expression "(byte *******)0x0" ( (type_descriptor "byte *******" 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 "pppppppbVar19 = pppppppbVar12 + -2;" (assignment_expression "pppppppbVar19 = pppppppbVar12 + -2" identifier = (binary_expression "pppppppbVar12 + -2" identifier + number_literal)) ;) (expression_statement "pppppppbVar12 = pppppppbVar12 + -1;" (assignment_expression "pppppppbVar12 = pppppppbVar12 + -1" identifier = (binary_expression "pppppppbVar12 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "((byte *******)*pppppppbVar19 == pppppppbVar20)" ( (binary_expression "(byte *******)*pppppppbVar19 == pppppppbVar20" (cast_expression "(byte *******)*pppppppbVar19" ( (type_descriptor "byte *******" 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 "*pppppppbVar19" * identifier)) == identifier) )) ;) })) (if_statement "if ((int)unaff_s4 < (int)unaff_s6) {\n          piVar9 = (int *)(param_1[2] + (int)unaff_s4 * 4);\n          iVar11 = *piVar9;\n          while (iVar11 == -1) {\n            unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n            piVar9 = piVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            iVar11 = *piVar9;\n          }\nLAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;\n          ppppppbVar22 = (byte ******)((int)*unaff_s4 - (int)pppppppbVar20);\n          param_1[7] = (int)ppppppbVar22;\n          if (ppppppbVar22 == (byte ******)0x0) goto LAB_00491650;\n          if (0 < (int)ppppppbVar22) {\n            iVar11 = 0;\n            do {\n              *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n              iVar11 = iVar11 + 1;\n              ppppppbVar22 = (byte ******)param_1[7];\n            } while (iVar11 < (int)ppppppbVar22);\n          }\n          pppppppbVar18 = (byte *******)0xff;\n          (*(code *)PTR_memset_004bf260)(param_1[1]);\n          iVar11 = param_1[7];\n        }\n        else {\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          param_1[7] = 0;\nLAB_00491650:\n          iVar11 = param_1[7];\n        }" if (parenthesized_expression "((int)unaff_s4 < (int)unaff_s6)" ( (binary_expression "(int)unaff_s4 < (int)unaff_s6" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          piVar9 = (int *)(param_1[2] + (int)unaff_s4 * 4);\n          iVar11 = *piVar9;\n          while (iVar11 == -1) {\n            unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n            piVar9 = piVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            iVar11 = *piVar9;\n          }\nLAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;\n          ppppppbVar22 = (byte ******)((int)*unaff_s4 - (int)pppppppbVar20);\n          param_1[7] = (int)ppppppbVar22;\n          if (ppppppbVar22 == (byte ******)0x0) goto LAB_00491650;\n          if (0 < (int)ppppppbVar22) {\n            iVar11 = 0;\n            do {\n              *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n              iVar11 = iVar11 + 1;\n              ppppppbVar22 = (byte ******)param_1[7];\n            } while (iVar11 < (int)ppppppbVar22);\n          }\n          pppppppbVar18 = (byte *******)0xff;\n          (*(code *)PTR_memset_004bf260)(param_1[1]);\n          iVar11 = param_1[7];\n        }" { (expression_statement "piVar9 = (int *)(param_1[2] + (int)unaff_s4 * 4);" (assignment_expression "piVar9 = (int *)(param_1[2] + (int)unaff_s4 * 4)" identifier = (cast_expression "(int *)(param_1[2] + (int)unaff_s4 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[2] + (int)unaff_s4 * 4)" ( (binary_expression "param_1[2] + (int)unaff_s4 * 4" (subscript_expression "param_1[2]" identifier [ number_literal ]) + (binary_expression "(int)unaff_s4 * 4" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (expression_statement "iVar11 = *piVar9;" (assignment_expression "iVar11 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (while_statement "while (iVar11 == -1) {\n            unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n            piVar9 = piVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            iVar11 = *piVar9;\n          }" while (parenthesized_expression "(iVar11 == -1)" ( (binary_expression "iVar11 == -1" identifier == number_literal) )) (compound_statement "{\n            unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n            piVar9 = piVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            iVar11 = *piVar9;\n          }" { (expression_statement "unaff_s4 = (byte *******)((int)unaff_s4 + 1);" (assignment_expression "unaff_s4 = (byte *******)((int)unaff_s4 + 1)" identifier = (cast_expression "(byte *******)((int)unaff_s4 + 1)" ( (type_descriptor "byte *******" 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_s4 + 1)" ( (binary_expression "(int)unaff_s4 + 1" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar9 = piVar9 + 1;" (assignment_expression "piVar9 = piVar9 + 1" identifier = (binary_expression "piVar9 + 1" identifier + number_literal)) ;) (if_statement "if (unaff_s6 == unaff_s4) goto LAB_0049164c;" if (parenthesized_expression "(unaff_s6 == unaff_s4)" ( (binary_expression "unaff_s6 == unaff_s4" identifier == identifier) )) (goto_statement "goto LAB_0049164c;" goto statement_identifier ;)) (expression_statement "iVar11 = *piVar9;" (assignment_expression "iVar11 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) })) (labeled_statement "LAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;" statement_identifier : (expression_statement "unaff_s4 = unaff_s5 + (int)unaff_s4;" (assignment_expression "unaff_s4 = unaff_s5 + (int)unaff_s4" identifier = (binary_expression "unaff_s5 + (int)unaff_s4" identifier + (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (expression_statement "ppppppbVar22 = (byte ******)((int)*unaff_s4 - (int)pppppppbVar20);" (assignment_expression "ppppppbVar22 = (byte ******)((int)*unaff_s4 - (int)pppppppbVar20)" identifier = (cast_expression "(byte ******)((int)*unaff_s4 - (int)pppppppbVar20)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)*unaff_s4 - (int)pppppppbVar20)" ( (binary_expression "(int)*unaff_s4 - (int)pppppppbVar20" (cast_expression "(int)*unaff_s4" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*unaff_s4" * identifier)) - (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "param_1[7] = (int)ppppppbVar22;" (assignment_expression "param_1[7] = (int)ppppppbVar22" (subscript_expression "param_1[7]" identifier [ number_literal ]) = (cast_expression "(int)ppppppbVar22" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (ppppppbVar22 == (byte ******)0x0) goto LAB_00491650;" if (parenthesized_expression "(ppppppbVar22 == (byte ******)0x0)" ( (binary_expression "ppppppbVar22 == (byte ******)0x0" identifier == (cast_expression "(byte ******)0x0" ( (type_descriptor "byte ******" 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_00491650;" goto statement_identifier ;)) (if_statement "if (0 < (int)ppppppbVar22) {\n            iVar11 = 0;\n            do {\n              *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n              iVar11 = iVar11 + 1;\n              ppppppbVar22 = (byte ******)param_1[7];\n            } while (iVar11 < (int)ppppppbVar22);\n          }" if (parenthesized_expression "(0 < (int)ppppppbVar22)" ( (binary_expression "0 < (int)ppppppbVar22" number_literal < (cast_expression "(int)ppppppbVar22" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            iVar11 = 0;\n            do {\n              *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n              iVar11 = iVar11 + 1;\n              ppppppbVar22 = (byte ******)param_1[7];\n            } while (iVar11 < (int)ppppppbVar22);\n          }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n              *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n              iVar11 = iVar11 + 1;\n              ppppppbVar22 = (byte ******)param_1[7];\n            } while (iVar11 < (int)ppppppbVar22);" do (compound_statement "{\n              *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n              iVar11 = iVar11 + 1;\n              ppppppbVar22 = (byte ******)param_1[7];\n            }" { (expression_statement "*(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;" (assignment_expression "*(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff" (pointer_expression "*(undefined4 *)(param_1[2] + iVar11 * 4)" * (cast_expression "(undefined4 *)(param_1[2] + iVar11 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[2] + iVar11 * 4)" ( (binary_expression "param_1[2] + iVar11 * 4" (subscript_expression "param_1[2]" identifier [ number_literal ]) + (binary_expression "iVar11 * 4" identifier * number_literal)) )))) = number_literal) ;) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (expression_statement "ppppppbVar22 = (byte ******)param_1[7];" (assignment_expression "ppppppbVar22 = (byte ******)param_1[7]" identifier = (cast_expression "(byte ******)param_1[7]" ( (type_descriptor "byte ******" type_identifier (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 ]))) ;) }) while (parenthesized_expression "(iVar11 < (int)ppppppbVar22)" ( (binary_expression "iVar11 < (int)ppppppbVar22" identifier < (cast_expression "(int)ppppppbVar22" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "pppppppbVar18 = (byte *******)0xff;" (assignment_expression "pppppppbVar18 = (byte *******)0xff" identifier = (cast_expression "(byte *******)0xff" ( (type_descriptor "byte *******" 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 "(*(code *)PTR_memset_004bf260)(param_1[1]);" (call_expression "(*(code *)PTR_memset_004bf260)(param_1[1])" (parenthesized_expression "(*(code *)PTR_memset_004bf260)" ( (pointer_expression "*(code *)PTR_memset_004bf260" * (cast_expression "(code *)PTR_memset_004bf260" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1[1])" ( (subscript_expression "param_1[1]" identifier [ number_literal ]) ))) ;) (expression_statement "iVar11 = param_1[7];" (assignment_expression "iVar11 = param_1[7]" identifier = (subscript_expression "param_1[7]" identifier [ number_literal ])) ;) }) (else_clause "else {\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          param_1[7] = 0;\nLAB_00491650:\n          iVar11 = param_1[7];\n        }" else (compound_statement "{\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          param_1[7] = 0;\nLAB_00491650:\n          iVar11 = param_1[7];\n        }" { (if_statement "if (unaff_s4 != unaff_s6) goto LAB_00491534;" if (parenthesized_expression "(unaff_s4 != unaff_s6)" ( (binary_expression "unaff_s4 != unaff_s6" identifier != identifier) )) (goto_statement "goto LAB_00491534;" goto statement_identifier ;)) (labeled_statement "LAB_0049164c:\n          param_1[7] = 0;" statement_identifier : (expression_statement "param_1[7] = 0;" (assignment_expression "param_1[7] = 0" (subscript_expression "param_1[7]" identifier [ number_literal ]) = number_literal) ;)) (labeled_statement "LAB_00491650:\n          iVar11 = param_1[7];" statement_identifier : (expression_statement "iVar11 = param_1[7];" (assignment_expression "iVar11 = param_1[7]" identifier = (subscript_expression "param_1[7]" identifier [ number_literal ])) ;)) }))) (expression_statement "param_1[8] = iVar11;" (assignment_expression "param_1[8] = iVar11" (subscript_expression "param_1[8]" identifier [ number_literal ]) = identifier) ;) (goto_statement "goto LAB_00491360;" goto statement_identifier ;) })) (expression_statement "(*(code *)PTR_memmove_004bf3a4)\n                (param_1[2],param_1[2] + (int)param_3,((int)unaff_s6 - (int)pppppppbVar20) * 4);" (call_expression "(*(code *)PTR_memmove_004bf3a4)\n                (param_1[2],param_1[2] + (int)param_3,((int)unaff_s6 - (int)pppppppbVar20) * 4)" (parenthesized_expression "(*(code *)PTR_memmove_004bf3a4)" ( (pointer_expression "*(code *)PTR_memmove_004bf3a4" * (cast_expression "(code *)PTR_memmove_004bf3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1[2],param_1[2] + (int)param_3,((int)unaff_s6 - (int)pppppppbVar20) * 4)" ( (subscript_expression "param_1[2]" identifier [ number_literal ]) , (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_s6 - (int)pppppppbVar20) * 4" (parenthesized_expression "((int)unaff_s6 - (int)pppppppbVar20)" ( (binary_expression "(int)unaff_s6 - (int)pppppppbVar20" (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal) ))) ;) (expression_statement "ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);" (assignment_expression "ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20)" identifier = (cast_expression "(byte ******)(param_1[7] - (int)pppppppbVar20)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(param_1[7] - (int)pppppppbVar20)" ( (binary_expression "param_1[7] - (int)pppppppbVar20" (subscript_expression "param_1[7]" identifier [ number_literal ]) - (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);" (assignment_expression "pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1])" identifier = (cast_expression "(byte *******)((int)pppppppbVar20 + param_1[1])" ( (type_descriptor "byte *******" 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)pppppppbVar20 + param_1[1])" ( (binary_expression "(int)pppppppbVar20 + param_1[1]" (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier) + (subscript_expression "param_1[1]" identifier [ number_literal ])) )))) ;) (expression_statement "(*(code *)PTR_memmove_004bf3a4)();" (call_expression "(*(code *)PTR_memmove_004bf3a4)()" (parenthesized_expression "(*(code *)PTR_memmove_004bf3a4)" ( (pointer_expression "*(code *)PTR_memmove_004bf3a4" * (cast_expression "(code *)PTR_memmove_004bf3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar11 = param_1[7];" (assignment_expression "iVar11 = param_1[7]" identifier = (subscript_expression "param_1[7]" identifier [ number_literal ])) ;) (expression_statement "param_1[7] = iVar11 - (int)pppppppbVar20;" (assignment_expression "param_1[7] = iVar11 - (int)pppppppbVar20" (subscript_expression "param_1[7]" identifier [ number_literal ]) = (binary_expression "iVar11 - (int)pppppppbVar20" identifier - (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "param_1[8] = param_1[8] - (int)pppppppbVar20;" (assignment_expression "param_1[8] = param_1[8] - (int)pppppppbVar20" (subscript_expression "param_1[8]" identifier [ number_literal ]) = (binary_expression "param_1[8] - (int)pppppppbVar20" (subscript_expression "param_1[8]" identifier [ number_literal ]) - (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (iVar11 - (int)pppppppbVar20 < 1) goto LAB_00491360;" if (parenthesized_expression "(iVar11 - (int)pppppppbVar20 < 1)" ( (binary_expression "iVar11 - (int)pppppppbVar20 < 1" (binary_expression "iVar11 - (int)pppppppbVar20" identifier - (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier)) < number_literal) )) (goto_statement "goto LAB_00491360;" goto statement_identifier ;)) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n        *(int *)(param_1[3] + iVar11 * 4) = *(int *)(param_1[3] + (int)param_3) - (int)pppppppbVar20\n        ;\n        iVar11 = iVar11 + 1;\n        param_3 = param_3 + 1;\n      } while (iVar11 < param_1[7]);" do (compound_statement "{\n        *(int *)(param_1[3] + iVar11 * 4) = *(int *)(param_1[3] + (int)param_3) - (int)pppppppbVar20\n        ;\n        iVar11 = iVar11 + 1;\n        param_3 = param_3 + 1;\n      }" { (expression_statement "*(int *)(param_1[3] + iVar11 * 4) = *(int *)(param_1[3] + (int)param_3) - (int)pppppppbVar20\n        ;" (assignment_expression "*(int *)(param_1[3] + iVar11 * 4) = *(int *)(param_1[3] + (int)param_3) - (int)pppppppbVar20" (pointer_expression "*(int *)(param_1[3] + iVar11 * 4)" * (cast_expression "(int *)(param_1[3] + iVar11 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[3] + iVar11 * 4)" ( (binary_expression "param_1[3] + iVar11 * 4" (subscript_expression "param_1[3]" identifier [ number_literal ]) + (binary_expression "iVar11 * 4" identifier * number_literal)) )))) = (binary_expression "*(int *)(param_1[3] + (int)param_3) - (int)pppppppbVar20" (pointer_expression "*(int *)(param_1[3] + (int)param_3)" * (cast_expression "(int *)(param_1[3] + (int)param_3)" ( (type_descriptor "int *" primitive_type (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)) )))) - (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (expression_statement "param_3 = param_3 + 1;" (assignment_expression "param_3 = param_3 + 1" identifier = (binary_expression "param_3 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar11 < param_1[7])" ( (binary_expression "iVar11 < param_1[7]" identifier < (subscript_expression "param_1[7]" identifier [ number_literal ])) )) ;) (expression_statement "cVar2 = *(char *)((int)param_1 + 0x4b);" (assignment_expression "cVar2 = *(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      unaff_s6 = (byte *******)param_1[7];\n      if (*(char *)(param_1 + 0x13) != '\0') {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n      }\n      param_1[7] = 0;\n      if (param_1[0x14] < 2) {\n        pppppppbVar18 =\n             (byte *******)(uint)*(byte *)((int)pppppppbVar20 + param_1[6] + *param_1 + -1);\n        param_1[8] = 0;\n        if (param_1[0x10] != 0) {\n          pppppppbVar18 = (byte *******)(uint)*(byte *)((int)pppppppbVar18 + param_1[0x10]);\n        }\n        iVar11 = 1;\n        if ((*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f) & 1) == 0) {\n          iVar11 = 2;\n          if (pppppppbVar18 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        param_1[0xf] = iVar11;\n        goto LAB_00491360;\n      }\n      if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0049179c:\n        iVar11 = param_1[6];\nLAB_004917a0:\n        pppppppbVar12 = (byte *******)(iVar11 + param_1[8]);\n        if ((int)pppppppbVar12 < (int)param_2) {\n          unaff_s8 = param_1 + 4;\n          unaff_s7 = (byte *******)&local_40;\n          do {\n            unaff_s5 = pppppppbVar12;\n            iVar24 = param_1[0xb];\n            local_3c = param_1[4];\n            local_38 = param_1[5];\n            pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1);\n            iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8);\n            unaff_s4 = local_40;\n            if (0xfffffffc < iVar11 - 1U) {\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }\n            pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11);\n          } while ((int)pppppppbVar12 < (int)param_2);\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n          if (unaff_s4 != (byte *******)0xffffffff) goto LAB_00491834;\n        }\n        else {\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n        }\n        pppppppbVar18 = (byte *******)((int)unaff_s6 + -1);\n        iVar11 = FUN_0048efec(param_1,pppppppbVar18,param_3);\n        param_1[0xf] = iVar11;\n      }\n      else {\n        pppppppbVar12 = (byte *******)*param_1;\n        unaff_s4 = (byte *******)((int)pppppppbVar12 + param_1[6]);\n        pppppppbVar18 = (byte *******)((int)unaff_s4 + ((int)pppppppbVar20 - param_1[0x14]));\n        if (pppppppbVar18 <= pppppppbVar12) {\n          pppppppbVar18 = pppppppbVar12;\n        }\n        pppppppbVar12 = (byte *******)((int)unaff_s4 + (int)((int)pppppppbVar20 + -1));\n        unaff_s5 = pppppppbVar20;\n        if (pppppppbVar12 < pppppppbVar18) goto LAB_0049179c;\n        bVar3 = *(byte *)pppppppbVar12;\n        unaff_s7 = pppppppbVar12;\n        while ((bVar3 & 0xc0) == 0x80) {\n          pppppppbVar19 = (byte *******)((int)unaff_s7 + -1);\n          unaff_s7 = pppppppbVar12;\n          if (pppppppbVar19 < pppppppbVar18) goto LAB_0049179c;\n          unaff_s7 = pppppppbVar19;\n          bVar3 = *(byte *)pppppppbVar19;\n        }\n        iVar11 = param_1[0x10];\n        pbVar16 = (byte *)((int)unaff_s4 + (param_1[0xc] - (int)unaff_s7));\n        pppppppbVar18 = unaff_s7;\n        if (iVar11 != 0) {\n          pbVar17 = (byte *)0x6;\n          if ((int)pbVar16 < 7) {\n            pbVar17 = pbVar16;\n          }\n          if ((int)(pbVar17 + -1) < 0) {\n            pppppppbVar18 = appppppbStack_34;\n          }\n          else {\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }\n        }\n        local_3c = 0;\n        local_38 = 0;\n        uVar29 = (*(code *)PTR_mbrtowc_004bf2ec)(&local_40);\n        uVar30 = (int)((int)unaff_s4 + (int)pppppppbVar20) - (int)unaff_s7;\n        if ((uVar29 < uVar30) || (0xfffffffd < uVar29)) goto LAB_0049179c;\n        *(undefined1 *)(param_1 + 4) = 0;\n        *(undefined1 *)((int)param_1 + 0x11) = 0;\n        *(undefined1 *)((int)param_1 + 0x12) = 0;\n        *(undefined1 *)((int)param_1 + 0x13) = 0;\n        *(undefined1 *)(param_1 + 5) = 0;\n        *(undefined1 *)((int)param_1 + 0x15) = 0;\n        *(undefined1 *)((int)param_1 + 0x16) = 0;\n        *(undefined1 *)((int)param_1 + 0x17) = 0;\n        param_1[7] = uVar29 - uVar30;\n        unaff_s4 = local_40;\n        if (local_40 == (byte *******)0xffffffff) {\n          iVar11 = param_1[6];\n          goto LAB_004917a0;\n        }\nLAB_00491834:\n        if (*(char *)((int)param_1 + 0x4e) == '\0') {\nLAB_00491840:\n          iVar11 = 2;\n          if (unaff_s4 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        else {\n          iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          iVar11 = 1;\n          if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }\n        param_1[0xf] = iVar11;\n      }\nLAB_00491854:\n      ppppppbVar22 = (byte ******)param_1[7];\n      if (ppppppbVar22 == (byte ******)0x0) {\nLAB_00491860:\n        iVar11 = param_1[7];\n      }\n      else {\n        iVar11 = 0;\n        if (0 < (int)ppppppbVar22) {\n          do {\n            *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n            iVar11 = iVar11 + 1;\n            ppppppbVar22 = (byte ******)param_1[7];\n          } while (iVar11 < (int)ppppppbVar22);\n        }\n        pppppppbVar18 = (byte *******)0xff;\n        if (*(char *)((int)param_1 + 0x4b) == '\0') goto LAB_00491860;\n        (*(code *)PTR_memset_004bf260)(param_1[1]);\n        iVar11 = param_1[7];\n      }\n      param_1[8] = iVar11;\nLAB_00491360:\n      cVar2 = *(char *)((int)param_1 + 0x4b);\n    }" else (compound_statement "{\n      unaff_s6 = (byte *******)param_1[7];\n      if (*(char *)(param_1 + 0x13) != '\0') {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n      }\n      param_1[7] = 0;\n      if (param_1[0x14] < 2) {\n        pppppppbVar18 =\n             (byte *******)(uint)*(byte *)((int)pppppppbVar20 + param_1[6] + *param_1 + -1);\n        param_1[8] = 0;\n        if (param_1[0x10] != 0) {\n          pppppppbVar18 = (byte *******)(uint)*(byte *)((int)pppppppbVar18 + param_1[0x10]);\n        }\n        iVar11 = 1;\n        if ((*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f) & 1) == 0) {\n          iVar11 = 2;\n          if (pppppppbVar18 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        param_1[0xf] = iVar11;\n        goto LAB_00491360;\n      }\n      if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0049179c:\n        iVar11 = param_1[6];\nLAB_004917a0:\n        pppppppbVar12 = (byte *******)(iVar11 + param_1[8]);\n        if ((int)pppppppbVar12 < (int)param_2) {\n          unaff_s8 = param_1 + 4;\n          unaff_s7 = (byte *******)&local_40;\n          do {\n            unaff_s5 = pppppppbVar12;\n            iVar24 = param_1[0xb];\n            local_3c = param_1[4];\n            local_38 = param_1[5];\n            pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1);\n            iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8);\n            unaff_s4 = local_40;\n            if (0xfffffffc < iVar11 - 1U) {\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }\n            pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11);\n          } while ((int)pppppppbVar12 < (int)param_2);\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n          if (unaff_s4 != (byte *******)0xffffffff) goto LAB_00491834;\n        }\n        else {\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n        }\n        pppppppbVar18 = (byte *******)((int)unaff_s6 + -1);\n        iVar11 = FUN_0048efec(param_1,pppppppbVar18,param_3);\n        param_1[0xf] = iVar11;\n      }\n      else {\n        pppppppbVar12 = (byte *******)*param_1;\n        unaff_s4 = (byte *******)((int)pppppppbVar12 + param_1[6]);\n        pppppppbVar18 = (byte *******)((int)unaff_s4 + ((int)pppppppbVar20 - param_1[0x14]));\n        if (pppppppbVar18 <= pppppppbVar12) {\n          pppppppbVar18 = pppppppbVar12;\n        }\n        pppppppbVar12 = (byte *******)((int)unaff_s4 + (int)((int)pppppppbVar20 + -1));\n        unaff_s5 = pppppppbVar20;\n        if (pppppppbVar12 < pppppppbVar18) goto LAB_0049179c;\n        bVar3 = *(byte *)pppppppbVar12;\n        unaff_s7 = pppppppbVar12;\n        while ((bVar3 & 0xc0) == 0x80) {\n          pppppppbVar19 = (byte *******)((int)unaff_s7 + -1);\n          unaff_s7 = pppppppbVar12;\n          if (pppppppbVar19 < pppppppbVar18) goto LAB_0049179c;\n          unaff_s7 = pppppppbVar19;\n          bVar3 = *(byte *)pppppppbVar19;\n        }\n        iVar11 = param_1[0x10];\n        pbVar16 = (byte *)((int)unaff_s4 + (param_1[0xc] - (int)unaff_s7));\n        pppppppbVar18 = unaff_s7;\n        if (iVar11 != 0) {\n          pbVar17 = (byte *)0x6;\n          if ((int)pbVar16 < 7) {\n            pbVar17 = pbVar16;\n          }\n          if ((int)(pbVar17 + -1) < 0) {\n            pppppppbVar18 = appppppbStack_34;\n          }\n          else {\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }\n        }\n        local_3c = 0;\n        local_38 = 0;\n        uVar29 = (*(code *)PTR_mbrtowc_004bf2ec)(&local_40);\n        uVar30 = (int)((int)unaff_s4 + (int)pppppppbVar20) - (int)unaff_s7;\n        if ((uVar29 < uVar30) || (0xfffffffd < uVar29)) goto LAB_0049179c;\n        *(undefined1 *)(param_1 + 4) = 0;\n        *(undefined1 *)((int)param_1 + 0x11) = 0;\n        *(undefined1 *)((int)param_1 + 0x12) = 0;\n        *(undefined1 *)((int)param_1 + 0x13) = 0;\n        *(undefined1 *)(param_1 + 5) = 0;\n        *(undefined1 *)((int)param_1 + 0x15) = 0;\n        *(undefined1 *)((int)param_1 + 0x16) = 0;\n        *(undefined1 *)((int)param_1 + 0x17) = 0;\n        param_1[7] = uVar29 - uVar30;\n        unaff_s4 = local_40;\n        if (local_40 == (byte *******)0xffffffff) {\n          iVar11 = param_1[6];\n          goto LAB_004917a0;\n        }\nLAB_00491834:\n        if (*(char *)((int)param_1 + 0x4e) == '\0') {\nLAB_00491840:\n          iVar11 = 2;\n          if (unaff_s4 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        else {\n          iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          iVar11 = 1;\n          if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }\n        param_1[0xf] = iVar11;\n      }\nLAB_00491854:\n      ppppppbVar22 = (byte ******)param_1[7];\n      if (ppppppbVar22 == (byte ******)0x0) {\nLAB_00491860:\n        iVar11 = param_1[7];\n      }\n      else {\n        iVar11 = 0;\n        if (0 < (int)ppppppbVar22) {\n          do {\n            *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n            iVar11 = iVar11 + 1;\n            ppppppbVar22 = (byte ******)param_1[7];\n          } while (iVar11 < (int)ppppppbVar22);\n        }\n        pppppppbVar18 = (byte *******)0xff;\n        if (*(char *)((int)param_1 + 0x4b) == '\0') goto LAB_00491860;\n        (*(code *)PTR_memset_004bf260)(param_1[1]);\n        iVar11 = param_1[7];\n      }\n      param_1[8] = iVar11;\nLAB_00491360:\n      cVar2 = *(char *)((int)param_1 + 0x4b);\n    }" { (expression_statement "unaff_s6 = (byte *******)param_1[7];" (assignment_expression "unaff_s6 = (byte *******)param_1[7]" identifier = (cast_expression "(byte *******)param_1[7]" ( (type_descriptor "byte *******" 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 (*(char *)(param_1 + 0x13) != '\0') {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\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        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n      }" { (expression_statement "param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));" (assignment_expression "param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2))" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (cast_expression "(int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)pppppppbVar20 + (param_1[0xb] - (int)param_2))" ( (binary_expression "(int)pppppppbVar20 + (param_1[0xb] - (int)param_2)" (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier) + (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 "param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));" (assignment_expression "param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2))" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = (cast_expression "(int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)pppppppbVar20 + (param_1[0xd] - (int)param_2))" ( (binary_expression "(int)pppppppbVar20 + (param_1[0xd] - (int)param_2)" (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier) + (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)) ))) )))) ;) (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[7] = 0;" (assignment_expression "param_1[7] = 0" (subscript_expression "param_1[7]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (param_1[0x14] < 2) {\n        pppppppbVar18 =\n             (byte *******)(uint)*(byte *)((int)pppppppbVar20 + param_1[6] + *param_1 + -1);\n        param_1[8] = 0;\n        if (param_1[0x10] != 0) {\n          pppppppbVar18 = (byte *******)(uint)*(byte *)((int)pppppppbVar18 + param_1[0x10]);\n        }\n        iVar11 = 1;\n        if ((*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f) & 1) == 0) {\n          iVar11 = 2;\n          if (pppppppbVar18 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        param_1[0xf] = iVar11;\n        goto LAB_00491360;\n      }" if (parenthesized_expression "(param_1[0x14] < 2)" ( (binary_expression "param_1[0x14] < 2" (subscript_expression "param_1[0x14]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n        pppppppbVar18 =\n             (byte *******)(uint)*(byte *)((int)pppppppbVar20 + param_1[6] + *param_1 + -1);\n        param_1[8] = 0;\n        if (param_1[0x10] != 0) {\n          pppppppbVar18 = (byte *******)(uint)*(byte *)((int)pppppppbVar18 + param_1[0x10]);\n        }\n        iVar11 = 1;\n        if ((*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f) & 1) == 0) {\n          iVar11 = 2;\n          if (pppppppbVar18 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        param_1[0xf] = iVar11;\n        goto LAB_00491360;\n      }" { (expression_statement "pppppppbVar18 =\n             (byte *******)(uint)*(byte *)((int)pppppppbVar20 + param_1[6] + *param_1 + -1);" (assignment_expression "pppppppbVar18 =\n             (byte *******)(uint)*(byte *)((int)pppppppbVar20 + param_1[6] + *param_1 + -1)" identifier = (binary_expression "(byte *******)(uint)*(byte *)((int)pppppppbVar20 + param_1[6] + *param_1 + -1)" (cast_expression "(byte *******)(uint)" ( (type_descriptor "byte *******" 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)" ( identifier ))) * (cast_expression "(byte *)((int)pppppppbVar20 + param_1[6] + *param_1 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppppbVar20 + param_1[6] + *param_1 + -1)" ( (binary_expression "(int)pppppppbVar20 + param_1[6] + *param_1 + -1" (binary_expression "(int)pppppppbVar20 + param_1[6] + *param_1" (binary_expression "(int)pppppppbVar20 + param_1[6]" (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier) + (subscript_expression "param_1[6]" identifier [ number_literal ])) + (pointer_expression "*param_1" * 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          pppppppbVar18 = (byte *******)(uint)*(byte *)((int)pppppppbVar18 + param_1[0x10]);\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          pppppppbVar18 = (byte *******)(uint)*(byte *)((int)pppppppbVar18 + param_1[0x10]);\n        }" { (expression_statement "pppppppbVar18 = (byte *******)(uint)*(byte *)((int)pppppppbVar18 + param_1[0x10]);" (assignment_expression "pppppppbVar18 = (byte *******)(uint)*(byte *)((int)pppppppbVar18 + param_1[0x10])" identifier = (binary_expression "(byte *******)(uint)*(byte *)((int)pppppppbVar18 + param_1[0x10])" (cast_expression "(byte *******)(uint)" ( (type_descriptor "byte *******" 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)" ( identifier ))) * (cast_expression "(byte *)((int)pppppppbVar18 + param_1[0x10])" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppppbVar18 + param_1[0x10])" ( (binary_expression "(int)pppppppbVar18 + param_1[0x10]" (cast_expression "(int)pppppppbVar18" ( (type_descriptor "int" primitive_type) ) identifier) + (subscript_expression "param_1[0x10]" identifier [ number_literal ])) ))))) ;) })) (expression_statement "iVar11 = 1;" (assignment_expression "iVar11 = 1" identifier = number_literal) ;) (if_statement "if ((*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f) & 1) == 0) {\n          iVar11 = 2;\n          if (pppppppbVar18 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }" if (parenthesized_expression "((*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f) & 1) == 0)" ( (binary_expression "(*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f) & 1) == 0" (parenthesized_expression "(*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f) & 1)" ( (binary_expression "*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f) & 1" (binary_expression "*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f)" (pointer_expression "*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4)" * (cast_expression "(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4)" ( (binary_expression "param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4" (subscript_expression "param_1[0x11]" identifier [ number_literal ]) + (binary_expression "((int)pppppppbVar18 >> 5) * 4" (parenthesized_expression "((int)pppppppbVar18 >> 5)" ( (binary_expression "(int)pppppppbVar18 >> 5" (cast_expression "(int)pppppppbVar18" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) * number_literal)) )))) >> (parenthesized_expression "((uint)pppppppbVar18 & 0x1f)" ( (binary_expression "(uint)pppppppbVar18 & 0x1f" (cast_expression "(uint)pppppppbVar18" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) & number_literal) )) == number_literal) )) (compound_statement "{\n          iVar11 = 2;\n          if (pppppppbVar18 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }" { (expression_statement "iVar11 = 2;" (assignment_expression "iVar11 = 2" identifier = number_literal) ;) (if_statement "if (pppppppbVar18 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }" if (parenthesized_expression "(pppppppbVar18 == (byte *******)&DAT_0000000a)" ( (binary_expression "pppppppbVar18 == (byte *******)&DAT_0000000a" identifier == (cast_expression "(byte *******)&DAT_0000000a" ( (type_descriptor "byte *******" 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 "&DAT_0000000a" & identifier))) )) (compound_statement "{\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }" { (if_statement "if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 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              iVar11 = 0;\n            }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) })) }) (else_clause "else {\n            iVar11 = 0;\n          }" else (compound_statement "{\n            iVar11 = 0;\n          }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) }))) })) (expression_statement "param_1[0xf] = iVar11;" (assignment_expression "param_1[0xf] = iVar11" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = identifier) ;) (goto_statement "goto LAB_00491360;" goto statement_identifier ;) })) (if_statement "if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0049179c:\n        iVar11 = param_1[6];\nLAB_004917a0:\n        pppppppbVar12 = (byte *******)(iVar11 + param_1[8]);\n        if ((int)pppppppbVar12 < (int)param_2) {\n          unaff_s8 = param_1 + 4;\n          unaff_s7 = (byte *******)&local_40;\n          do {\n            unaff_s5 = pppppppbVar12;\n            iVar24 = param_1[0xb];\n            local_3c = param_1[4];\n            local_38 = param_1[5];\n            pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1);\n            iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8);\n            unaff_s4 = local_40;\n            if (0xfffffffc < iVar11 - 1U) {\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }\n            pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11);\n          } while ((int)pppppppbVar12 < (int)param_2);\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n          if (unaff_s4 != (byte *******)0xffffffff) goto LAB_00491834;\n        }\n        else {\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n        }\n        pppppppbVar18 = (byte *******)((int)unaff_s6 + -1);\n        iVar11 = FUN_0048efec(param_1,pppppppbVar18,param_3);\n        param_1[0xf] = iVar11;\n      }\n      else {\n        pppppppbVar12 = (byte *******)*param_1;\n        unaff_s4 = (byte *******)((int)pppppppbVar12 + param_1[6]);\n        pppppppbVar18 = (byte *******)((int)unaff_s4 + ((int)pppppppbVar20 - param_1[0x14]));\n        if (pppppppbVar18 <= pppppppbVar12) {\n          pppppppbVar18 = pppppppbVar12;\n        }\n        pppppppbVar12 = (byte *******)((int)unaff_s4 + (int)((int)pppppppbVar20 + -1));\n        unaff_s5 = pppppppbVar20;\n        if (pppppppbVar12 < pppppppbVar18) goto LAB_0049179c;\n        bVar3 = *(byte *)pppppppbVar12;\n        unaff_s7 = pppppppbVar12;\n        while ((bVar3 & 0xc0) == 0x80) {\n          pppppppbVar19 = (byte *******)((int)unaff_s7 + -1);\n          unaff_s7 = pppppppbVar12;\n          if (pppppppbVar19 < pppppppbVar18) goto LAB_0049179c;\n          unaff_s7 = pppppppbVar19;\n          bVar3 = *(byte *)pppppppbVar19;\n        }\n        iVar11 = param_1[0x10];\n        pbVar16 = (byte *)((int)unaff_s4 + (param_1[0xc] - (int)unaff_s7));\n        pppppppbVar18 = unaff_s7;\n        if (iVar11 != 0) {\n          pbVar17 = (byte *)0x6;\n          if ((int)pbVar16 < 7) {\n            pbVar17 = pbVar16;\n          }\n          if ((int)(pbVar17 + -1) < 0) {\n            pppppppbVar18 = appppppbStack_34;\n          }\n          else {\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }\n        }\n        local_3c = 0;\n        local_38 = 0;\n        uVar29 = (*(code *)PTR_mbrtowc_004bf2ec)(&local_40);\n        uVar30 = (int)((int)unaff_s4 + (int)pppppppbVar20) - (int)unaff_s7;\n        if ((uVar29 < uVar30) || (0xfffffffd < uVar29)) goto LAB_0049179c;\n        *(undefined1 *)(param_1 + 4) = 0;\n        *(undefined1 *)((int)param_1 + 0x11) = 0;\n        *(undefined1 *)((int)param_1 + 0x12) = 0;\n        *(undefined1 *)((int)param_1 + 0x13) = 0;\n        *(undefined1 *)(param_1 + 5) = 0;\n        *(undefined1 *)((int)param_1 + 0x15) = 0;\n        *(undefined1 *)((int)param_1 + 0x16) = 0;\n        *(undefined1 *)((int)param_1 + 0x17) = 0;\n        param_1[7] = uVar29 - uVar30;\n        unaff_s4 = local_40;\n        if (local_40 == (byte *******)0xffffffff) {\n          iVar11 = param_1[6];\n          goto LAB_004917a0;\n        }\nLAB_00491834:\n        if (*(char *)((int)param_1 + 0x4e) == '\0') {\nLAB_00491840:\n          iVar11 = 2;\n          if (unaff_s4 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        else {\n          iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          iVar11 = 1;\n          if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }\n        param_1[0xf] = iVar11;\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_0049179c:\n        iVar11 = param_1[6];\nLAB_004917a0:\n        pppppppbVar12 = (byte *******)(iVar11 + param_1[8]);\n        if ((int)pppppppbVar12 < (int)param_2) {\n          unaff_s8 = param_1 + 4;\n          unaff_s7 = (byte *******)&local_40;\n          do {\n            unaff_s5 = pppppppbVar12;\n            iVar24 = param_1[0xb];\n            local_3c = param_1[4];\n            local_38 = param_1[5];\n            pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1);\n            iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8);\n            unaff_s4 = local_40;\n            if (0xfffffffc < iVar11 - 1U) {\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }\n            pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11);\n          } while ((int)pppppppbVar12 < (int)param_2);\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n          if (unaff_s4 != (byte *******)0xffffffff) goto LAB_00491834;\n        }\n        else {\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n        }\n        pppppppbVar18 = (byte *******)((int)unaff_s6 + -1);\n        iVar11 = FUN_0048efec(param_1,pppppppbVar18,param_3);\n        param_1[0xf] = iVar11;\n      }" { (labeled_statement "LAB_0049179c:\n        iVar11 = param_1[6];" statement_identifier : (expression_statement "iVar11 = param_1[6];" (assignment_expression "iVar11 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;)) (labeled_statement "LAB_004917a0:\n        pppppppbVar12 = (byte *******)(iVar11 + param_1[8]);" statement_identifier : (expression_statement "pppppppbVar12 = (byte *******)(iVar11 + param_1[8]);" (assignment_expression "pppppppbVar12 = (byte *******)(iVar11 + param_1[8])" identifier = (cast_expression "(byte *******)(iVar11 + param_1[8])" ( (type_descriptor "byte *******" 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 "(iVar11 + param_1[8])" ( (binary_expression "iVar11 + param_1[8]" identifier + (subscript_expression "param_1[8]" identifier [ number_literal ])) )))) ;)) (if_statement "if ((int)pppppppbVar12 < (int)param_2) {\n          unaff_s8 = param_1 + 4;\n          unaff_s7 = (byte *******)&local_40;\n          do {\n            unaff_s5 = pppppppbVar12;\n            iVar24 = param_1[0xb];\n            local_3c = param_1[4];\n            local_38 = param_1[5];\n            pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1);\n            iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8);\n            unaff_s4 = local_40;\n            if (0xfffffffc < iVar11 - 1U) {\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }\n            pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11);\n          } while ((int)pppppppbVar12 < (int)param_2);\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n          if (unaff_s4 != (byte *******)0xffffffff) goto LAB_00491834;\n        }\n        else {\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n        }" if (parenthesized_expression "((int)pppppppbVar12 < (int)param_2)" ( (binary_expression "(int)pppppppbVar12 < (int)param_2" (cast_expression "(int)pppppppbVar12" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          unaff_s8 = param_1 + 4;\n          unaff_s7 = (byte *******)&local_40;\n          do {\n            unaff_s5 = pppppppbVar12;\n            iVar24 = param_1[0xb];\n            local_3c = param_1[4];\n            local_38 = param_1[5];\n            pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1);\n            iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8);\n            unaff_s4 = local_40;\n            if (0xfffffffc < iVar11 - 1U) {\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }\n            pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11);\n          } while ((int)pppppppbVar12 < (int)param_2);\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n          if (unaff_s4 != (byte *******)0xffffffff) goto LAB_00491834;\n        }" { (expression_statement "unaff_s8 = param_1 + 4;" (assignment_expression "unaff_s8 = param_1 + 4" identifier = (binary_expression "param_1 + 4" identifier + number_literal)) ;) (expression_statement "unaff_s7 = (byte *******)&local_40;" (assignment_expression "unaff_s7 = (byte *******)&local_40" identifier = (cast_expression "(byte *******)&local_40" ( (type_descriptor "byte *******" 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            unaff_s5 = pppppppbVar12;\n            iVar24 = param_1[0xb];\n            local_3c = param_1[4];\n            local_38 = param_1[5];\n            pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1);\n            iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8);\n            unaff_s4 = local_40;\n            if (0xfffffffc < iVar11 - 1U) {\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }\n            pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11);\n          } while ((int)pppppppbVar12 < (int)param_2);" do (compound_statement "{\n            unaff_s5 = pppppppbVar12;\n            iVar24 = param_1[0xb];\n            local_3c = param_1[4];\n            local_38 = param_1[5];\n            pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1);\n            iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8);\n            unaff_s4 = local_40;\n            if (0xfffffffc < iVar11 - 1U) {\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }\n            pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11);\n          }" { (expression_statement "unaff_s5 = pppppppbVar12;" (assignment_expression "unaff_s5 = pppppppbVar12" identifier = identifier) ;) (expression_statement "iVar24 = param_1[0xb];" (assignment_expression "iVar24 = param_1[0xb]" identifier = (subscript_expression "param_1[0xb]" identifier [ number_literal ])) ;) (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 "pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1);" (assignment_expression "pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1)" identifier = (cast_expression "(byte *******)((int)unaff_s5 + *param_1)" ( (type_descriptor "byte *******" 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_s5 + *param_1)" ( (binary_expression "(int)unaff_s5 + *param_1" (cast_expression "(int)unaff_s5" ( (type_descriptor "int" primitive_type) ) identifier) + (pointer_expression "*param_1" * identifier)) )))) ;) (expression_statement "iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8);" (assignment_expression "iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8)" identifier = (call_expression "(*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8)" (parenthesized_expression "(*(code *)PTR_mbrtowc_004bf2ec)" ( (pointer_expression "*(code *)PTR_mbrtowc_004bf2ec" * (cast_expression "(code *)PTR_mbrtowc_004bf2ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8)" ( identifier , identifier , (binary_expression "iVar24 - (int)unaff_s5" identifier - (cast_expression "(int)unaff_s5" ( (type_descriptor "int" primitive_type) ) identifier)) , identifier )))) ;) (expression_statement "unaff_s4 = local_40;" (assignment_expression "unaff_s4 = local_40" identifier = identifier) ;) (if_statement "if (0xfffffffc < iVar11 - 1U) {\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }" if (parenthesized_expression "(0xfffffffc < iVar11 - 1U)" ( (binary_expression "0xfffffffc < iVar11 - 1U" number_literal < (binary_expression "iVar11 - 1U" identifier - number_literal)) )) (compound_statement "{\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }" { (if_statement "if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                unaff_s4 = (byte *******)0x0;\n              }" { (expression_statement "unaff_s4 = (byte *******)0x0;" (assignment_expression "unaff_s4 = (byte *******)0x0" identifier = (cast_expression "(byte *******)0x0" ( (type_descriptor "byte *******" 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 if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }" else (if_statement "if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }" if (parenthesized_expression "(iVar24 - (int)unaff_s5 == 0)" ( (binary_expression "iVar24 - (int)unaff_s5 == 0" (binary_expression "iVar24 - (int)unaff_s5" identifier - (cast_expression "(int)unaff_s5" ( (type_descriptor "int" primitive_type) ) identifier)) == number_literal) )) (compound_statement "{\n                unaff_s4 = (byte *******)0x0;\n              }" { (expression_statement "unaff_s4 = (byte *******)0x0;" (assignment_expression "unaff_s4 = (byte *******)0x0" identifier = (cast_expression "(byte *******)0x0" ( (type_descriptor "byte *******" 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_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }" else (compound_statement "{\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }" { (expression_statement "unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);" (assignment_expression "unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1)" identifier = (binary_expression "(byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1)" (cast_expression "(byte *******)(uint)" ( (type_descriptor "byte *******" 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)" ( identifier ))) * (cast_expression "(byte *)((int)unaff_s5 + *param_1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s5 + *param_1)" ( (binary_expression "(int)unaff_s5 + *param_1" (cast_expression "(int)unaff_s5" ( (type_descriptor "int" primitive_type) ) identifier) + (pointer_expression "*param_1" * identifier)) ))))) ;) }))))) (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 "iVar11 = 1;" (assignment_expression "iVar11 = 1" identifier = number_literal) ;) })) (expression_statement "pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11);" (assignment_expression "pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11)" identifier = (cast_expression "(byte *******)((int)unaff_s5 + iVar11)" ( (type_descriptor "byte *******" 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_s5 + iVar11)" ( (binary_expression "(int)unaff_s5 + iVar11" (cast_expression "(int)unaff_s5" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) }) while (parenthesized_expression "((int)pppppppbVar12 < (int)param_2)" ( (binary_expression "(int)pppppppbVar12 < (int)param_2" (cast_expression "(int)pppppppbVar12" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (expression_statement "param_1[7] = (int)pppppppbVar12 - (int)param_2;" (assignment_expression "param_1[7] = (int)pppppppbVar12 - (int)param_2" (subscript_expression "param_1[7]" identifier [ number_literal ]) = (binary_expression "(int)pppppppbVar12 - (int)param_2" (cast_expression "(int)pppppppbVar12" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (unaff_s4 != (byte *******)0xffffffff) goto LAB_00491834;" if (parenthesized_expression "(unaff_s4 != (byte *******)0xffffffff)" ( (binary_expression "unaff_s4 != (byte *******)0xffffffff" identifier != (cast_expression "(byte *******)0xffffffff" ( (type_descriptor "byte *******" 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_00491834;" goto statement_identifier ;)) }) (else_clause "else {\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n        }" else (compound_statement "{\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n        }" { (expression_statement "param_1[7] = (int)pppppppbVar12 - (int)param_2;" (assignment_expression "param_1[7] = (int)pppppppbVar12 - (int)param_2" (subscript_expression "param_1[7]" identifier [ number_literal ]) = (binary_expression "(int)pppppppbVar12 - (int)param_2" (cast_expression "(int)pppppppbVar12" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }))) (expression_statement "pppppppbVar18 = (byte *******)((int)unaff_s6 + -1);" (assignment_expression "pppppppbVar18 = (byte *******)((int)unaff_s6 + -1)" identifier = (cast_expression "(byte *******)((int)unaff_s6 + -1)" ( (type_descriptor "byte *******" 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_s6 + -1)" ( (binary_expression "(int)unaff_s6 + -1" (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "iVar11 = FUN_0048efec(param_1,pppppppbVar18,param_3);" (assignment_expression "iVar11 = FUN_0048efec(param_1,pppppppbVar18,param_3)" identifier = (call_expression "FUN_0048efec(param_1,pppppppbVar18,param_3)" identifier (argument_list "(param_1,pppppppbVar18,param_3)" ( identifier , identifier , identifier )))) ;) (expression_statement "param_1[0xf] = iVar11;" (assignment_expression "param_1[0xf] = iVar11" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n        pppppppbVar12 = (byte *******)*param_1;\n        unaff_s4 = (byte *******)((int)pppppppbVar12 + param_1[6]);\n        pppppppbVar18 = (byte *******)((int)unaff_s4 + ((int)pppppppbVar20 - param_1[0x14]));\n        if (pppppppbVar18 <= pppppppbVar12) {\n          pppppppbVar18 = pppppppbVar12;\n        }\n        pppppppbVar12 = (byte *******)((int)unaff_s4 + (int)((int)pppppppbVar20 + -1));\n        unaff_s5 = pppppppbVar20;\n        if (pppppppbVar12 < pppppppbVar18) goto LAB_0049179c;\n        bVar3 = *(byte *)pppppppbVar12;\n        unaff_s7 = pppppppbVar12;\n        while ((bVar3 & 0xc0) == 0x80) {\n          pppppppbVar19 = (byte *******)((int)unaff_s7 + -1);\n          unaff_s7 = pppppppbVar12;\n          if (pppppppbVar19 < pppppppbVar18) goto LAB_0049179c;\n          unaff_s7 = pppppppbVar19;\n          bVar3 = *(byte *)pppppppbVar19;\n        }\n        iVar11 = param_1[0x10];\n        pbVar16 = (byte *)((int)unaff_s4 + (param_1[0xc] - (int)unaff_s7));\n        pppppppbVar18 = unaff_s7;\n        if (iVar11 != 0) {\n          pbVar17 = (byte *)0x6;\n          if ((int)pbVar16 < 7) {\n            pbVar17 = pbVar16;\n          }\n          if ((int)(pbVar17 + -1) < 0) {\n            pppppppbVar18 = appppppbStack_34;\n          }\n          else {\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }\n        }\n        local_3c = 0;\n        local_38 = 0;\n        uVar29 = (*(code *)PTR_mbrtowc_004bf2ec)(&local_40);\n        uVar30 = (int)((int)unaff_s4 + (int)pppppppbVar20) - (int)unaff_s7;\n        if ((uVar29 < uVar30) || (0xfffffffd < uVar29)) goto LAB_0049179c;\n        *(undefined1 *)(param_1 + 4) = 0;\n        *(undefined1 *)((int)param_1 + 0x11) = 0;\n        *(undefined1 *)((int)param_1 + 0x12) = 0;\n        *(undefined1 *)((int)param_1 + 0x13) = 0;\n        *(undefined1 *)(param_1 + 5) = 0;\n        *(undefined1 *)((int)param_1 + 0x15) = 0;\n        *(undefined1 *)((int)param_1 + 0x16) = 0;\n        *(undefined1 *)((int)param_1 + 0x17) = 0;\n        param_1[7] = uVar29 - uVar30;\n        unaff_s4 = local_40;\n        if (local_40 == (byte *******)0xffffffff) {\n          iVar11 = param_1[6];\n          goto LAB_004917a0;\n        }\nLAB_00491834:\n        if (*(char *)((int)param_1 + 0x4e) == '\0') {\nLAB_00491840:\n          iVar11 = 2;\n          if (unaff_s4 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        else {\n          iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          iVar11 = 1;\n          if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }\n        param_1[0xf] = iVar11;\n      }" else (compound_statement "{\n        pppppppbVar12 = (byte *******)*param_1;\n        unaff_s4 = (byte *******)((int)pppppppbVar12 + param_1[6]);\n        pppppppbVar18 = (byte *******)((int)unaff_s4 + ((int)pppppppbVar20 - param_1[0x14]));\n        if (pppppppbVar18 <= pppppppbVar12) {\n          pppppppbVar18 = pppppppbVar12;\n        }\n        pppppppbVar12 = (byte *******)((int)unaff_s4 + (int)((int)pppppppbVar20 + -1));\n        unaff_s5 = pppppppbVar20;\n        if (pppppppbVar12 < pppppppbVar18) goto LAB_0049179c;\n        bVar3 = *(byte *)pppppppbVar12;\n        unaff_s7 = pppppppbVar12;\n        while ((bVar3 & 0xc0) == 0x80) {\n          pppppppbVar19 = (byte *******)((int)unaff_s7 + -1);\n          unaff_s7 = pppppppbVar12;\n          if (pppppppbVar19 < pppppppbVar18) goto LAB_0049179c;\n          unaff_s7 = pppppppbVar19;\n          bVar3 = *(byte *)pppppppbVar19;\n        }\n        iVar11 = param_1[0x10];\n        pbVar16 = (byte *)((int)unaff_s4 + (param_1[0xc] - (int)unaff_s7));\n        pppppppbVar18 = unaff_s7;\n        if (iVar11 != 0) {\n          pbVar17 = (byte *)0x6;\n          if ((int)pbVar16 < 7) {\n            pbVar17 = pbVar16;\n          }\n          if ((int)(pbVar17 + -1) < 0) {\n            pppppppbVar18 = appppppbStack_34;\n          }\n          else {\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }\n        }\n        local_3c = 0;\n        local_38 = 0;\n        uVar29 = (*(code *)PTR_mbrtowc_004bf2ec)(&local_40);\n        uVar30 = (int)((int)unaff_s4 + (int)pppppppbVar20) - (int)unaff_s7;\n        if ((uVar29 < uVar30) || (0xfffffffd < uVar29)) goto LAB_0049179c;\n        *(undefined1 *)(param_1 + 4) = 0;\n        *(undefined1 *)((int)param_1 + 0x11) = 0;\n        *(undefined1 *)((int)param_1 + 0x12) = 0;\n        *(undefined1 *)((int)param_1 + 0x13) = 0;\n        *(undefined1 *)(param_1 + 5) = 0;\n        *(undefined1 *)((int)param_1 + 0x15) = 0;\n        *(undefined1 *)((int)param_1 + 0x16) = 0;\n        *(undefined1 *)((int)param_1 + 0x17) = 0;\n        param_1[7] = uVar29 - uVar30;\n        unaff_s4 = local_40;\n        if (local_40 == (byte *******)0xffffffff) {\n          iVar11 = param_1[6];\n          goto LAB_004917a0;\n        }\nLAB_00491834:\n        if (*(char *)((int)param_1 + 0x4e) == '\0') {\nLAB_00491840:\n          iVar11 = 2;\n          if (unaff_s4 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        else {\n          iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          iVar11 = 1;\n          if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }\n        param_1[0xf] = iVar11;\n      }" { (expression_statement "pppppppbVar12 = (byte *******)*param_1;" (assignment_expression "pppppppbVar12 = (byte *******)*param_1" identifier = (cast_expression "(byte *******)*param_1" ( (type_descriptor "byte *******" 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_s4 = (byte *******)((int)pppppppbVar12 + param_1[6]);" (assignment_expression "unaff_s4 = (byte *******)((int)pppppppbVar12 + param_1[6])" identifier = (cast_expression "(byte *******)((int)pppppppbVar12 + param_1[6])" ( (type_descriptor "byte *******" 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)pppppppbVar12 + param_1[6])" ( (binary_expression "(int)pppppppbVar12 + param_1[6]" (cast_expression "(int)pppppppbVar12" ( (type_descriptor "int" primitive_type) ) identifier) + (subscript_expression "param_1[6]" identifier [ number_literal ])) )))) ;) (expression_statement "pppppppbVar18 = (byte *******)((int)unaff_s4 + ((int)pppppppbVar20 - param_1[0x14]));" (assignment_expression "pppppppbVar18 = (byte *******)((int)unaff_s4 + ((int)pppppppbVar20 - param_1[0x14]))" identifier = (cast_expression "(byte *******)((int)unaff_s4 + ((int)pppppppbVar20 - param_1[0x14]))" ( (type_descriptor "byte *******" 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_s4 + ((int)pppppppbVar20 - param_1[0x14]))" ( (binary_expression "(int)unaff_s4 + ((int)pppppppbVar20 - param_1[0x14])" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((int)pppppppbVar20 - param_1[0x14])" ( (binary_expression "(int)pppppppbVar20 - param_1[0x14]" (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier) - (subscript_expression "param_1[0x14]" identifier [ number_literal ])) ))) )))) ;) (if_statement "if (pppppppbVar18 <= pppppppbVar12) {\n          pppppppbVar18 = pppppppbVar12;\n        }" if (parenthesized_expression "(pppppppbVar18 <= pppppppbVar12)" ( (binary_expression "pppppppbVar18 <= pppppppbVar12" identifier <= identifier) )) (compound_statement "{\n          pppppppbVar18 = pppppppbVar12;\n        }" { (expression_statement "pppppppbVar18 = pppppppbVar12;" (assignment_expression "pppppppbVar18 = pppppppbVar12" identifier = identifier) ;) })) (expression_statement "pppppppbVar12 = (byte *******)((int)unaff_s4 + (int)((int)pppppppbVar20 + -1));" (assignment_expression "pppppppbVar12 = (byte *******)((int)unaff_s4 + (int)((int)pppppppbVar20 + -1))" identifier = (cast_expression "(byte *******)((int)unaff_s4 + (int)((int)pppppppbVar20 + -1))" ( (type_descriptor "byte *******" 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_s4 + (int)((int)pppppppbVar20 + -1))" ( (binary_expression "(int)unaff_s4 + (int)((int)pppppppbVar20 + -1)" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)((int)pppppppbVar20 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)pppppppbVar20 + -1)" ( (binary_expression "(int)pppppppbVar20 + -1" (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (expression_statement "unaff_s5 = pppppppbVar20;" (assignment_expression "unaff_s5 = pppppppbVar20" identifier = identifier) ;) (if_statement "if (pppppppbVar12 < pppppppbVar18) goto LAB_0049179c;" if (parenthesized_expression "(pppppppbVar12 < pppppppbVar18)" ( (binary_expression "pppppppbVar12 < pppppppbVar18" identifier < identifier) )) (goto_statement "goto LAB_0049179c;" goto statement_identifier ;)) (expression_statement "bVar3 = *(byte *)pppppppbVar12;" (assignment_expression "bVar3 = *(byte *)pppppppbVar12" identifier = (pointer_expression "*(byte *)pppppppbVar12" * (cast_expression "(byte *)pppppppbVar12" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "unaff_s7 = pppppppbVar12;" (assignment_expression "unaff_s7 = pppppppbVar12" identifier = identifier) ;) (while_statement "while ((bVar3 & 0xc0) == 0x80) {\n          pppppppbVar19 = (byte *******)((int)unaff_s7 + -1);\n          unaff_s7 = pppppppbVar12;\n          if (pppppppbVar19 < pppppppbVar18) goto LAB_0049179c;\n          unaff_s7 = pppppppbVar19;\n          bVar3 = *(byte *)pppppppbVar19;\n        }" while (parenthesized_expression "((bVar3 & 0xc0) == 0x80)" ( (binary_expression "(bVar3 & 0xc0) == 0x80" (parenthesized_expression "(bVar3 & 0xc0)" ( (binary_expression "bVar3 & 0xc0" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          pppppppbVar19 = (byte *******)((int)unaff_s7 + -1);\n          unaff_s7 = pppppppbVar12;\n          if (pppppppbVar19 < pppppppbVar18) goto LAB_0049179c;\n          unaff_s7 = pppppppbVar19;\n          bVar3 = *(byte *)pppppppbVar19;\n        }" { (expression_statement "pppppppbVar19 = (byte *******)((int)unaff_s7 + -1);" (assignment_expression "pppppppbVar19 = (byte *******)((int)unaff_s7 + -1)" identifier = (cast_expression "(byte *******)((int)unaff_s7 + -1)" ( (type_descriptor "byte *******" 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 + -1)" ( (binary_expression "(int)unaff_s7 + -1" (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "unaff_s7 = pppppppbVar12;" (assignment_expression "unaff_s7 = pppppppbVar12" identifier = identifier) ;) (if_statement "if (pppppppbVar19 < pppppppbVar18) goto LAB_0049179c;" if (parenthesized_expression "(pppppppbVar19 < pppppppbVar18)" ( (binary_expression "pppppppbVar19 < pppppppbVar18" identifier < identifier) )) (goto_statement "goto LAB_0049179c;" goto statement_identifier ;)) (expression_statement "unaff_s7 = pppppppbVar19;" (assignment_expression "unaff_s7 = pppppppbVar19" identifier = identifier) ;) (expression_statement "bVar3 = *(byte *)pppppppbVar19;" (assignment_expression "bVar3 = *(byte *)pppppppbVar19" identifier = (pointer_expression "*(byte *)pppppppbVar19" * (cast_expression "(byte *)pppppppbVar19" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) })) (expression_statement "iVar11 = param_1[0x10];" (assignment_expression "iVar11 = param_1[0x10]" identifier = (subscript_expression "param_1[0x10]" identifier [ number_literal ])) ;) (expression_statement "pbVar16 = (byte *)((int)unaff_s4 + (param_1[0xc] - (int)unaff_s7));" (assignment_expression "pbVar16 = (byte *)((int)unaff_s4 + (param_1[0xc] - (int)unaff_s7))" identifier = (cast_expression "(byte *)((int)unaff_s4 + (param_1[0xc] - (int)unaff_s7))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + (param_1[0xc] - (int)unaff_s7))" ( (binary_expression "(int)unaff_s4 + (param_1[0xc] - (int)unaff_s7)" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(param_1[0xc] - (int)unaff_s7)" ( (binary_expression "param_1[0xc] - (int)unaff_s7" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) - (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "pppppppbVar18 = unaff_s7;" (assignment_expression "pppppppbVar18 = unaff_s7" identifier = identifier) ;) (if_statement "if (iVar11 != 0) {\n          pbVar17 = (byte *)0x6;\n          if ((int)pbVar16 < 7) {\n            pbVar17 = pbVar16;\n          }\n          if ((int)(pbVar17 + -1) < 0) {\n            pppppppbVar18 = appppppbStack_34;\n          }\n          else {\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }\n        }" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (compound_statement "{\n          pbVar17 = (byte *)0x6;\n          if ((int)pbVar16 < 7) {\n            pbVar17 = pbVar16;\n          }\n          if ((int)(pbVar17 + -1) < 0) {\n            pppppppbVar18 = appppppbStack_34;\n          }\n          else {\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }\n        }" { (expression_statement "pbVar17 = (byte *)0x6;" (assignment_expression "pbVar17 = (byte *)0x6" identifier = (cast_expression "(byte *)0x6" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((int)pbVar16 < 7) {\n            pbVar17 = pbVar16;\n          }" if (parenthesized_expression "((int)pbVar16 < 7)" ( (binary_expression "(int)pbVar16 < 7" (cast_expression "(int)pbVar16" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            pbVar17 = pbVar16;\n          }" { (expression_statement "pbVar17 = pbVar16;" (assignment_expression "pbVar17 = pbVar16" identifier = identifier) ;) })) (if_statement "if ((int)(pbVar17 + -1) < 0) {\n            pppppppbVar18 = appppppbStack_34;\n          }\n          else {\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }" if (parenthesized_expression "((int)(pbVar17 + -1) < 0)" ( (binary_expression "(int)(pbVar17 + -1) < 0" (cast_expression "(int)(pbVar17 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar17 + -1)" ( (binary_expression "pbVar17 + -1" identifier + number_literal) ))) < number_literal) )) (compound_statement "{\n            pppppppbVar18 = appppppbStack_34;\n          }" { (expression_statement "pppppppbVar18 = appppppbStack_34;" (assignment_expression "pppppppbVar18 = appppppbStack_34" identifier = identifier) ;) }) (else_clause "else {\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }" else (compound_statement "{\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }" { (expression_statement "pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));" (assignment_expression "pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1))" identifier = (cast_expression "(byte *)((int)unaff_s7 + (int)(pbVar17 + -1))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s7 + (int)(pbVar17 + -1))" ( (binary_expression "(int)unaff_s7 + (int)(pbVar17 + -1)" (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(pbVar17 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar17 + -1)" ( (binary_expression "pbVar17 + -1" identifier + number_literal) )))) )))) ;) (expression_statement "ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);" (assignment_expression "ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17)" identifier = (cast_expression "(byte ******)((int)appppppbStack_34 + (int)pbVar17)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)appppppbStack_34 + (int)pbVar17)" ( (binary_expression "(int)appppppbStack_34 + (int)pbVar17" (cast_expression "(int)appppppbStack_34" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pbVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (do_statement "do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);" do (compound_statement "{\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            }" { (expression_statement "*(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);" (assignment_expression "*(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16)" (pointer_expression "*(byte *)((int)ppppppbVar22 + -1)" * (cast_expression "(byte *)((int)ppppppbVar22 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppbVar22 + -1)" ( (binary_expression "(int)ppppppbVar22 + -1" (cast_expression "(int)ppppppbVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(byte *)(iVar11 + (uint)*pbVar16)" * (cast_expression "(byte *)(iVar11 + (uint)*pbVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + (uint)*pbVar16)" ( (binary_expression "iVar11 + (uint)*pbVar16" identifier + (binary_expression "(uint)*pbVar16" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ))))) ;) (expression_statement "ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);" (assignment_expression "ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1)" identifier = (cast_expression "(byte ******)((int)ppppppbVar22 + -1)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)ppppppbVar22 + -1)" ( (binary_expression "(int)ppppppbVar22 + -1" (cast_expression "(int)ppppppbVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pbVar16 = pbVar16 + -1;" (assignment_expression "pbVar16 = pbVar16 + -1" identifier = (binary_expression "pbVar16 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "((byte *******)ppppppbVar22 != appppppbStack_34)" ( (binary_expression "(byte *******)ppppppbVar22 != appppppbStack_34" (cast_expression "(byte *******)ppppppbVar22" ( (type_descriptor "byte *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) identifier) != identifier) )) ;) (expression_statement "pppppppbVar18 = appppppbStack_34;" (assignment_expression "pppppppbVar18 = appppppbStack_34" 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 "uVar29 = (*(code *)PTR_mbrtowc_004bf2ec)(&local_40);" (assignment_expression "uVar29 = (*(code *)PTR_mbrtowc_004bf2ec)(&local_40)" identifier = (call_expression "(*(code *)PTR_mbrtowc_004bf2ec)(&local_40)" (parenthesized_expression "(*(code *)PTR_mbrtowc_004bf2ec)" ( (pointer_expression "*(code *)PTR_mbrtowc_004bf2ec" * (cast_expression "(code *)PTR_mbrtowc_004bf2ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_40)" ( (pointer_expression "&local_40" & identifier) )))) ;) (expression_statement "uVar30 = (int)((int)unaff_s4 + (int)pppppppbVar20) - (int)unaff_s7;" (assignment_expression "uVar30 = (int)((int)unaff_s4 + (int)pppppppbVar20) - (int)unaff_s7" identifier = (binary_expression "(int)((int)unaff_s4 + (int)pppppppbVar20) - (int)unaff_s7" (cast_expression "(int)((int)unaff_s4 + (int)pppppppbVar20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)unaff_s4 + (int)pppppppbVar20)" ( (binary_expression "(int)unaff_s4 + (int)pppppppbVar20" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier)) ))) - (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((uVar29 < uVar30) || (0xfffffffd < uVar29)) goto LAB_0049179c;" if (parenthesized_expression "((uVar29 < uVar30) || (0xfffffffd < uVar29))" ( (binary_expression "(uVar29 < uVar30) || (0xfffffffd < uVar29)" (parenthesized_expression "(uVar29 < uVar30)" ( (binary_expression "uVar29 < uVar30" identifier < identifier) )) || (parenthesized_expression "(0xfffffffd < uVar29)" ( (binary_expression "0xfffffffd < uVar29" number_literal < identifier) ))) )) (goto_statement "goto LAB_0049179c;" goto statement_identifier ;)) (expression_statement "*(undefined1 *)(param_1 + 4) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 4) = 0" (pointer_expression "*(undefined1 *)(param_1 + 4)" * (cast_expression "(undefined1 *)(param_1 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)param_1 + 0x11) = 0;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x11) = 0" (pointer_expression "*(undefined1 *)((int)param_1 + 0x11)" * (cast_expression "(undefined1 *)((int)param_1 + 0x11)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x11)" ( (binary_expression "(int)param_1 + 0x11" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)param_1 + 0x12) = 0;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x12) = 0" (pointer_expression "*(undefined1 *)((int)param_1 + 0x12)" * (cast_expression "(undefined1 *)((int)param_1 + 0x12)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x12)" ( (binary_expression "(int)param_1 + 0x12" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)param_1 + 0x13) = 0;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x13) = 0" (pointer_expression "*(undefined1 *)((int)param_1 + 0x13)" * (cast_expression "(undefined1 *)((int)param_1 + 0x13)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x13)" ( (binary_expression "(int)param_1 + 0x13" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 5) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 5) = 0" (pointer_expression "*(undefined1 *)(param_1 + 5)" * (cast_expression "(undefined1 *)(param_1 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 5)" ( (binary_expression "param_1 + 5" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)param_1 + 0x15) = 0;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x15) = 0" (pointer_expression "*(undefined1 *)((int)param_1 + 0x15)" * (cast_expression "(undefined1 *)((int)param_1 + 0x15)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x15)" ( (binary_expression "(int)param_1 + 0x15" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)param_1 + 0x16) = 0;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x16) = 0" (pointer_expression "*(undefined1 *)((int)param_1 + 0x16)" * (cast_expression "(undefined1 *)((int)param_1 + 0x16)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x16)" ( (binary_expression "(int)param_1 + 0x16" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)param_1 + 0x17) = 0;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x17) = 0" (pointer_expression "*(undefined1 *)((int)param_1 + 0x17)" * (cast_expression "(undefined1 *)((int)param_1 + 0x17)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x17)" ( (binary_expression "(int)param_1 + 0x17" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "param_1[7] = uVar29 - uVar30;" (assignment_expression "param_1[7] = uVar29 - uVar30" (subscript_expression "param_1[7]" identifier [ number_literal ]) = (binary_expression "uVar29 - uVar30" identifier - identifier)) ;) (expression_statement "unaff_s4 = local_40;" (assignment_expression "unaff_s4 = local_40" identifier = identifier) ;) (if_statement "if (local_40 == (byte *******)0xffffffff) {\n          iVar11 = param_1[6];\n          goto LAB_004917a0;\n        }" if (parenthesized_expression "(local_40 == (byte *******)0xffffffff)" ( (binary_expression "local_40 == (byte *******)0xffffffff" identifier == (cast_expression "(byte *******)0xffffffff" ( (type_descriptor "byte *******" 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          iVar11 = param_1[6];\n          goto LAB_004917a0;\n        }" { (expression_statement "iVar11 = param_1[6];" (assignment_expression "iVar11 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_004917a0;" goto statement_identifier ;) })) (labeled_statement "LAB_00491834:\n        if (*(char *)((int)param_1 + 0x4e) == '\0') {\nLAB_00491840:\n          iVar11 = 2;\n          if (unaff_s4 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        else {\n          iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          iVar11 = 1;\n          if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }" statement_identifier : (if_statement "if (*(char *)((int)param_1 + 0x4e) == '\0') {\nLAB_00491840:\n          iVar11 = 2;\n          if (unaff_s4 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        else {\n          iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          iVar11 = 1;\n          if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }" if (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 ')) )) (compound_statement "{\nLAB_00491840:\n          iVar11 = 2;\n          if (unaff_s4 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }" { (labeled_statement "LAB_00491840:\n          iVar11 = 2;" statement_identifier : (expression_statement "iVar11 = 2;" (assignment_expression "iVar11 = 2" identifier = number_literal) ;)) (if_statement "if (unaff_s4 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }" if (parenthesized_expression "(unaff_s4 == (byte *******)&DAT_0000000a)" ( (binary_expression "unaff_s4 == (byte *******)&DAT_0000000a" identifier == (cast_expression "(byte *******)&DAT_0000000a" ( (type_descriptor "byte *******" 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 "&DAT_0000000a" & identifier))) )) (compound_statement "{\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }" { (if_statement "if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 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              iVar11 = 0;\n            }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) })) }) (else_clause "else {\n            iVar11 = 0;\n          }" else (compound_statement "{\n            iVar11 = 0;\n          }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n          iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          iVar11 = 1;\n          if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }" else (compound_statement "{\n          iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          iVar11 = 1;\n          if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }" { (expression_statement "iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);" (assignment_expression "iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4)" identifier = (call_expression "(*(code *)PTR_iswalnum_004bf25c)(unaff_s4)" (parenthesized_expression "(*(code *)PTR_iswalnum_004bf25c)" ( (pointer_expression "*(code *)PTR_iswalnum_004bf25c" * (cast_expression "(code *)PTR_iswalnum_004bf25c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s4)" ( identifier )))) ;) (expression_statement "iVar11 = 1;" (assignment_expression "iVar11 = 1" identifier = number_literal) ;) (if_statement "if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (compound_statement "{\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }" { (if_statement "if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }" if (parenthesized_expression "(unaff_s4 == (byte *******)0x5f)" ( (binary_expression "unaff_s4 == (byte *******)0x5f" identifier == (cast_expression "(byte *******)0x5f" ( (type_descriptor "byte *******" 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              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }" { (expression_statement "param_1[0xf] = 1;" (assignment_expression "param_1[0xf] = 1" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_00491854;" goto statement_identifier ;) })) (goto_statement "goto LAB_00491840;" goto statement_identifier ;) })) })))) (expression_statement "param_1[0xf] = iVar11;" (assignment_expression "param_1[0xf] = iVar11" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = identifier) ;) }))) (labeled_statement "LAB_00491854:\n      ppppppbVar22 = (byte ******)param_1[7];" statement_identifier : (expression_statement "ppppppbVar22 = (byte ******)param_1[7];" (assignment_expression "ppppppbVar22 = (byte ******)param_1[7]" identifier = (cast_expression "(byte ******)param_1[7]" ( (type_descriptor "byte ******" type_identifier (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 (ppppppbVar22 == (byte ******)0x0) {\nLAB_00491860:\n        iVar11 = param_1[7];\n      }\n      else {\n        iVar11 = 0;\n        if (0 < (int)ppppppbVar22) {\n          do {\n            *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n            iVar11 = iVar11 + 1;\n            ppppppbVar22 = (byte ******)param_1[7];\n          } while (iVar11 < (int)ppppppbVar22);\n        }\n        pppppppbVar18 = (byte *******)0xff;\n        if (*(char *)((int)param_1 + 0x4b) == '\0') goto LAB_00491860;\n        (*(code *)PTR_memset_004bf260)(param_1[1]);\n        iVar11 = param_1[7];\n      }" if (parenthesized_expression "(ppppppbVar22 == (byte ******)0x0)" ( (binary_expression "ppppppbVar22 == (byte ******)0x0" identifier == (cast_expression "(byte ******)0x0" ( (type_descriptor "byte ******" 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_00491860:\n        iVar11 = param_1[7];\n      }" { (labeled_statement "LAB_00491860:\n        iVar11 = param_1[7];" statement_identifier : (expression_statement "iVar11 = param_1[7];" (assignment_expression "iVar11 = param_1[7]" identifier = (subscript_expression "param_1[7]" identifier [ number_literal ])) ;)) }) (else_clause "else {\n        iVar11 = 0;\n        if (0 < (int)ppppppbVar22) {\n          do {\n            *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n            iVar11 = iVar11 + 1;\n            ppppppbVar22 = (byte ******)param_1[7];\n          } while (iVar11 < (int)ppppppbVar22);\n        }\n        pppppppbVar18 = (byte *******)0xff;\n        if (*(char *)((int)param_1 + 0x4b) == '\0') goto LAB_00491860;\n        (*(code *)PTR_memset_004bf260)(param_1[1]);\n        iVar11 = param_1[7];\n      }" else (compound_statement "{\n        iVar11 = 0;\n        if (0 < (int)ppppppbVar22) {\n          do {\n            *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n            iVar11 = iVar11 + 1;\n            ppppppbVar22 = (byte ******)param_1[7];\n          } while (iVar11 < (int)ppppppbVar22);\n        }\n        pppppppbVar18 = (byte *******)0xff;\n        if (*(char *)((int)param_1 + 0x4b) == '\0') goto LAB_00491860;\n        (*(code *)PTR_memset_004bf260)(param_1[1]);\n        iVar11 = param_1[7];\n      }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)ppppppbVar22) {\n          do {\n            *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n            iVar11 = iVar11 + 1;\n            ppppppbVar22 = (byte ******)param_1[7];\n          } while (iVar11 < (int)ppppppbVar22);\n        }" if (parenthesized_expression "(0 < (int)ppppppbVar22)" ( (binary_expression "0 < (int)ppppppbVar22" number_literal < (cast_expression "(int)ppppppbVar22" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          do {\n            *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n            iVar11 = iVar11 + 1;\n            ppppppbVar22 = (byte ******)param_1[7];\n          } while (iVar11 < (int)ppppppbVar22);\n        }" { (do_statement "do {\n            *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n            iVar11 = iVar11 + 1;\n            ppppppbVar22 = (byte ******)param_1[7];\n          } while (iVar11 < (int)ppppppbVar22);" do (compound_statement "{\n            *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n            iVar11 = iVar11 + 1;\n            ppppppbVar22 = (byte ******)param_1[7];\n          }" { (expression_statement "*(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;" (assignment_expression "*(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff" (pointer_expression "*(undefined4 *)(param_1[2] + iVar11 * 4)" * (cast_expression "(undefined4 *)(param_1[2] + iVar11 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[2] + iVar11 * 4)" ( (binary_expression "param_1[2] + iVar11 * 4" (subscript_expression "param_1[2]" identifier [ number_literal ]) + (binary_expression "iVar11 * 4" identifier * number_literal)) )))) = number_literal) ;) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (expression_statement "ppppppbVar22 = (byte ******)param_1[7];" (assignment_expression "ppppppbVar22 = (byte ******)param_1[7]" identifier = (cast_expression "(byte ******)param_1[7]" ( (type_descriptor "byte ******" type_identifier (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 ]))) ;) }) while (parenthesized_expression "(iVar11 < (int)ppppppbVar22)" ( (binary_expression "iVar11 < (int)ppppppbVar22" identifier < (cast_expression "(int)ppppppbVar22" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "pppppppbVar18 = (byte *******)0xff;" (assignment_expression "pppppppbVar18 = (byte *******)0xff" identifier = (cast_expression "(byte *******)0xff" ( (type_descriptor "byte *******" 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 (*(char *)((int)param_1 + 0x4b) == '\0') goto LAB_00491860;" 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 ')) )) (goto_statement "goto LAB_00491860;" goto statement_identifier ;)) (expression_statement "(*(code *)PTR_memset_004bf260)(param_1[1]);" (call_expression "(*(code *)PTR_memset_004bf260)(param_1[1])" (parenthesized_expression "(*(code *)PTR_memset_004bf260)" ( (pointer_expression "*(code *)PTR_memset_004bf260" * (cast_expression "(code *)PTR_memset_004bf260" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1[1])" ( (subscript_expression "param_1[1]" identifier [ number_literal ]) ))) ;) (expression_statement "iVar11 = param_1[7];" (assignment_expression "iVar11 = param_1[7]" identifier = (subscript_expression "param_1[7]" identifier [ number_literal ])) ;) }))) (expression_statement "param_1[8] = iVar11;" (assignment_expression "param_1[8] = iVar11" (subscript_expression "param_1[8]" identifier [ number_literal ]) = identifier) ;) (labeled_statement "LAB_00491360:\n      cVar2 = *(char *)((int)param_1 + 0x4b);" statement_identifier : (expression_statement "cVar2 = *(char *)((int)param_1 + 0x4b);" (assignment_expression "cVar2 = *(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 (cVar2 == '\0') {\n      param_1[1] = (int)((int)pppppppbVar20 + param_1[1]);\n    }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      param_1[1] = (int)((int)pppppppbVar20 + param_1[1]);\n    }" { (expression_statement "param_1[1] = (int)((int)pppppppbVar20 + param_1[1]);" (assignment_expression "param_1[1] = (int)((int)pppppppbVar20 + param_1[1])" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (cast_expression "(int)((int)pppppppbVar20 + param_1[1])" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)pppppppbVar20 + param_1[1])" ( (binary_expression "(int)pppppppbVar20 + param_1[1]" (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier) + (subscript_expression "param_1[1]" 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 "iVar11 = param_1[0xc];" (assignment_expression "iVar11 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) (expression_statement "param_1[0xc] = iVar11 - (int)pppppppbVar20;" (assignment_expression "param_1[0xc] = iVar11 - (int)pppppppbVar20" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (binary_expression "iVar11 - (int)pppppppbVar20" identifier - (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar24 = param_1[0xe] - (int)pppppppbVar20;" (assignment_expression "iVar24 = param_1[0xe] - (int)pppppppbVar20" identifier = (binary_expression "param_1[0xe] - (int)pppppppbVar20" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) - (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "param_1[0xe] = iVar24;" (assignment_expression "param_1[0xe] = iVar24" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (param_1[0x14] < 2) {\n    if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[7] = iVar11 - (int)pppppppbVar20;\n      goto LAB_00491aa8;\n    }\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      if (param_1[0x10] == 0) goto LAB_00491aa8;\n      FUN_00489d80();\n      param_1[10] = 0;\n    }\n    else {\n      FUN_0048b84c(param_1);\n      param_1[10] = 0;\n    }\n  }\n  else {\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      FUN_0048b928(param_1);\n      param_1[10] = 0;\n      goto LAB_00491aac;\n    }\n    ppppbVar5 = (byte ****)FUN_0048c3a4();\n    if (ppppbVar5 != (byte ****)0x0) goto LAB_00491ab0;\nLAB_00491aa8:\n    param_1[10] = 0;\n  }" if (parenthesized_expression "(param_1[0x14] < 2)" ( (binary_expression "param_1[0x14] < 2" (subscript_expression "param_1[0x14]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n    if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[7] = iVar11 - (int)pppppppbVar20;\n      goto LAB_00491aa8;\n    }\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      if (param_1[0x10] == 0) goto LAB_00491aa8;\n      FUN_00489d80();\n      param_1[10] = 0;\n    }\n    else {\n      FUN_0048b84c(param_1);\n      param_1[10] = 0;\n    }\n  }" { (if_statement "if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[7] = iVar11 - (int)pppppppbVar20;\n      goto LAB_00491aa8;\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[7] = iVar11 - (int)pppppppbVar20;\n      goto LAB_00491aa8;\n    }" { (expression_statement "param_1[7] = iVar11 - (int)pppppppbVar20;" (assignment_expression "param_1[7] = iVar11 - (int)pppppppbVar20" (subscript_expression "param_1[7]" identifier [ number_literal ]) = (binary_expression "iVar11 - (int)pppppppbVar20" identifier - (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (goto_statement "goto LAB_00491aa8;" goto statement_identifier ;) })) (if_statement "if (*(char *)(param_1 + 0x12) == '\0') {\n      if (param_1[0x10] == 0) goto LAB_00491aa8;\n      FUN_00489d80();\n      param_1[10] = 0;\n    }\n    else {\n      FUN_0048b84c(param_1);\n      param_1[10] = 0;\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      if (param_1[0x10] == 0) goto LAB_00491aa8;\n      FUN_00489d80();\n      param_1[10] = 0;\n    }" { (if_statement "if (param_1[0x10] == 0) goto LAB_00491aa8;" if (parenthesized_expression "(param_1[0x10] == 0)" ( (binary_expression "param_1[0x10] == 0" (subscript_expression "param_1[0x10]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_00491aa8;" goto statement_identifier ;)) (expression_statement "FUN_00489d80();" (call_expression "FUN_00489d80()" identifier (argument_list "()" ( ))) ;) (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 {\n      FUN_0048b84c(param_1);\n      param_1[10] = 0;\n    }" else (compound_statement "{\n      FUN_0048b84c(param_1);\n      param_1[10] = 0;\n    }" { (expression_statement "FUN_0048b84c(param_1);" (call_expression "FUN_0048b84c(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (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 {\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      FUN_0048b928(param_1);\n      param_1[10] = 0;\n      goto LAB_00491aac;\n    }\n    ppppbVar5 = (byte ****)FUN_0048c3a4();\n    if (ppppbVar5 != (byte ****)0x0) goto LAB_00491ab0;\nLAB_00491aa8:\n    param_1[10] = 0;\n  }" else (compound_statement "{\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      FUN_0048b928(param_1);\n      param_1[10] = 0;\n      goto LAB_00491aac;\n    }\n    ppppbVar5 = (byte ****)FUN_0048c3a4();\n    if (ppppbVar5 != (byte ****)0x0) goto LAB_00491ab0;\nLAB_00491aa8:\n    param_1[10] = 0;\n  }" { (if_statement "if (*(char *)(param_1 + 0x12) == '\0') {\n      FUN_0048b928(param_1);\n      param_1[10] = 0;\n      goto LAB_00491aac;\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_0048b928(param_1);\n      param_1[10] = 0;\n      goto LAB_00491aac;\n    }" { (expression_statement "FUN_0048b928(param_1);" (call_expression "FUN_0048b928(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "param_1[10] = 0;" (assignment_expression "param_1[10] = 0" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_00491aac;" goto statement_identifier ;) })) (expression_statement "ppppbVar5 = (byte ****)FUN_0048c3a4();" (assignment_expression "ppppbVar5 = (byte ****)FUN_0048c3a4()" identifier = (cast_expression "(byte ****)FUN_0048c3a4()" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "FUN_0048c3a4()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (ppppbVar5 != (byte ****)0x0) goto LAB_00491ab0;" if (parenthesized_expression "(ppppbVar5 != (byte ****)0x0)" ( (binary_expression "ppppbVar5 != (byte ****)0x0" identifier != (cast_expression "(byte ****)0x0" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (goto_statement "goto LAB_00491ab0;" goto statement_identifier ;)) (labeled_statement "LAB_00491aa8:\n    param_1[10] = 0;" statement_identifier : (expression_statement "param_1[10] = 0;" (assignment_expression "param_1[10] = 0" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) ;)) }))) (labeled_statement "LAB_00491aac:\n  ppppbVar5 = (byte ****)0x0;" statement_identifier : (expression_statement "ppppbVar5 = (byte ****)0x0;" (assignment_expression "ppppbVar5 = (byte ****)0x0" identifier = (cast_expression "(byte ****)0x0" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;)) (labeled_statement "LAB_00491ab0:\n  if (appppppbStack_34[2] == *(byte *******)PTR___stack_chk_guard_004bf38c) {\n    return ppppbVar5;\n  }" statement_identifier : (if_statement "if (appppppbStack_34[2] == *(byte *******)PTR___stack_chk_guard_004bf38c) {\n    return ppppbVar5;\n  }" if (parenthesized_expression "(appppppbStack_34[2] == *(byte *******)PTR___stack_chk_guard_004bf38c)" ( (binary_expression "appppppbStack_34[2] == *(byte *******)PTR___stack_chk_guard_004bf38c" (subscript_expression "appppppbStack_34[2]" identifier [ number_literal ]) == (pointer_expression "*(byte *******)PTR___stack_chk_guard_004bf38c" * (cast_expression "(byte *******)PTR___stack_chk_guard_004bf38c" ( (type_descriptor "byte *******" type_identifier (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 ppppbVar5;\n  }" { (return_statement "return ppppbVar5;" return identifier ;) }))) (expression_statement "pcVar32 = FUN_00491b60;" (assignment_expression "pcVar32 = FUN_00491b60" identifier = identifier) ;) (expression_statement "ppppppbVar6 = appppppbStack_34[2];" (assignment_expression "ppppppbVar6 = appppppbStack_34[2]" identifier = (subscript_expression "appppppbStack_34[2]" identifier [ number_literal ])) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_004bf34c)();" (call_expression "(*(code *)PTR___stack_chk_fail_004bf34c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_004bf34c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_004bf34c" * (cast_expression "(code *)PTR___stack_chk_fail_004bf34c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "ppppbStack_84 = *(byte *****)PTR___stack_chk_guard_004bf38c;" (assignment_expression "ppppbStack_84 = *(byte *****)PTR___stack_chk_guard_004bf38c" identifier = (pointer_expression "*(byte *****)PTR___stack_chk_guard_004bf38c" * (cast_expression "(byte *****)PTR___stack_chk_guard_004bf38c" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier))) ;) (expression_statement "pppppbVar31 = *ppppppbVar6;" (assignment_expression "pppppbVar31 = *ppppppbVar6" identifier = (pointer_expression "*ppppppbVar6" * identifier)) ;) (if_statement "if (pppppbVar31[0x17] == (byte ****)0x1) {\n    uVar29 = (uint)((int)ppppppbVar6[3] << 9) >> 0x1f;\n  }\n  else {\n    uVar29 = 0;\n  }" if (parenthesized_expression "(pppppbVar31[0x17] == (byte ****)0x1)" ( (binary_expression "pppppbVar31[0x17] == (byte ****)0x1" (subscript_expression "pppppbVar31[0x17]" identifier [ number_literal ]) == (cast_expression "(byte ****)0x1" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (compound_statement "{\n    uVar29 = (uint)((int)ppppppbVar6[3] << 9) >> 0x1f;\n  }" { (expression_statement "uVar29 = (uint)((int)ppppppbVar6[3] << 9) >> 0x1f;" (assignment_expression "uVar29 = (uint)((int)ppppppbVar6[3] << 9) >> 0x1f" identifier = (binary_expression "(uint)((int)ppppppbVar6[3] << 9) >> 0x1f" (call_expression "(uint)((int)ppppppbVar6[3] << 9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)ppppppbVar6[3] << 9)" ( (binary_expression "(int)ppppppbVar6[3] << 9" (cast_expression "(int)ppppppbVar6[3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppppppbVar6[3]" identifier [ number_literal ])) << number_literal) ))) >> number_literal)) ;) }) (else_clause "else {\n    uVar29 = 0;\n  }" else (compound_statement "{\n    uVar29 = 0;\n  }" { (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" identifier = number_literal) ;) }))) (expression_statement "ppppppbVar13 = ppppppbVar6;" (assignment_expression "ppppppbVar13 = ppppppbVar6" identifier = identifier) ;) (expression_statement "pppppppbVar20 = pppppppbVar18;" (assignment_expression "pppppppbVar20 = pppppppbVar18" identifier = identifier) ;) (expression_statement "ppppppbVar21 = ppppppbVar22;" (assignment_expression "ppppppbVar21 = ppppppbVar22" identifier = identifier) ;) (expression_statement "piStack_80 = param_1;" (assignment_expression "piStack_80 = param_1" identifier = identifier) ;) (expression_statement "iStack_7c = iVar24;" (assignment_expression "iStack_7c = iVar24" identifier = identifier) ;) (expression_statement "pppppppbStack_78 = param_2;" (assignment_expression "pppppppbStack_78 = param_2" identifier = identifier) ;) (expression_statement "ppppppbStack_74 = param_3;" (assignment_expression "ppppppbStack_74 = param_3" identifier = identifier) ;) (expression_statement "pppppppbStack_70 = unaff_s4;" (assignment_expression "pppppppbStack_70 = unaff_s4" identifier = identifier) ;) (expression_statement "pppppppbStack_6c = unaff_s5;" (assignment_expression "pppppppbStack_6c = unaff_s5" identifier = identifier) ;) (expression_statement "pppppppbStack_68 = unaff_s6;" (assignment_expression "pppppppbStack_68 = unaff_s6" identifier = identifier) ;) (expression_statement "pppppppbStack_64 = unaff_s7;" (assignment_expression "pppppppbStack_64 = unaff_s7" identifier = identifier) ;) (expression_statement "piStack_60 = unaff_s8;" (assignment_expression "piStack_60 = unaff_s8" identifier = identifier) ;) (expression_statement "pcStack_5c = pcVar32;" (assignment_expression "pcStack_5c = pcVar32" identifier = identifier) ;) (if_statement "if (0 < (int)pppppppbVar18[2]) {\n    iStack_1a8 = 0;\n    do {\n      pppppbVar23 = pppppppbVar18[3][iStack_1a8];\n      ppppppbVar7 = (byte ******)((int)pppppbVar23 * 8);\n      ppppbVar5 = *pppppbVar31 + (int)pppppbVar23 * 2;\n      ppppppbVar13 = (byte ******)(uint)*(byte *)(ppppbVar5 + 1);\n      pppppppbVar20 = (byte *******)&DAT_00000001;\n      if (ppppppbVar13 == (byte ******)&DAT_00000001) {\n        uVar30 = (uint)*(byte *)ppppbVar5;\n        *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        if (uVar29 != 0) {\n          if (uVar30 + 0x80 < 0x180) {\n            piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n          }\n          *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        }\n        if (((int)ppppppbVar6[3] << 9 < 0) &&\n           (ppppppbVar13 = ppppppbVar7, 1 < (int)pppppbVar31[0x17])) {\n          bStack_184 = *(byte *)(*pppppbVar31 + (int)pppppbVar23 * 2);\n          if ((byte ****)((int)pppppbVar23 + 1U) < pppppbVar31[2]) {\n            ppppbVar5 = (byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2));\n            ppppppbVar7 = ppppppbVar7 + 4;\n            if (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400) {\n              puVar15 = auStack_183;\n              do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar14 = auStack_183;\n            }\n          }\n          else {\n            puVar14 = auStack_183;\n          }\n          pppppbStack_18c = (byte *****)0x0;\n          uStack_188 = 0;\n          pppppppbVar20 = (byte *******)&bStack_184;\n          iVar11 = -(int)pppppppbVar20;\n          ppppppbVar13 = (byte ******)&ppppppbStack_190;\n          ppppppbVar21 = (byte ******)(puVar14 + iVar11);\n          ppppppbVar7 = (byte ******)(*(code *)PTR_mbrtowc_004bf2ec)();\n          if ((byte ******)(puVar14 + iVar11) == ppppppbVar7) {\n            pppppppbVar20 = (byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190);\n            ppppppbVar21 = &pppppbStack_18c;\n            ppppppbVar13 = (byte ******)&bStack_184;\n            iVar11 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar11 != -1) {\n              *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n            }\n          }\n        }\n      }\n      else {\n        pppppppbVar20 = (byte *******)&DAT_00000006;\n        if (ppppppbVar13 == (byte ******)0x3) {\n          iStack_1ac = 0;\n          iVar11 = 0;\n          do {\n            uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac);\n            uVar30 = 0;\n            iVar24 = iVar11;\n            do {\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            } while (uVar30 != 0x20);\n            iVar11 = iVar11 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar11 != 0x100);\n        }\n        else if (ppppppbVar13 == (byte ******)&DAT_00000006) {\n          pppbVar25 = *ppppbVar5;\n          if (((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))) {\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }\n          else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }\n          if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }\n        }\n      }\n      iStack_1a8 = iStack_1a8 + 1;\n    } while (iStack_1a8 < (int)pppppppbVar18[2]);\n  }" if (parenthesized_expression "(0 < (int)pppppppbVar18[2])" ( (binary_expression "0 < (int)pppppppbVar18[2]" number_literal < (cast_expression "(int)pppppppbVar18[2]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppbVar18[2]" identifier [ number_literal ]))) )) (compound_statement "{\n    iStack_1a8 = 0;\n    do {\n      pppppbVar23 = pppppppbVar18[3][iStack_1a8];\n      ppppppbVar7 = (byte ******)((int)pppppbVar23 * 8);\n      ppppbVar5 = *pppppbVar31 + (int)pppppbVar23 * 2;\n      ppppppbVar13 = (byte ******)(uint)*(byte *)(ppppbVar5 + 1);\n      pppppppbVar20 = (byte *******)&DAT_00000001;\n      if (ppppppbVar13 == (byte ******)&DAT_00000001) {\n        uVar30 = (uint)*(byte *)ppppbVar5;\n        *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        if (uVar29 != 0) {\n          if (uVar30 + 0x80 < 0x180) {\n            piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n          }\n          *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        }\n        if (((int)ppppppbVar6[3] << 9 < 0) &&\n           (ppppppbVar13 = ppppppbVar7, 1 < (int)pppppbVar31[0x17])) {\n          bStack_184 = *(byte *)(*pppppbVar31 + (int)pppppbVar23 * 2);\n          if ((byte ****)((int)pppppbVar23 + 1U) < pppppbVar31[2]) {\n            ppppbVar5 = (byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2));\n            ppppppbVar7 = ppppppbVar7 + 4;\n            if (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400) {\n              puVar15 = auStack_183;\n              do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar14 = auStack_183;\n            }\n          }\n          else {\n            puVar14 = auStack_183;\n          }\n          pppppbStack_18c = (byte *****)0x0;\n          uStack_188 = 0;\n          pppppppbVar20 = (byte *******)&bStack_184;\n          iVar11 = -(int)pppppppbVar20;\n          ppppppbVar13 = (byte ******)&ppppppbStack_190;\n          ppppppbVar21 = (byte ******)(puVar14 + iVar11);\n          ppppppbVar7 = (byte ******)(*(code *)PTR_mbrtowc_004bf2ec)();\n          if ((byte ******)(puVar14 + iVar11) == ppppppbVar7) {\n            pppppppbVar20 = (byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190);\n            ppppppbVar21 = &pppppbStack_18c;\n            ppppppbVar13 = (byte ******)&bStack_184;\n            iVar11 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar11 != -1) {\n              *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n            }\n          }\n        }\n      }\n      else {\n        pppppppbVar20 = (byte *******)&DAT_00000006;\n        if (ppppppbVar13 == (byte ******)0x3) {\n          iStack_1ac = 0;\n          iVar11 = 0;\n          do {\n            uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac);\n            uVar30 = 0;\n            iVar24 = iVar11;\n            do {\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            } while (uVar30 != 0x20);\n            iVar11 = iVar11 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar11 != 0x100);\n        }\n        else if (ppppppbVar13 == (byte ******)&DAT_00000006) {\n          pppbVar25 = *ppppbVar5;\n          if (((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))) {\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }\n          else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }\n          if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }\n        }\n      }\n      iStack_1a8 = iStack_1a8 + 1;\n    } while (iStack_1a8 < (int)pppppppbVar18[2]);\n  }" { (expression_statement "iStack_1a8 = 0;" (assignment_expression "iStack_1a8 = 0" identifier = number_literal) ;) (do_statement "do {\n      pppppbVar23 = pppppppbVar18[3][iStack_1a8];\n      ppppppbVar7 = (byte ******)((int)pppppbVar23 * 8);\n      ppppbVar5 = *pppppbVar31 + (int)pppppbVar23 * 2;\n      ppppppbVar13 = (byte ******)(uint)*(byte *)(ppppbVar5 + 1);\n      pppppppbVar20 = (byte *******)&DAT_00000001;\n      if (ppppppbVar13 == (byte ******)&DAT_00000001) {\n        uVar30 = (uint)*(byte *)ppppbVar5;\n        *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        if (uVar29 != 0) {\n          if (uVar30 + 0x80 < 0x180) {\n            piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n          }\n          *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        }\n        if (((int)ppppppbVar6[3] << 9 < 0) &&\n           (ppppppbVar13 = ppppppbVar7, 1 < (int)pppppbVar31[0x17])) {\n          bStack_184 = *(byte *)(*pppppbVar31 + (int)pppppbVar23 * 2);\n          if ((byte ****)((int)pppppbVar23 + 1U) < pppppbVar31[2]) {\n            ppppbVar5 = (byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2));\n            ppppppbVar7 = ppppppbVar7 + 4;\n            if (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400) {\n              puVar15 = auStack_183;\n              do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar14 = auStack_183;\n            }\n          }\n          else {\n            puVar14 = auStack_183;\n          }\n          pppppbStack_18c = (byte *****)0x0;\n          uStack_188 = 0;\n          pppppppbVar20 = (byte *******)&bStack_184;\n          iVar11 = -(int)pppppppbVar20;\n          ppppppbVar13 = (byte ******)&ppppppbStack_190;\n          ppppppbVar21 = (byte ******)(puVar14 + iVar11);\n          ppppppbVar7 = (byte ******)(*(code *)PTR_mbrtowc_004bf2ec)();\n          if ((byte ******)(puVar14 + iVar11) == ppppppbVar7) {\n            pppppppbVar20 = (byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190);\n            ppppppbVar21 = &pppppbStack_18c;\n            ppppppbVar13 = (byte ******)&bStack_184;\n            iVar11 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar11 != -1) {\n              *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n            }\n          }\n        }\n      }\n      else {\n        pppppppbVar20 = (byte *******)&DAT_00000006;\n        if (ppppppbVar13 == (byte ******)0x3) {\n          iStack_1ac = 0;\n          iVar11 = 0;\n          do {\n            uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac);\n            uVar30 = 0;\n            iVar24 = iVar11;\n            do {\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            } while (uVar30 != 0x20);\n            iVar11 = iVar11 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar11 != 0x100);\n        }\n        else if (ppppppbVar13 == (byte ******)&DAT_00000006) {\n          pppbVar25 = *ppppbVar5;\n          if (((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))) {\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }\n          else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }\n          if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }\n        }\n      }\n      iStack_1a8 = iStack_1a8 + 1;\n    } while (iStack_1a8 < (int)pppppppbVar18[2]);" do (compound_statement "{\n      pppppbVar23 = pppppppbVar18[3][iStack_1a8];\n      ppppppbVar7 = (byte ******)((int)pppppbVar23 * 8);\n      ppppbVar5 = *pppppbVar31 + (int)pppppbVar23 * 2;\n      ppppppbVar13 = (byte ******)(uint)*(byte *)(ppppbVar5 + 1);\n      pppppppbVar20 = (byte *******)&DAT_00000001;\n      if (ppppppbVar13 == (byte ******)&DAT_00000001) {\n        uVar30 = (uint)*(byte *)ppppbVar5;\n        *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        if (uVar29 != 0) {\n          if (uVar30 + 0x80 < 0x180) {\n            piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n          }\n          *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        }\n        if (((int)ppppppbVar6[3] << 9 < 0) &&\n           (ppppppbVar13 = ppppppbVar7, 1 < (int)pppppbVar31[0x17])) {\n          bStack_184 = *(byte *)(*pppppbVar31 + (int)pppppbVar23 * 2);\n          if ((byte ****)((int)pppppbVar23 + 1U) < pppppbVar31[2]) {\n            ppppbVar5 = (byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2));\n            ppppppbVar7 = ppppppbVar7 + 4;\n            if (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400) {\n              puVar15 = auStack_183;\n              do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar14 = auStack_183;\n            }\n          }\n          else {\n            puVar14 = auStack_183;\n          }\n          pppppbStack_18c = (byte *****)0x0;\n          uStack_188 = 0;\n          pppppppbVar20 = (byte *******)&bStack_184;\n          iVar11 = -(int)pppppppbVar20;\n          ppppppbVar13 = (byte ******)&ppppppbStack_190;\n          ppppppbVar21 = (byte ******)(puVar14 + iVar11);\n          ppppppbVar7 = (byte ******)(*(code *)PTR_mbrtowc_004bf2ec)();\n          if ((byte ******)(puVar14 + iVar11) == ppppppbVar7) {\n            pppppppbVar20 = (byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190);\n            ppppppbVar21 = &pppppbStack_18c;\n            ppppppbVar13 = (byte ******)&bStack_184;\n            iVar11 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar11 != -1) {\n              *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n            }\n          }\n        }\n      }\n      else {\n        pppppppbVar20 = (byte *******)&DAT_00000006;\n        if (ppppppbVar13 == (byte ******)0x3) {\n          iStack_1ac = 0;\n          iVar11 = 0;\n          do {\n            uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac);\n            uVar30 = 0;\n            iVar24 = iVar11;\n            do {\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            } while (uVar30 != 0x20);\n            iVar11 = iVar11 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar11 != 0x100);\n        }\n        else if (ppppppbVar13 == (byte ******)&DAT_00000006) {\n          pppbVar25 = *ppppbVar5;\n          if (((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))) {\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }\n          else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }\n          if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }\n        }\n      }\n      iStack_1a8 = iStack_1a8 + 1;\n    }" { (expression_statement "pppppbVar23 = pppppppbVar18[3][iStack_1a8];" (assignment_expression "pppppbVar23 = pppppppbVar18[3][iStack_1a8]" identifier = (subscript_expression "pppppppbVar18[3][iStack_1a8]" (subscript_expression "pppppppbVar18[3]" identifier [ number_literal ]) [ identifier ])) ;) (expression_statement "ppppppbVar7 = (byte ******)((int)pppppbVar23 * 8);" (assignment_expression "ppppppbVar7 = (byte ******)((int)pppppbVar23 * 8)" identifier = (cast_expression "(byte ******)((int)pppppbVar23 * 8)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)pppppbVar23 * 8)" ( (binary_expression "(int)pppppbVar23 * 8" (cast_expression "(int)pppppbVar23" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "ppppbVar5 = *pppppbVar31 + (int)pppppbVar23 * 2;" (assignment_expression "ppppbVar5 = *pppppbVar31 + (int)pppppbVar23 * 2" identifier = (binary_expression "*pppppbVar31 + (int)pppppbVar23 * 2" (pointer_expression "*pppppbVar31" * identifier) + (binary_expression "(int)pppppbVar23 * 2" (cast_expression "(int)pppppbVar23" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "ppppppbVar13 = (byte ******)(uint)*(byte *)(ppppbVar5 + 1);" (assignment_expression "ppppppbVar13 = (byte ******)(uint)*(byte *)(ppppbVar5 + 1)" identifier = (binary_expression "(byte ******)(uint)*(byte *)(ppppbVar5 + 1)" (cast_expression "(byte ******)(uint)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)(ppppbVar5 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppbVar5 + 1)" ( (binary_expression "ppppbVar5 + 1" identifier + number_literal) ))))) ;) (expression_statement "pppppppbVar20 = (byte *******)&DAT_00000001;" (assignment_expression "pppppppbVar20 = (byte *******)&DAT_00000001" identifier = (cast_expression "(byte *******)&DAT_00000001" ( (type_descriptor "byte *******" 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 "&DAT_00000001" & identifier))) ;) (if_statement "if (ppppppbVar13 == (byte ******)&DAT_00000001) {\n        uVar30 = (uint)*(byte *)ppppbVar5;\n        *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        if (uVar29 != 0) {\n          if (uVar30 + 0x80 < 0x180) {\n            piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n          }\n          *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        }\n        if (((int)ppppppbVar6[3] << 9 < 0) &&\n           (ppppppbVar13 = ppppppbVar7, 1 < (int)pppppbVar31[0x17])) {\n          bStack_184 = *(byte *)(*pppppbVar31 + (int)pppppbVar23 * 2);\n          if ((byte ****)((int)pppppbVar23 + 1U) < pppppbVar31[2]) {\n            ppppbVar5 = (byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2));\n            ppppppbVar7 = ppppppbVar7 + 4;\n            if (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400) {\n              puVar15 = auStack_183;\n              do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar14 = auStack_183;\n            }\n          }\n          else {\n            puVar14 = auStack_183;\n          }\n          pppppbStack_18c = (byte *****)0x0;\n          uStack_188 = 0;\n          pppppppbVar20 = (byte *******)&bStack_184;\n          iVar11 = -(int)pppppppbVar20;\n          ppppppbVar13 = (byte ******)&ppppppbStack_190;\n          ppppppbVar21 = (byte ******)(puVar14 + iVar11);\n          ppppppbVar7 = (byte ******)(*(code *)PTR_mbrtowc_004bf2ec)();\n          if ((byte ******)(puVar14 + iVar11) == ppppppbVar7) {\n            pppppppbVar20 = (byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190);\n            ppppppbVar21 = &pppppbStack_18c;\n            ppppppbVar13 = (byte ******)&bStack_184;\n            iVar11 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar11 != -1) {\n              *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n            }\n          }\n        }\n      }\n      else {\n        pppppppbVar20 = (byte *******)&DAT_00000006;\n        if (ppppppbVar13 == (byte ******)0x3) {\n          iStack_1ac = 0;\n          iVar11 = 0;\n          do {\n            uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac);\n            uVar30 = 0;\n            iVar24 = iVar11;\n            do {\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            } while (uVar30 != 0x20);\n            iVar11 = iVar11 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar11 != 0x100);\n        }\n        else if (ppppppbVar13 == (byte ******)&DAT_00000006) {\n          pppbVar25 = *ppppbVar5;\n          if (((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))) {\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }\n          else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }\n          if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }\n        }\n      }" if (parenthesized_expression "(ppppppbVar13 == (byte ******)&DAT_00000001)" ( (binary_expression "ppppppbVar13 == (byte ******)&DAT_00000001" identifier == (cast_expression "(byte ******)&DAT_00000001" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (pointer_expression "&DAT_00000001" & identifier))) )) (compound_statement "{\n        uVar30 = (uint)*(byte *)ppppbVar5;\n        *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        if (uVar29 != 0) {\n          if (uVar30 + 0x80 < 0x180) {\n            piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n          }\n          *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        }\n        if (((int)ppppppbVar6[3] << 9 < 0) &&\n           (ppppppbVar13 = ppppppbVar7, 1 < (int)pppppbVar31[0x17])) {\n          bStack_184 = *(byte *)(*pppppbVar31 + (int)pppppbVar23 * 2);\n          if ((byte ****)((int)pppppbVar23 + 1U) < pppppbVar31[2]) {\n            ppppbVar5 = (byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2));\n            ppppppbVar7 = ppppppbVar7 + 4;\n            if (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400) {\n              puVar15 = auStack_183;\n              do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar14 = auStack_183;\n            }\n          }\n          else {\n            puVar14 = auStack_183;\n          }\n          pppppbStack_18c = (byte *****)0x0;\n          uStack_188 = 0;\n          pppppppbVar20 = (byte *******)&bStack_184;\n          iVar11 = -(int)pppppppbVar20;\n          ppppppbVar13 = (byte ******)&ppppppbStack_190;\n          ppppppbVar21 = (byte ******)(puVar14 + iVar11);\n          ppppppbVar7 = (byte ******)(*(code *)PTR_mbrtowc_004bf2ec)();\n          if ((byte ******)(puVar14 + iVar11) == ppppppbVar7) {\n            pppppppbVar20 = (byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190);\n            ppppppbVar21 = &pppppbStack_18c;\n            ppppppbVar13 = (byte ******)&bStack_184;\n            iVar11 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar11 != -1) {\n              *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n            }\n          }\n        }\n      }" { (expression_statement "uVar30 = (uint)*(byte *)ppppbVar5;" (assignment_expression "uVar30 = (uint)*(byte *)ppppbVar5" identifier = (binary_expression "(uint)*(byte *)ppppbVar5" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)ppppbVar5" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;" (assignment_expression "*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1" (pointer_expression "*(undefined1 *)((int)ppppppbVar22 + uVar30)" * (cast_expression "(undefined1 *)((int)ppppppbVar22 + uVar30)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppbVar22 + uVar30)" ( (binary_expression "(int)ppppppbVar22 + uVar30" (cast_expression "(int)ppppppbVar22" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (if_statement "if (uVar29 != 0) {\n          if (uVar30 + 0x80 < 0x180) {\n            piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n          }\n          *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        }" if (parenthesized_expression "(uVar29 != 0)" ( (binary_expression "uVar29 != 0" identifier != number_literal) )) (compound_statement "{\n          if (uVar30 + 0x80 < 0x180) {\n            piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n          }\n          *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        }" { (if_statement "if (uVar30 + 0x80 < 0x180) {\n            piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n          }" if (parenthesized_expression "(uVar30 + 0x80 < 0x180)" ( (binary_expression "uVar30 + 0x80 < 0x180" (binary_expression "uVar30 + 0x80" identifier + number_literal) < number_literal) )) (compound_statement "{\n            piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n          }" { (expression_statement "piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();" (assignment_expression "piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_tolower_loc_004bf16c)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_004bf16c)" ( (pointer_expression "*(code *)PTR___ctype_tolower_loc_004bf16c" * (cast_expression "(code *)PTR___ctype_tolower_loc_004bf16c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar30 = *(uint *)(*piVar9 + uVar30 * 4);" (assignment_expression "uVar30 = *(uint *)(*piVar9 + uVar30 * 4)" identifier = (pointer_expression "*(uint *)(*piVar9 + uVar30 * 4)" * (cast_expression "(uint *)(*piVar9 + uVar30 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar9 + uVar30 * 4)" ( (binary_expression "*piVar9 + uVar30 * 4" (pointer_expression "*piVar9" * identifier) + (binary_expression "uVar30 * 4" identifier * number_literal)) ))))) ;) })) (expression_statement "*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;" (assignment_expression "*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1" (pointer_expression "*(undefined1 *)((int)ppppppbVar22 + uVar30)" * (cast_expression "(undefined1 *)((int)ppppppbVar22 + uVar30)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppbVar22 + uVar30)" ( (binary_expression "(int)ppppppbVar22 + uVar30" (cast_expression "(int)ppppppbVar22" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) })) (if_statement "if (((int)ppppppbVar6[3] << 9 < 0) &&\n           (ppppppbVar13 = ppppppbVar7, 1 < (int)pppppbVar31[0x17])) {\n          bStack_184 = *(byte *)(*pppppbVar31 + (int)pppppbVar23 * 2);\n          if ((byte ****)((int)pppppbVar23 + 1U) < pppppbVar31[2]) {\n            ppppbVar5 = (byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2));\n            ppppppbVar7 = ppppppbVar7 + 4;\n            if (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400) {\n              puVar15 = auStack_183;\n              do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar14 = auStack_183;\n            }\n          }\n          else {\n            puVar14 = auStack_183;\n          }\n          pppppbStack_18c = (byte *****)0x0;\n          uStack_188 = 0;\n          pppppppbVar20 = (byte *******)&bStack_184;\n          iVar11 = -(int)pppppppbVar20;\n          ppppppbVar13 = (byte ******)&ppppppbStack_190;\n          ppppppbVar21 = (byte ******)(puVar14 + iVar11);\n          ppppppbVar7 = (byte ******)(*(code *)PTR_mbrtowc_004bf2ec)();\n          if ((byte ******)(puVar14 + iVar11) == ppppppbVar7) {\n            pppppppbVar20 = (byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190);\n            ppppppbVar21 = &pppppbStack_18c;\n            ppppppbVar13 = (byte ******)&bStack_184;\n            iVar11 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar11 != -1) {\n              *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n            }\n          }\n        }" if (parenthesized_expression "(((int)ppppppbVar6[3] << 9 < 0) &&\n           (ppppppbVar13 = ppppppbVar7, 1 < (int)pppppbVar31[0x17]))" ( (binary_expression "((int)ppppppbVar6[3] << 9 < 0) &&\n           (ppppppbVar13 = ppppppbVar7, 1 < (int)pppppbVar31[0x17])" (parenthesized_expression "((int)ppppppbVar6[3] << 9 < 0)" ( (binary_expression "(int)ppppppbVar6[3] << 9 < 0" (binary_expression "(int)ppppppbVar6[3] << 9" (cast_expression "(int)ppppppbVar6[3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppppppbVar6[3]" identifier [ number_literal ])) << number_literal) < number_literal) )) && (parenthesized_expression "(ppppppbVar13 = ppppppbVar7, 1 < (int)pppppbVar31[0x17])" ( (comma_expression "ppppppbVar13 = ppppppbVar7, 1 < (int)pppppbVar31[0x17]" (assignment_expression "ppppppbVar13 = ppppppbVar7" identifier = identifier) , (binary_expression "1 < (int)pppppbVar31[0x17]" number_literal < (cast_expression "(int)pppppbVar31[0x17]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppbVar31[0x17]" identifier [ number_literal ])))) ))) )) (compound_statement "{\n          bStack_184 = *(byte *)(*pppppbVar31 + (int)pppppbVar23 * 2);\n          if ((byte ****)((int)pppppbVar23 + 1U) < pppppbVar31[2]) {\n            ppppbVar5 = (byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2));\n            ppppppbVar7 = ppppppbVar7 + 4;\n            if (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400) {\n              puVar15 = auStack_183;\n              do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar14 = auStack_183;\n            }\n          }\n          else {\n            puVar14 = auStack_183;\n          }\n          pppppbStack_18c = (byte *****)0x0;\n          uStack_188 = 0;\n          pppppppbVar20 = (byte *******)&bStack_184;\n          iVar11 = -(int)pppppppbVar20;\n          ppppppbVar13 = (byte ******)&ppppppbStack_190;\n          ppppppbVar21 = (byte ******)(puVar14 + iVar11);\n          ppppppbVar7 = (byte ******)(*(code *)PTR_mbrtowc_004bf2ec)();\n          if ((byte ******)(puVar14 + iVar11) == ppppppbVar7) {\n            pppppppbVar20 = (byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190);\n            ppppppbVar21 = &pppppbStack_18c;\n            ppppppbVar13 = (byte ******)&bStack_184;\n            iVar11 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar11 != -1) {\n              *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n            }\n          }\n        }" { (expression_statement "bStack_184 = *(byte *)(*pppppbVar31 + (int)pppppbVar23 * 2);" (assignment_expression "bStack_184 = *(byte *)(*pppppbVar31 + (int)pppppbVar23 * 2)" identifier = (pointer_expression "*(byte *)(*pppppbVar31 + (int)pppppbVar23 * 2)" * (cast_expression "(byte *)(*pppppbVar31 + (int)pppppbVar23 * 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*pppppbVar31 + (int)pppppbVar23 * 2)" ( (binary_expression "*pppppbVar31 + (int)pppppbVar23 * 2" (pointer_expression "*pppppbVar31" * identifier) + (binary_expression "(int)pppppbVar23 * 2" (cast_expression "(int)pppppbVar23" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) (if_statement "if ((byte ****)((int)pppppbVar23 + 1U) < pppppbVar31[2]) {\n            ppppbVar5 = (byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2));\n            ppppppbVar7 = ppppppbVar7 + 4;\n            if (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400) {\n              puVar15 = auStack_183;\n              do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar14 = auStack_183;\n            }\n          }\n          else {\n            puVar14 = auStack_183;\n          }" if (parenthesized_expression "((byte ****)((int)pppppbVar23 + 1U) < pppppbVar31[2])" ( (binary_expression "(byte ****)((int)pppppbVar23 + 1U) < pppppbVar31[2]" (cast_expression "(byte ****)((int)pppppbVar23 + 1U)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)pppppbVar23 + 1U)" ( (binary_expression "(int)pppppbVar23 + 1U" (cast_expression "(int)pppppbVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) < (subscript_expression "pppppbVar31[2]" identifier [ number_literal ])) )) (compound_statement "{\n            ppppbVar5 = (byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2));\n            ppppppbVar7 = ppppppbVar7 + 4;\n            if (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400) {\n              puVar15 = auStack_183;\n              do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar14 = auStack_183;\n            }\n          }" { (expression_statement "ppppbVar5 = (byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2));" (assignment_expression "ppppbVar5 = (byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2))" identifier = (cast_expression "(byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2))" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)ppppppbVar7 + (int)(*pppppbVar31 + 2))" ( (binary_expression "(int)ppppppbVar7 + (int)(*pppppbVar31 + 2)" (cast_expression "(int)ppppppbVar7" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(*pppppbVar31 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(*pppppbVar31 + 2)" ( (binary_expression "*pppppbVar31 + 2" (pointer_expression "*pppppbVar31" * identifier) + number_literal) )))) )))) ;) (expression_statement "ppppppbVar7 = ppppppbVar7 + 4;" (assignment_expression "ppppppbVar7 = ppppppbVar7 + 4" identifier = (binary_expression "ppppppbVar7 + 4" identifier + number_literal)) ;) (if_statement "if (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400) {\n              puVar15 = auStack_183;\n              do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar14 = auStack_183;\n            }" if (parenthesized_expression "(((uint)ppppbVar5[1] & 0xff000400) == 0x1000400)" ( (binary_expression "((uint)ppppbVar5[1] & 0xff000400) == 0x1000400" (parenthesized_expression "((uint)ppppbVar5[1] & 0xff000400)" ( (binary_expression "(uint)ppppbVar5[1] & 0xff000400" (cast_expression "(uint)ppppbVar5[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppppbVar5[1]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (compound_statement "{\n              puVar15 = auStack_183;\n              do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);\n            }" { (expression_statement "puVar15 = auStack_183;" (assignment_expression "puVar15 = auStack_183" identifier = identifier) ;) (do_statement "do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);" do (compound_statement "{\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              }" { (expression_statement "puVar14 = puVar15 + 1;" (assignment_expression "puVar14 = puVar15 + 1" identifier = (binary_expression "puVar15 + 1" identifier + number_literal)) ;) (expression_statement "*puVar15 = *(undefined1 *)ppppbVar5;" (assignment_expression "*puVar15 = *(undefined1 *)ppppbVar5" (pointer_expression "*puVar15" * identifier) = (pointer_expression "*(undefined1 *)ppppbVar5" * (cast_expression "(undefined1 *)ppppbVar5" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;" if (parenthesized_expression "(pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184))" ( (binary_expression "pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)" (subscript_expression "pppppbVar31[2]" identifier [ number_literal ]) <= (binary_expression "puVar14 + ((int)pppppbVar23 - (int)&bStack_184)" identifier + (parenthesized_expression "((int)pppppbVar23 - (int)&bStack_184)" ( (binary_expression "(int)pppppbVar23 - (int)&bStack_184" (cast_expression "(int)pppppbVar23" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)&bStack_184" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&bStack_184" & identifier))) )))) )) (break_statement "break;" break ;)) (expression_statement "ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);" (assignment_expression "ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7)" identifier = (cast_expression "(byte ****)((int)*pppppbVar31 + (int)ppppppbVar7)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)*pppppbVar31 + (int)ppppppbVar7)" ( (binary_expression "(int)*pppppbVar31 + (int)ppppppbVar7" (cast_expression "(int)*pppppbVar31" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pppppbVar31" * identifier)) + (cast_expression "(int)ppppppbVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "ppppppbVar7 = ppppppbVar7 + 2;" (assignment_expression "ppppppbVar7 = ppppppbVar7 + 2" identifier = (binary_expression "ppppppbVar7 + 2" identifier + number_literal)) ;) (expression_statement "puVar15 = puVar14;" (assignment_expression "puVar15 = puVar14" identifier = identifier) ;) }) while (parenthesized_expression "(((uint)ppppbVar5[1] & 0xff000400) == 0x1000400)" ( (binary_expression "((uint)ppppbVar5[1] & 0xff000400) == 0x1000400" (parenthesized_expression "((uint)ppppbVar5[1] & 0xff000400)" ( (binary_expression "(uint)ppppbVar5[1] & 0xff000400" (cast_expression "(uint)ppppbVar5[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppppbVar5[1]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) ;) }) (else_clause "else {\n              puVar14 = auStack_183;\n            }" else (compound_statement "{\n              puVar14 = auStack_183;\n            }" { (expression_statement "puVar14 = auStack_183;" (assignment_expression "puVar14 = auStack_183" identifier = identifier) ;) }))) }) (else_clause "else {\n            puVar14 = auStack_183;\n          }" else (compound_statement "{\n            puVar14 = auStack_183;\n          }" { (expression_statement "puVar14 = auStack_183;" (assignment_expression "puVar14 = auStack_183" identifier = identifier) ;) }))) (expression_statement "pppppbStack_18c = (byte *****)0x0;" (assignment_expression "pppppbStack_18c = (byte *****)0x0" identifier = (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (expression_statement "uStack_188 = 0;" (assignment_expression "uStack_188 = 0" identifier = number_literal) ;) (expression_statement "pppppppbVar20 = (byte *******)&bStack_184;" (assignment_expression "pppppppbVar20 = (byte *******)&bStack_184" identifier = (cast_expression "(byte *******)&bStack_184" ( (type_descriptor "byte *******" 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 "&bStack_184" & identifier))) ;) (expression_statement "iVar11 = -(int)pppppppbVar20;" (assignment_expression "iVar11 = -(int)pppppppbVar20" identifier = (unary_expression "-(int)pppppppbVar20" - (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "ppppppbVar13 = (byte ******)&ppppppbStack_190;" (assignment_expression "ppppppbVar13 = (byte ******)&ppppppbStack_190" identifier = (cast_expression "(byte ******)&ppppppbStack_190" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (pointer_expression "&ppppppbStack_190" & identifier))) ;) (expression_statement "ppppppbVar21 = (byte ******)(puVar14 + iVar11);" (assignment_expression "ppppppbVar21 = (byte ******)(puVar14 + iVar11)" identifier = (cast_expression "(byte ******)(puVar14 + iVar11)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(puVar14 + iVar11)" ( (binary_expression "puVar14 + iVar11" identifier + identifier) )))) ;) (expression_statement "ppppppbVar7 = (byte ******)(*(code *)PTR_mbrtowc_004bf2ec)();" (assignment_expression "ppppppbVar7 = (byte ******)(*(code *)PTR_mbrtowc_004bf2ec)()" identifier = (cast_expression "(byte ******)(*(code *)PTR_mbrtowc_004bf2ec)()" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(*(code *)PTR_mbrtowc_004bf2ec)()" (parenthesized_expression "(*(code *)PTR_mbrtowc_004bf2ec)" ( (pointer_expression "*(code *)PTR_mbrtowc_004bf2ec" * (cast_expression "(code *)PTR_mbrtowc_004bf2ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (if_statement "if ((byte ******)(puVar14 + iVar11) == ppppppbVar7) {\n            pppppppbVar20 = (byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190);\n            ppppppbVar21 = &pppppbStack_18c;\n            ppppppbVar13 = (byte ******)&bStack_184;\n            iVar11 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar11 != -1) {\n              *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n            }\n          }" if (parenthesized_expression "((byte ******)(puVar14 + iVar11) == ppppppbVar7)" ( (binary_expression "(byte ******)(puVar14 + iVar11) == ppppppbVar7" (cast_expression "(byte ******)(puVar14 + iVar11)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(puVar14 + iVar11)" ( (binary_expression "puVar14 + iVar11" identifier + identifier) ))) == identifier) )) (compound_statement "{\n            pppppppbVar20 = (byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190);\n            ppppppbVar21 = &pppppbStack_18c;\n            ppppppbVar13 = (byte ******)&bStack_184;\n            iVar11 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar11 != -1) {\n              *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n            }\n          }" { (expression_statement "pppppppbVar20 = (byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190);" (assignment_expression "pppppppbVar20 = (byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190)" identifier = (cast_expression "(byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190)" ( (type_descriptor "byte *******" 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 "(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190)" (parenthesized_expression "(*(code *)PTR_towlower_004bf37c)" ( (pointer_expression "*(code *)PTR_towlower_004bf37c" * (cast_expression "(code *)PTR_towlower_004bf37c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppppppbStack_190)" ( identifier ))))) ;) (expression_statement "ppppppbVar21 = &pppppbStack_18c;" (assignment_expression "ppppppbVar21 = &pppppbStack_18c" identifier = (pointer_expression "&pppppbStack_18c" & identifier)) ;) (expression_statement "ppppppbVar13 = (byte ******)&bStack_184;" (assignment_expression "ppppppbVar13 = (byte ******)&bStack_184" identifier = (cast_expression "(byte ******)&bStack_184" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (pointer_expression "&bStack_184" & identifier))) ;) (expression_statement "iVar11 = (*(code *)PTR_wcrtomb_004bf3dc)();" (assignment_expression "iVar11 = (*(code *)PTR_wcrtomb_004bf3dc)()" identifier = (call_expression "(*(code *)PTR_wcrtomb_004bf3dc)()" (parenthesized_expression "(*(code *)PTR_wcrtomb_004bf3dc)" ( (pointer_expression "*(code *)PTR_wcrtomb_004bf3dc" * (cast_expression "(code *)PTR_wcrtomb_004bf3dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar11 != -1) {\n              *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n            }" if (parenthesized_expression "(iVar11 != -1)" ( (binary_expression "iVar11 != -1" identifier != number_literal) )) (compound_statement "{\n              *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n            }" { (expression_statement "*(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;" (assignment_expression "*(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1" (pointer_expression "*(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184)" * (cast_expression "(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppbVar22 + (uint)bStack_184)" ( (binary_expression "(int)ppppppbVar22 + (uint)bStack_184" (cast_expression "(int)ppppppbVar22" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(uint)bStack_184" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) = number_literal) ;) })) })) })) }) (else_clause "else {\n        pppppppbVar20 = (byte *******)&DAT_00000006;\n        if (ppppppbVar13 == (byte ******)0x3) {\n          iStack_1ac = 0;\n          iVar11 = 0;\n          do {\n            uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac);\n            uVar30 = 0;\n            iVar24 = iVar11;\n            do {\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            } while (uVar30 != 0x20);\n            iVar11 = iVar11 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar11 != 0x100);\n        }\n        else if (ppppppbVar13 == (byte ******)&DAT_00000006) {\n          pppbVar25 = *ppppbVar5;\n          if (((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))) {\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }\n          else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }\n          if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }\n        }\n      }" else (compound_statement "{\n        pppppppbVar20 = (byte *******)&DAT_00000006;\n        if (ppppppbVar13 == (byte ******)0x3) {\n          iStack_1ac = 0;\n          iVar11 = 0;\n          do {\n            uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac);\n            uVar30 = 0;\n            iVar24 = iVar11;\n            do {\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            } while (uVar30 != 0x20);\n            iVar11 = iVar11 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar11 != 0x100);\n        }\n        else if (ppppppbVar13 == (byte ******)&DAT_00000006) {\n          pppbVar25 = *ppppbVar5;\n          if (((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))) {\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }\n          else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }\n          if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }\n        }\n      }" { (expression_statement "pppppppbVar20 = (byte *******)&DAT_00000006;" (assignment_expression "pppppppbVar20 = (byte *******)&DAT_00000006" identifier = (cast_expression "(byte *******)&DAT_00000006" ( (type_descriptor "byte *******" 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 "&DAT_00000006" & identifier))) ;) (if_statement "if (ppppppbVar13 == (byte ******)0x3) {\n          iStack_1ac = 0;\n          iVar11 = 0;\n          do {\n            uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac);\n            uVar30 = 0;\n            iVar24 = iVar11;\n            do {\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            } while (uVar30 != 0x20);\n            iVar11 = iVar11 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar11 != 0x100);\n        }\n        else if (ppppppbVar13 == (byte ******)&DAT_00000006) {\n          pppbVar25 = *ppppbVar5;\n          if (((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))) {\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }\n          else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }\n          if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }\n        }" if (parenthesized_expression "(ppppppbVar13 == (byte ******)0x3)" ( (binary_expression "ppppppbVar13 == (byte ******)0x3" identifier == (cast_expression "(byte ******)0x3" ( (type_descriptor "byte ******" 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          iStack_1ac = 0;\n          iVar11 = 0;\n          do {\n            uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac);\n            uVar30 = 0;\n            iVar24 = iVar11;\n            do {\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            } while (uVar30 != 0x20);\n            iVar11 = iVar11 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar11 != 0x100);\n        }" { (expression_statement "iStack_1ac = 0;" (assignment_expression "iStack_1ac = 0" identifier = number_literal) ;) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n            uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac);\n            uVar30 = 0;\n            iVar24 = iVar11;\n            do {\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            } while (uVar30 != 0x20);\n            iVar11 = iVar11 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar11 != 0x100);" do (compound_statement "{\n            uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac);\n            uVar30 = 0;\n            iVar24 = iVar11;\n            do {\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            } while (uVar30 != 0x20);\n            iVar11 = iVar11 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          }" { (expression_statement "uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac);" (assignment_expression "uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac)" identifier = (pointer_expression "*(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac)" * (cast_expression "(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac)" ( (binary_expression "(int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac" (cast_expression "(int)(*pppppbVar31)[(int)pppppbVar23 * 2]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "(*pppppbVar31)[(int)pppppbVar23 * 2]" (parenthesized_expression "(*pppppbVar31)" ( (pointer_expression "*pppppbVar31" * identifier) )) [ (binary_expression "(int)pppppbVar23 * 2" (cast_expression "(int)pppppbVar23" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ])) + identifier) ))))) ;) (expression_statement "uVar30 = 0;" (assignment_expression "uVar30 = 0" identifier = number_literal) ;) (expression_statement "iVar24 = iVar11;" (assignment_expression "iVar24 = iVar11" identifier = identifier) ;) (do_statement "do {\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            } while (uVar30 != 0x20);" do (compound_statement "{\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            }" { (if_statement "if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }" if (parenthesized_expression "(((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0))" ( (binary_expression "((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)" (parenthesized_expression "((uVar27 >> (uVar30 & 0x1f) & 1) != 0)" ( (binary_expression "(uVar27 >> (uVar30 & 0x1f) & 1) != 0" (parenthesized_expression "(uVar27 >> (uVar30 & 0x1f) & 1)" ( (binary_expression "uVar27 >> (uVar30 & 0x1f) & 1" (binary_expression "uVar27 >> (uVar30 & 0x1f)" identifier >> (parenthesized_expression "(uVar30 & 0x1f)" ( (binary_expression "uVar30 & 0x1f" identifier & number_literal) ))) & number_literal) )) != number_literal) )) && (parenthesized_expression "(*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)" ( (comma_expression "*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0" (assignment_expression "*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1" (pointer_expression "*(undefined1 *)((int)ppppppbVar22 + iVar24)" * (cast_expression "(undefined1 *)((int)ppppppbVar22 + iVar24)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppbVar22 + iVar24)" ( (binary_expression "(int)ppppppbVar22 + iVar24" (cast_expression "(int)ppppppbVar22" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) , (binary_expression "uVar29 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }" { (expression_statement "iVar8 = iVar24;" (assignment_expression "iVar8 = iVar24" identifier = identifier) ;) (if_statement "if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }" if (parenthesized_expression "(iVar24 + 0x80U < 0x180)" ( (binary_expression "iVar24 + 0x80U < 0x180" (binary_expression "iVar24 + 0x80U" identifier + number_literal) < number_literal) )) (compound_statement "{\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }" { (expression_statement "piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();" (assignment_expression "piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_tolower_loc_004bf16c)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_004bf16c)" ( (pointer_expression "*(code *)PTR___ctype_tolower_loc_004bf16c" * (cast_expression "(code *)PTR___ctype_tolower_loc_004bf16c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);" (assignment_expression "iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4)" identifier = (pointer_expression "*(int *)(*piVar9 + (uVar30 + iVar11) * 4)" * (cast_expression "(int *)(*piVar9 + (uVar30 + iVar11) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar9 + (uVar30 + iVar11) * 4)" ( (binary_expression "*piVar9 + (uVar30 + iVar11) * 4" (pointer_expression "*piVar9" * identifier) + (binary_expression "(uVar30 + iVar11) * 4" (parenthesized_expression "(uVar30 + iVar11)" ( (binary_expression "uVar30 + iVar11" identifier + identifier) )) * number_literal)) ))))) ;) })) (expression_statement "*(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;" (assignment_expression "*(undefined1 *)((int)ppppppbVar22 + iVar8) = 1" (pointer_expression "*(undefined1 *)((int)ppppppbVar22 + iVar8)" * (cast_expression "(undefined1 *)((int)ppppppbVar22 + iVar8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppbVar22 + iVar8)" ( (binary_expression "(int)ppppppbVar22 + iVar8" (cast_expression "(int)ppppppbVar22" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) })) (expression_statement "uVar30 = uVar30 + 1;" (assignment_expression "uVar30 = uVar30 + 1" identifier = (binary_expression "uVar30 + 1" identifier + number_literal)) ;) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar30 != 0x20)" ( (binary_expression "uVar30 != 0x20" identifier != number_literal) )) ;) (expression_statement "iVar11 = iVar11 + 0x20;" (assignment_expression "iVar11 = iVar11 + 0x20" identifier = (binary_expression "iVar11 + 0x20" identifier + number_literal)) ;) (expression_statement "iStack_1ac = iStack_1ac + 4;" (assignment_expression "iStack_1ac = iStack_1ac + 4" identifier = (binary_expression "iStack_1ac + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar11 != 0x100)" ( (binary_expression "iVar11 != 0x100" identifier != number_literal) )) ;) }) (else_clause "else if (ppppppbVar13 == (byte ******)&DAT_00000006) {\n          pppbVar25 = *ppppbVar5;\n          if (((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))) {\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }\n          else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }\n          if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }\n        }" else (if_statement "if (ppppppbVar13 == (byte ******)&DAT_00000006) {\n          pppbVar25 = *ppppbVar5;\n          if (((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))) {\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }\n          else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }\n          if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }\n        }" if (parenthesized_expression "(ppppppbVar13 == (byte ******)&DAT_00000006)" ( (binary_expression "ppppppbVar13 == (byte ******)&DAT_00000006" identifier == (cast_expression "(byte ******)&DAT_00000006" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (pointer_expression "&DAT_00000006" & identifier))) )) (compound_statement "{\n          pppbVar25 = *ppppbVar5;\n          if (((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))) {\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }\n          else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }\n        }" { (expression_statement "pppbVar25 = *ppppbVar5;" (assignment_expression "pppbVar25 = *ppppbVar5" identifier = (pointer_expression "*ppppbVar5" * identifier)) ;) (if_statement "if (((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))) {\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }\n          else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }" if (parenthesized_expression "(((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0))))" ( (binary_expression "((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))" (parenthesized_expression "((int)pppppbVar31[0x17] < 2)" ( (binary_expression "(int)pppppbVar31[0x17] < 2" (cast_expression "(int)pppppbVar31[0x17]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppbVar31[0x17]" identifier [ number_literal ])) < number_literal) )) || (parenthesized_expression "(((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))" ( (parenthesized_expression "((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0))" ( (binary_expression "(pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)" (parenthesized_expression "(pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4)))" ( (binary_expression "pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))" (binary_expression "pppbVar25[9] == (byte **)0x0" (subscript_expression "pppbVar25[9]" identifier [ number_literal ]) == (cast_expression "(byte **)0x0" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) && (parenthesized_expression "(-1 < *(char *)(pppbVar25 + 4))" ( (binary_expression "-1 < *(char *)(pppbVar25 + 4)" number_literal < (pointer_expression "*(char *)(pppbVar25 + 4)" * (cast_expression "(char *)(pppbVar25 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppbVar25 + 4)" ( (binary_expression "pppbVar25 + 4" identifier + number_literal) ))))) ))) )) && (parenthesized_expression "(pppbVar25[8] == (byte **)0x0)" ( (binary_expression "pppbVar25[8] == (byte **)0x0" (subscript_expression "pppbVar25[8]" identifier [ number_literal ]) == (cast_expression "(byte **)0x0" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ))) )) ))) )) (compound_statement "{\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }" if (parenthesized_expression "(0 < (int)pppbVar25[5])" ( (binary_expression "0 < (int)pppbVar25[5]" number_literal < (cast_expression "(int)pppbVar25[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppbVar25[5]" identifier [ number_literal ]))) )) (compound_statement "{\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }" { (do_statement "do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);" do (compound_statement "{\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              }" { (expression_statement "pppppbStack_18c = (byte *****)0x0;" (assignment_expression "pppppbStack_18c = (byte *****)0x0" identifier = (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (expression_statement "uStack_188 = 0;" (assignment_expression "uStack_188 = 0" identifier = number_literal) ;) (expression_statement "pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];" (assignment_expression "pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11]" identifier = (cast_expression "(byte *******)(*pppbVar25)[iVar11]" ( (type_descriptor "byte *******" 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 "(*pppbVar25)[iVar11]" (parenthesized_expression "(*pppbVar25)" ( (pointer_expression "*pppbVar25" * identifier) )) [ identifier ]))) ;) (expression_statement "ppppppbVar13 = (byte ******)&bStack_184;" (assignment_expression "ppppppbVar13 = (byte ******)&bStack_184" identifier = (cast_expression "(byte ******)&bStack_184" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (pointer_expression "&bStack_184" & identifier))) ;) (expression_statement "ppppppbVar21 = &pppppbStack_18c;" (assignment_expression "ppppppbVar21 = &pppppbStack_18c" identifier = (pointer_expression "&pppppbStack_18c" & identifier)) ;) (expression_statement "iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();" (assignment_expression "iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)()" identifier = (call_expression "(*(code *)PTR_wcrtomb_004bf3dc)()" (parenthesized_expression "(*(code *)PTR_wcrtomb_004bf3dc)" ( (pointer_expression "*(code *)PTR_wcrtomb_004bf3dc" * (cast_expression "(code *)PTR_wcrtomb_004bf3dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "uVar30 = (uint)bStack_184;" (assignment_expression "uVar30 = (uint)bStack_184" identifier = (cast_expression "(uint)bStack_184" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }" if (parenthesized_expression "((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   )" ( (binary_expression "(iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)" (parenthesized_expression "(iVar24 != -1)" ( (binary_expression "iVar24 != -1" identifier != number_literal) )) && (parenthesized_expression "(*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)" ( (comma_expression "*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0" (assignment_expression "*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1" (pointer_expression "*(undefined1 *)((int)ppppppbVar22 + uVar30)" * (cast_expression "(undefined1 *)((int)ppppppbVar22 + uVar30)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppbVar22 + uVar30)" ( (binary_expression "(int)ppppppbVar22 + uVar30" (cast_expression "(int)ppppppbVar22" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) , (binary_expression "uVar29 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }" { (if_statement "if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }" if (parenthesized_expression "(uVar30 + 0x80 < 0x180)" ( (binary_expression "uVar30 + 0x80 < 0x180" (binary_expression "uVar30 + 0x80" identifier + number_literal) < number_literal) )) (compound_statement "{\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }" { (expression_statement "piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();" (assignment_expression "piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_tolower_loc_004bf16c)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_004bf16c)" ( (pointer_expression "*(code *)PTR___ctype_tolower_loc_004bf16c" * (cast_expression "(code *)PTR___ctype_tolower_loc_004bf16c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar30 = *(uint *)(*piVar9 + uVar30 * 4);" (assignment_expression "uVar30 = *(uint *)(*piVar9 + uVar30 * 4)" identifier = (pointer_expression "*(uint *)(*piVar9 + uVar30 * 4)" * (cast_expression "(uint *)(*piVar9 + uVar30 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar9 + uVar30 * 4)" ( (binary_expression "*piVar9 + uVar30 * 4" (pointer_expression "*piVar9" * identifier) + (binary_expression "uVar30 * 4" identifier * number_literal)) ))))) ;) })) (expression_statement "*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;" (assignment_expression "*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1" (pointer_expression "*(undefined1 *)((int)ppppppbVar22 + uVar30)" * (cast_expression "(undefined1 *)((int)ppppppbVar22 + uVar30)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppbVar22 + uVar30)" ( (binary_expression "(int)ppppppbVar22 + uVar30" (cast_expression "(int)ppppppbVar22" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) })) (if_statement "if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }" if (parenthesized_expression "((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17]))" ( (binary_expression "(((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])" (parenthesized_expression "(((uint)ppppppbVar6[3] & 0x400000) != 0)" ( (binary_expression "((uint)ppppppbVar6[3] & 0x400000) != 0" (parenthesized_expression "((uint)ppppppbVar6[3] & 0x400000)" ( (binary_expression "(uint)ppppppbVar6[3] & 0x400000" (cast_expression "(uint)ppppppbVar6[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppppppbVar6[3]" identifier [ number_literal ])) & number_literal) )) != number_literal) )) && (parenthesized_expression "(1 < (int)pppppbVar31[0x17])" ( (binary_expression "1 < (int)pppppbVar31[0x17]" number_literal < (cast_expression "(int)pppppbVar31[0x17]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppbVar31[0x17]" identifier [ number_literal ]))) ))) )) (compound_statement "{\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }" { (expression_statement "pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);" (assignment_expression "pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11])" identifier = (cast_expression "(byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11])" ( (type_descriptor "byte *******" 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 "(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11])" (parenthesized_expression "(*(code *)PTR_towlower_004bf37c)" ( (pointer_expression "*(code *)PTR_towlower_004bf37c" * (cast_expression "(code *)PTR_towlower_004bf37c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((*pppbVar25)[iVar11])" ( (subscript_expression "(*pppbVar25)[iVar11]" (parenthesized_expression "(*pppbVar25)" ( (pointer_expression "*pppbVar25" * identifier) )) [ identifier ]) ))))) ;) (expression_statement "ppppppbVar13 = (byte ******)&bStack_184;" (assignment_expression "ppppppbVar13 = (byte ******)&bStack_184" identifier = (cast_expression "(byte ******)&bStack_184" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (pointer_expression "&bStack_184" & identifier))) ;) (expression_statement "ppppppbVar21 = &pppppbStack_18c;" (assignment_expression "ppppppbVar21 = &pppppbStack_18c" identifier = (pointer_expression "&pppppbStack_18c" & identifier)) ;) (expression_statement "iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();" (assignment_expression "iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)()" identifier = (call_expression "(*(code *)PTR_wcrtomb_004bf3dc)()" (parenthesized_expression "(*(code *)PTR_wcrtomb_004bf3dc)" ( (pointer_expression "*(code *)PTR_wcrtomb_004bf3dc" * (cast_expression "(code *)PTR_wcrtomb_004bf3dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }" if (parenthesized_expression "(iVar24 != -1)" ( (binary_expression "iVar24 != -1" identifier != number_literal) )) (compound_statement "{\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }" { (expression_statement "*(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;" (assignment_expression "*(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1" (pointer_expression "*(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184)" * (cast_expression "(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppbVar22 + (uint)bStack_184)" ( (binary_expression "(int)ppppppbVar22 + (uint)bStack_184" (cast_expression "(int)ppppppbVar22" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(uint)bStack_184" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) = number_literal) ;) })) })) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar11 < (int)pppbVar25[5])" ( (binary_expression "iVar11 < (int)pppbVar25[5]" identifier < (cast_expression "(int)pppbVar25[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppbVar25[5]" identifier [ number_literal ]))) )) ;) })) }) (else_clause "else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }" else (compound_statement "{\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }" { (expression_statement "ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);" (assignment_expression "ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff)" identifier = (cast_expression "(byte ******)((uint)ppppppbStack_190 & 0xffffff)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((uint)ppppppbStack_190 & 0xffffff)" ( (binary_expression "(uint)ppppppbStack_190 & 0xffffff" (cast_expression "(uint)ppppppbStack_190" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (do_statement "do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);" do (compound_statement "{\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            }" { (expression_statement "pppppbStack_18c = (byte *****)0x0;" (assignment_expression "pppppbStack_18c = (byte *****)0x0" identifier = (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (expression_statement "uStack_188 = 0;" (assignment_expression "uStack_188 = 0" identifier = number_literal) ;) (expression_statement "ppppppbVar21 = (byte ******)&DAT_00000001;" (assignment_expression "ppppppbVar21 = (byte ******)&DAT_00000001" identifier = (cast_expression "(byte ******)&DAT_00000001" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (pointer_expression "&DAT_00000001" & identifier))) ;) (expression_statement "ppppppbVar13 = (byte ******)0x0;" (assignment_expression "ppppppbVar13 = (byte ******)0x0" identifier = (cast_expression "(byte ******)0x0" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppbVar20 = &ppppppbStack_190;" (assignment_expression "pppppppbVar20 = &ppppppbStack_190" identifier = (pointer_expression "&ppppppbStack_190" & identifier)) ;) (expression_statement "iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();" (assignment_expression "iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)()" identifier = (call_expression "(*(code *)PTR_mbrtowc_004bf2ec)()" (parenthesized_expression "(*(code *)PTR_mbrtowc_004bf2ec)" ( (pointer_expression "*(code *)PTR_mbrtowc_004bf2ec" * (cast_expression "(code *)PTR_mbrtowc_004bf2ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }" if (parenthesized_expression "(iVar11 == -2)" ( (binary_expression "iVar11 == -2" identifier == number_literal) )) (compound_statement "{\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }" { (expression_statement "*(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;" (assignment_expression "*(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1" (pointer_expression "*(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_)" * (cast_expression "(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_)" ( (binary_expression "(int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_" (cast_expression "(int)ppppppbVar22" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(uint)ppppppbStack_190._0_1_" ( (type_descriptor "uint" type_identifier) ) (field_expression "ppppppbStack_190._0_1_" identifier . field_identifier))) )))) = number_literal) ;) })) (expression_statement "bVar1 = ppppppbStack_190._0_1_ != 0xff;" (assignment_expression "bVar1 = ppppppbStack_190._0_1_ != 0xff" identifier = (binary_expression "ppppppbStack_190._0_1_ != 0xff" (field_expression "ppppppbStack_190._0_1_" identifier . field_identifier) != number_literal)) ;) (expression_statement "ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);" (assignment_expression "ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_)" identifier = (cast_expression "(byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_)" identifier (argument_list "(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_)" ( (binary_expression "ppppppbStack_190._0_1_ + 1" (field_expression "ppppppbStack_190._0_1_" identifier . field_identifier) + number_literal) , (field_expression "ppppppbStack_190._1_3_" identifier . field_identifier) ))))) ;) }) while (parenthesized_expression "(bVar1)" ( identifier )) ;) }))) }) (else_clause "else {\n          if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }\n          if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }\n        }" else (compound_statement "{\n          if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }\n          if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }\n        }" { (if_statement "if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }" if (parenthesized_expression "(((uint)ppppppbVar13 & 0xfd) == 5)" ( (binary_expression "((uint)ppppppbVar13 & 0xfd) == 5" (parenthesized_expression "((uint)ppppppbVar13 & 0xfd)" ( (binary_expression "(uint)ppppppbVar13 & 0xfd" (cast_expression "(uint)ppppppbVar13" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }" { (expression_statement "ppppppbVar21 = (byte ******)0x100;" (assignment_expression "ppppppbVar21 = (byte ******)0x100" identifier = (cast_expression "(byte ******)0x100" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppbVar20 = (byte *******)&DAT_00000001;" (assignment_expression "pppppppbVar20 = (byte *******)&DAT_00000001" identifier = (cast_expression "(byte *******)&DAT_00000001" ( (type_descriptor "byte *******" 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 "&DAT_00000001" & identifier))) ;) (expression_statement "(*(code *)PTR_memset_004bf260)();" (call_expression "(*(code *)PTR_memset_004bf260)()" (parenthesized_expression "(*(code *)PTR_memset_004bf260)" ( (pointer_expression "*(code *)PTR_memset_004bf260" * (cast_expression "(code *)PTR_memset_004bf260" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "ppppppbVar13 = ppppppbVar22;" (assignment_expression "ppppppbVar13 = ppppppbVar22" identifier = identifier) ;) (break_statement "break;" break ;) })) (if_statement "if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }" if (parenthesized_expression "(ppppppbVar13 == (byte ******)0x2)" ( (binary_expression "ppppppbVar13 == (byte ******)0x2" identifier == (cast_expression "(byte ******)0x2" ( (type_descriptor "byte ******" 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            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }" { (expression_statement "ppppppbVar21 = (byte ******)0x100;" (assignment_expression "ppppppbVar21 = (byte ******)0x100" identifier = (cast_expression "(byte ******)0x100" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppbVar20 = (byte *******)&DAT_00000001;" (assignment_expression "pppppppbVar20 = (byte *******)&DAT_00000001" identifier = (cast_expression "(byte *******)&DAT_00000001" ( (type_descriptor "byte *******" 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 "&DAT_00000001" & identifier))) ;) (expression_statement "(*(code *)PTR_memset_004bf260)(ppppppbVar22);" (call_expression "(*(code *)PTR_memset_004bf260)(ppppppbVar22)" (parenthesized_expression "(*(code *)PTR_memset_004bf260)" ( (pointer_expression "*(code *)PTR_memset_004bf260" * (cast_expression "(code *)PTR_memset_004bf260" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppppppbVar22)" ( identifier ))) ;) (expression_statement "*(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;" (assignment_expression "*(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80" (pointer_expression "*(byte *)(ppppppbVar6 + 7)" * (cast_expression "(byte *)(ppppppbVar6 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppbVar6 + 7)" ( (binary_expression "ppppppbVar6 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80" (binary_expression "*(byte *)(ppppppbVar6 + 7) & 0x7f" (pointer_expression "*(byte *)(ppppppbVar6 + 7)" * (cast_expression "(byte *)(ppppppbVar6 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppbVar6 + 7)" ( (binary_expression "ppppppbVar6 + 7" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "ppppppbVar13 = ppppppbVar6;" (assignment_expression "ppppppbVar13 = ppppppbVar6" identifier = identifier) ;) (break_statement "break;" break ;) })) }))))) }))) (expression_statement "iStack_1a8 = iStack_1a8 + 1;" (assignment_expression "iStack_1a8 = iStack_1a8 + 1" identifier = (binary_expression "iStack_1a8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iStack_1a8 < (int)pppppppbVar18[2])" ( (binary_expression "iStack_1a8 < (int)pppppppbVar18[2]" identifier < (cast_expression "(int)pppppppbVar18[2]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppbVar18[2]" identifier [ number_literal ]))) )) ;) })) (if_statement "if (ppppbStack_84 == *(byte *****)PTR___stack_chk_guard_004bf38c) {\n    return *(byte *****)PTR___stack_chk_guard_004bf38c;\n  }" if (parenthesized_expression "(ppppbStack_84 == *(byte *****)PTR___stack_chk_guard_004bf38c)" ( (binary_expression "ppppbStack_84 == *(byte *****)PTR___stack_chk_guard_004bf38c" identifier == (pointer_expression "*(byte *****)PTR___stack_chk_guard_004bf38c" * (cast_expression "(byte *****)PTR___stack_chk_guard_004bf38c" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier))) )) (compound_statement "{\n    return *(byte *****)PTR___stack_chk_guard_004bf38c;\n  }" { (return_statement "return *(byte *****)PTR___stack_chk_guard_004bf38c;" return (pointer_expression "*(byte *****)PTR___stack_chk_guard_004bf38c" * (cast_expression "(byte *****)PTR___stack_chk_guard_004bf38c" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_004bf34c)();" (call_expression "(*(code *)PTR___stack_chk_fail_004bf34c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_004bf34c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_004bf34c" * (cast_expression "(code *)PTR___stack_chk_fail_004bf34c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "pppppbVar31 = ppppppbVar21[1];" (assignment_expression "pppppbVar31 = ppppppbVar21[1]" identifier = (subscript_expression "ppppppbVar21[1]" identifier [ number_literal ])) ;) (if_statement "if (pppppbVar31 == (byte *****)0x0) {\n    *ppppppbVar13 = (byte *****)0x0;\n  }\n  else {\n    if (0 < (int)pppppbVar31) {\n      pppppbVar23 = ppppppbVar21[2];\n      pppppbVar26 = pppppbVar23 + (int)pppppbVar31;\n      do {\n        ppppbVar5 = *pppppbVar23;\n        pppppbVar23 = pppppbVar23 + 1;\n        pppppbVar31 = (byte *****)((int)pppppbVar31 + (int)ppppbVar5);\n      } while (pppppbVar23 != pppppbVar26);\n    }\n    pppppbVar23 = pppppppbVar20[8][((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3];\n    if (0 < (int)pppppbVar23) {\n      pppppbVar26 = (pppppppbVar20[8] + ((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3)[2];\n      pppppbVar28 = (byte *****)0x0;\n      do {\n        ppppbVar5 = *pppppbVar26;\n        if ((pppppbVar31 == (byte *****)*ppppbVar5) &&\n           (iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21), iVar11 != 0)) {\n          return ppppbVar5;\n        }\n        pppppbVar28 = (byte *****)((int)pppppbVar28 + 1);\n        pppppbVar26 = pppppbVar26 + 1;\n      } while (pppppbVar23 != pppppbVar28);\n    }\n    ppppbVar5 = (byte ****)(*(code *)PTR_calloc_004bf160)(0x38,1);\n    if (ppppbVar5 != (byte ****)0x0) {\n      iVar11 = FUN_0048c08c(ppppbVar5 + 1,ppppppbVar21);\n      if (iVar11 == 0) {\n        ppppbVar5[10] = (byte ***)(ppppbVar5 + 1);\n        if (0 < (int)ppppppbVar21[1]) {\n          ppppppbVar22 = *pppppppbVar20;\n          pppppbVar23 = ppppppbVar21[2];\n          pppppbVar26 = pppppbVar23 + (int)ppppppbVar21[1];\n          do {\n            ppppbVar10 = *pppppbVar23;\n            cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1);\n            if (cVar2 == '\x01') {\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }\n            pppppbVar23 = pppppbVar23 + 1;\n          } while (pppppbVar23 != pppppbVar26);\n        }\n        iVar11 = FUN_0048b6d0(pppppppbVar20,ppppbVar5,pppppbVar31);\n        if (iVar11 == 0) {\n          return ppppbVar5;\n        }\n        FUN_0048e3e8(ppppbVar5);\n      }\n      else {\n        (*(code *)PTR_free_004bf39c)(ppppbVar5);\n      }\n    }\n    *ppppppbVar13 = (byte *****)0xc;\n  }" if (parenthesized_expression "(pppppbVar31 == (byte *****)0x0)" ( (binary_expression "pppppbVar31 == (byte *****)0x0" identifier == (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\n    *ppppppbVar13 = (byte *****)0x0;\n  }" { (expression_statement "*ppppppbVar13 = (byte *****)0x0;" (assignment_expression "*ppppppbVar13 = (byte *****)0x0" (pointer_expression "*ppppppbVar13" * identifier) = (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) }) (else_clause "else {\n    if (0 < (int)pppppbVar31) {\n      pppppbVar23 = ppppppbVar21[2];\n      pppppbVar26 = pppppbVar23 + (int)pppppbVar31;\n      do {\n        ppppbVar5 = *pppppbVar23;\n        pppppbVar23 = pppppbVar23 + 1;\n        pppppbVar31 = (byte *****)((int)pppppbVar31 + (int)ppppbVar5);\n      } while (pppppbVar23 != pppppbVar26);\n    }\n    pppppbVar23 = pppppppbVar20[8][((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3];\n    if (0 < (int)pppppbVar23) {\n      pppppbVar26 = (pppppppbVar20[8] + ((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3)[2];\n      pppppbVar28 = (byte *****)0x0;\n      do {\n        ppppbVar5 = *pppppbVar26;\n        if ((pppppbVar31 == (byte *****)*ppppbVar5) &&\n           (iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21), iVar11 != 0)) {\n          return ppppbVar5;\n        }\n        pppppbVar28 = (byte *****)((int)pppppbVar28 + 1);\n        pppppbVar26 = pppppbVar26 + 1;\n      } while (pppppbVar23 != pppppbVar28);\n    }\n    ppppbVar5 = (byte ****)(*(code *)PTR_calloc_004bf160)(0x38,1);\n    if (ppppbVar5 != (byte ****)0x0) {\n      iVar11 = FUN_0048c08c(ppppbVar5 + 1,ppppppbVar21);\n      if (iVar11 == 0) {\n        ppppbVar5[10] = (byte ***)(ppppbVar5 + 1);\n        if (0 < (int)ppppppbVar21[1]) {\n          ppppppbVar22 = *pppppppbVar20;\n          pppppbVar23 = ppppppbVar21[2];\n          pppppbVar26 = pppppbVar23 + (int)ppppppbVar21[1];\n          do {\n            ppppbVar10 = *pppppbVar23;\n            cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1);\n            if (cVar2 == '\x01') {\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }\n            pppppbVar23 = pppppbVar23 + 1;\n          } while (pppppbVar23 != pppppbVar26);\n        }\n        iVar11 = FUN_0048b6d0(pppppppbVar20,ppppbVar5,pppppbVar31);\n        if (iVar11 == 0) {\n          return ppppbVar5;\n        }\n        FUN_0048e3e8(ppppbVar5);\n      }\n      else {\n        (*(code *)PTR_free_004bf39c)(ppppbVar5);\n      }\n    }\n    *ppppppbVar13 = (byte *****)0xc;\n  }" else (compound_statement "{\n    if (0 < (int)pppppbVar31) {\n      pppppbVar23 = ppppppbVar21[2];\n      pppppbVar26 = pppppbVar23 + (int)pppppbVar31;\n      do {\n        ppppbVar5 = *pppppbVar23;\n        pppppbVar23 = pppppbVar23 + 1;\n        pppppbVar31 = (byte *****)((int)pppppbVar31 + (int)ppppbVar5);\n      } while (pppppbVar23 != pppppbVar26);\n    }\n    pppppbVar23 = pppppppbVar20[8][((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3];\n    if (0 < (int)pppppbVar23) {\n      pppppbVar26 = (pppppppbVar20[8] + ((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3)[2];\n      pppppbVar28 = (byte *****)0x0;\n      do {\n        ppppbVar5 = *pppppbVar26;\n        if ((pppppbVar31 == (byte *****)*ppppbVar5) &&\n           (iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21), iVar11 != 0)) {\n          return ppppbVar5;\n        }\n        pppppbVar28 = (byte *****)((int)pppppbVar28 + 1);\n        pppppbVar26 = pppppbVar26 + 1;\n      } while (pppppbVar23 != pppppbVar28);\n    }\n    ppppbVar5 = (byte ****)(*(code *)PTR_calloc_004bf160)(0x38,1);\n    if (ppppbVar5 != (byte ****)0x0) {\n      iVar11 = FUN_0048c08c(ppppbVar5 + 1,ppppppbVar21);\n      if (iVar11 == 0) {\n        ppppbVar5[10] = (byte ***)(ppppbVar5 + 1);\n        if (0 < (int)ppppppbVar21[1]) {\n          ppppppbVar22 = *pppppppbVar20;\n          pppppbVar23 = ppppppbVar21[2];\n          pppppbVar26 = pppppbVar23 + (int)ppppppbVar21[1];\n          do {\n            ppppbVar10 = *pppppbVar23;\n            cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1);\n            if (cVar2 == '\x01') {\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }\n            pppppbVar23 = pppppbVar23 + 1;\n          } while (pppppbVar23 != pppppbVar26);\n        }\n        iVar11 = FUN_0048b6d0(pppppppbVar20,ppppbVar5,pppppbVar31);\n        if (iVar11 == 0) {\n          return ppppbVar5;\n        }\n        FUN_0048e3e8(ppppbVar5);\n      }\n      else {\n        (*(code *)PTR_free_004bf39c)(ppppbVar5);\n      }\n    }\n    *ppppppbVar13 = (byte *****)0xc;\n  }" { (if_statement "if (0 < (int)pppppbVar31) {\n      pppppbVar23 = ppppppbVar21[2];\n      pppppbVar26 = pppppbVar23 + (int)pppppbVar31;\n      do {\n        ppppbVar5 = *pppppbVar23;\n        pppppbVar23 = pppppbVar23 + 1;\n        pppppbVar31 = (byte *****)((int)pppppbVar31 + (int)ppppbVar5);\n      } while (pppppbVar23 != pppppbVar26);\n    }" if (parenthesized_expression "(0 < (int)pppppbVar31)" ( (binary_expression "0 < (int)pppppbVar31" number_literal < (cast_expression "(int)pppppbVar31" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      pppppbVar23 = ppppppbVar21[2];\n      pppppbVar26 = pppppbVar23 + (int)pppppbVar31;\n      do {\n        ppppbVar5 = *pppppbVar23;\n        pppppbVar23 = pppppbVar23 + 1;\n        pppppbVar31 = (byte *****)((int)pppppbVar31 + (int)ppppbVar5);\n      } while (pppppbVar23 != pppppbVar26);\n    }" { (expression_statement "pppppbVar23 = ppppppbVar21[2];" (assignment_expression "pppppbVar23 = ppppppbVar21[2]" identifier = (subscript_expression "ppppppbVar21[2]" identifier [ number_literal ])) ;) (expression_statement "pppppbVar26 = pppppbVar23 + (int)pppppbVar31;" (assignment_expression "pppppbVar26 = pppppbVar23 + (int)pppppbVar31" identifier = (binary_expression "pppppbVar23 + (int)pppppbVar31" identifier + (cast_expression "(int)pppppbVar31" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (do_statement "do {\n        ppppbVar5 = *pppppbVar23;\n        pppppbVar23 = pppppbVar23 + 1;\n        pppppbVar31 = (byte *****)((int)pppppbVar31 + (int)ppppbVar5);\n      } while (pppppbVar23 != pppppbVar26);" do (compound_statement "{\n        ppppbVar5 = *pppppbVar23;\n        pppppbVar23 = pppppbVar23 + 1;\n        pppppbVar31 = (byte *****)((int)pppppbVar31 + (int)ppppbVar5);\n      }" { (expression_statement "ppppbVar5 = *pppppbVar23;" (assignment_expression "ppppbVar5 = *pppppbVar23" identifier = (pointer_expression "*pppppbVar23" * identifier)) ;) (expression_statement "pppppbVar23 = pppppbVar23 + 1;" (assignment_expression "pppppbVar23 = pppppbVar23 + 1" identifier = (binary_expression "pppppbVar23 + 1" identifier + number_literal)) ;) (expression_statement "pppppbVar31 = (byte *****)((int)pppppbVar31 + (int)ppppbVar5);" (assignment_expression "pppppbVar31 = (byte *****)((int)pppppbVar31 + (int)ppppbVar5)" identifier = (cast_expression "(byte *****)((int)pppppbVar31 + (int)ppppbVar5)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)pppppbVar31 + (int)ppppbVar5)" ( (binary_expression "(int)pppppbVar31 + (int)ppppbVar5" (cast_expression "(int)pppppbVar31" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)ppppbVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) }) while (parenthesized_expression "(pppppbVar23 != pppppbVar26)" ( (binary_expression "pppppbVar23 != pppppbVar26" identifier != identifier) )) ;) })) (expression_statement "pppppbVar23 = pppppppbVar20[8][((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3];" (assignment_expression "pppppbVar23 = pppppppbVar20[8][((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3]" identifier = (subscript_expression "pppppppbVar20[8][((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3]" (subscript_expression "pppppppbVar20[8]" identifier [ number_literal ]) [ (binary_expression "((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3" (parenthesized_expression "((uint)pppppbVar31 & (uint)pppppppbVar20[0x11])" ( (binary_expression "(uint)pppppbVar31 & (uint)pppppppbVar20[0x11]" (cast_expression "(uint)pppppbVar31" ( (type_descriptor "uint" type_identifier) ) identifier) & (cast_expression "(uint)pppppppbVar20[0x11]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppbVar20[0x11]" identifier [ number_literal ]))) )) * number_literal) ])) ;) (if_statement "if (0 < (int)pppppbVar23) {\n      pppppbVar26 = (pppppppbVar20[8] + ((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3)[2];\n      pppppbVar28 = (byte *****)0x0;\n      do {\n        ppppbVar5 = *pppppbVar26;\n        if ((pppppbVar31 == (byte *****)*ppppbVar5) &&\n           (iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21), iVar11 != 0)) {\n          return ppppbVar5;\n        }\n        pppppbVar28 = (byte *****)((int)pppppbVar28 + 1);\n        pppppbVar26 = pppppbVar26 + 1;\n      } while (pppppbVar23 != pppppbVar28);\n    }" if (parenthesized_expression "(0 < (int)pppppbVar23)" ( (binary_expression "0 < (int)pppppbVar23" number_literal < (cast_expression "(int)pppppbVar23" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      pppppbVar26 = (pppppppbVar20[8] + ((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3)[2];\n      pppppbVar28 = (byte *****)0x0;\n      do {\n        ppppbVar5 = *pppppbVar26;\n        if ((pppppbVar31 == (byte *****)*ppppbVar5) &&\n           (iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21), iVar11 != 0)) {\n          return ppppbVar5;\n        }\n        pppppbVar28 = (byte *****)((int)pppppbVar28 + 1);\n        pppppbVar26 = pppppbVar26 + 1;\n      } while (pppppbVar23 != pppppbVar28);\n    }" { (expression_statement "pppppbVar26 = (pppppppbVar20[8] + ((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3)[2];" (assignment_expression "pppppbVar26 = (pppppppbVar20[8] + ((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3)[2]" identifier = (subscript_expression "(pppppppbVar20[8] + ((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3)[2]" (parenthesized_expression "(pppppppbVar20[8] + ((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3)" ( (binary_expression "pppppppbVar20[8] + ((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3" (subscript_expression "pppppppbVar20[8]" identifier [ number_literal ]) + (binary_expression "((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3" (parenthesized_expression "((uint)pppppbVar31 & (uint)pppppppbVar20[0x11])" ( (binary_expression "(uint)pppppbVar31 & (uint)pppppppbVar20[0x11]" (cast_expression "(uint)pppppbVar31" ( (type_descriptor "uint" type_identifier) ) identifier) & (cast_expression "(uint)pppppppbVar20[0x11]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppbVar20[0x11]" identifier [ number_literal ]))) )) * number_literal)) )) [ number_literal ])) ;) (expression_statement "pppppbVar28 = (byte *****)0x0;" (assignment_expression "pppppbVar28 = (byte *****)0x0" identifier = (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (do_statement "do {\n        ppppbVar5 = *pppppbVar26;\n        if ((pppppbVar31 == (byte *****)*ppppbVar5) &&\n           (iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21), iVar11 != 0)) {\n          return ppppbVar5;\n        }\n        pppppbVar28 = (byte *****)((int)pppppbVar28 + 1);\n        pppppbVar26 = pppppbVar26 + 1;\n      } while (pppppbVar23 != pppppbVar28);" do (compound_statement "{\n        ppppbVar5 = *pppppbVar26;\n        if ((pppppbVar31 == (byte *****)*ppppbVar5) &&\n           (iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21), iVar11 != 0)) {\n          return ppppbVar5;\n        }\n        pppppbVar28 = (byte *****)((int)pppppbVar28 + 1);\n        pppppbVar26 = pppppbVar26 + 1;\n      }" { (expression_statement "ppppbVar5 = *pppppbVar26;" (assignment_expression "ppppbVar5 = *pppppbVar26" identifier = (pointer_expression "*pppppbVar26" * identifier)) ;) (if_statement "if ((pppppbVar31 == (byte *****)*ppppbVar5) &&\n           (iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21), iVar11 != 0)) {\n          return ppppbVar5;\n        }" if (parenthesized_expression "((pppppbVar31 == (byte *****)*ppppbVar5) &&\n           (iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21), iVar11 != 0))" ( (binary_expression "(pppppbVar31 == (byte *****)*ppppbVar5) &&\n           (iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21), iVar11 != 0)" (parenthesized_expression "(pppppbVar31 == (byte *****)*ppppbVar5)" ( (binary_expression "pppppbVar31 == (byte *****)*ppppbVar5" identifier == (cast_expression "(byte *****)*ppppbVar5" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (pointer_expression "*ppppbVar5" * identifier))) )) && (parenthesized_expression "(iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21), iVar11 != 0)" ( (comma_expression "iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21), iVar11 != 0" (assignment_expression "iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21)" identifier = (call_expression "FUN_00489de4(ppppbVar5 + 1,ppppppbVar21)" identifier (argument_list "(ppppbVar5 + 1,ppppppbVar21)" ( (binary_expression "ppppbVar5 + 1" identifier + number_literal) , identifier )))) , (binary_expression "iVar11 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          return ppppbVar5;\n        }" { (return_statement "return ppppbVar5;" return identifier ;) })) (expression_statement "pppppbVar28 = (byte *****)((int)pppppbVar28 + 1);" (assignment_expression "pppppbVar28 = (byte *****)((int)pppppbVar28 + 1)" identifier = (cast_expression "(byte *****)((int)pppppbVar28 + 1)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)pppppbVar28 + 1)" ( (binary_expression "(int)pppppbVar28 + 1" (cast_expression "(int)pppppbVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pppppbVar26 = pppppbVar26 + 1;" (assignment_expression "pppppbVar26 = pppppbVar26 + 1" identifier = (binary_expression "pppppbVar26 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pppppbVar23 != pppppbVar28)" ( (binary_expression "pppppbVar23 != pppppbVar28" identifier != identifier) )) ;) })) (expression_statement "ppppbVar5 = (byte ****)(*(code *)PTR_calloc_004bf160)(0x38,1);" (assignment_expression "ppppbVar5 = (byte ****)(*(code *)PTR_calloc_004bf160)(0x38,1)" identifier = (cast_expression "(byte ****)(*(code *)PTR_calloc_004bf160)(0x38,1)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "(*(code *)PTR_calloc_004bf160)(0x38,1)" (parenthesized_expression "(*(code *)PTR_calloc_004bf160)" ( (pointer_expression "*(code *)PTR_calloc_004bf160" * (cast_expression "(code *)PTR_calloc_004bf160" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x38,1)" ( number_literal , number_literal ))))) ;) (if_statement "if (ppppbVar5 != (byte ****)0x0) {\n      iVar11 = FUN_0048c08c(ppppbVar5 + 1,ppppppbVar21);\n      if (iVar11 == 0) {\n        ppppbVar5[10] = (byte ***)(ppppbVar5 + 1);\n        if (0 < (int)ppppppbVar21[1]) {\n          ppppppbVar22 = *pppppppbVar20;\n          pppppbVar23 = ppppppbVar21[2];\n          pppppbVar26 = pppppbVar23 + (int)ppppppbVar21[1];\n          do {\n            ppppbVar10 = *pppppbVar23;\n            cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1);\n            if (cVar2 == '\x01') {\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }\n            pppppbVar23 = pppppbVar23 + 1;\n          } while (pppppbVar23 != pppppbVar26);\n        }\n        iVar11 = FUN_0048b6d0(pppppppbVar20,ppppbVar5,pppppbVar31);\n        if (iVar11 == 0) {\n          return ppppbVar5;\n        }\n        FUN_0048e3e8(ppppbVar5);\n      }\n      else {\n        (*(code *)PTR_free_004bf39c)(ppppbVar5);\n      }\n    }" if (parenthesized_expression "(ppppbVar5 != (byte ****)0x0)" ( (binary_expression "ppppbVar5 != (byte ****)0x0" identifier != (cast_expression "(byte ****)0x0" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (compound_statement "{\n      iVar11 = FUN_0048c08c(ppppbVar5 + 1,ppppppbVar21);\n      if (iVar11 == 0) {\n        ppppbVar5[10] = (byte ***)(ppppbVar5 + 1);\n        if (0 < (int)ppppppbVar21[1]) {\n          ppppppbVar22 = *pppppppbVar20;\n          pppppbVar23 = ppppppbVar21[2];\n          pppppbVar26 = pppppbVar23 + (int)ppppppbVar21[1];\n          do {\n            ppppbVar10 = *pppppbVar23;\n            cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1);\n            if (cVar2 == '\x01') {\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }\n            pppppbVar23 = pppppbVar23 + 1;\n          } while (pppppbVar23 != pppppbVar26);\n        }\n        iVar11 = FUN_0048b6d0(pppppppbVar20,ppppbVar5,pppppbVar31);\n        if (iVar11 == 0) {\n          return ppppbVar5;\n        }\n        FUN_0048e3e8(ppppbVar5);\n      }\n      else {\n        (*(code *)PTR_free_004bf39c)(ppppbVar5);\n      }\n    }" { (expression_statement "iVar11 = FUN_0048c08c(ppppbVar5 + 1,ppppppbVar21);" (assignment_expression "iVar11 = FUN_0048c08c(ppppbVar5 + 1,ppppppbVar21)" identifier = (call_expression "FUN_0048c08c(ppppbVar5 + 1,ppppppbVar21)" identifier (argument_list "(ppppbVar5 + 1,ppppppbVar21)" ( (binary_expression "ppppbVar5 + 1" identifier + number_literal) , identifier )))) ;) (if_statement "if (iVar11 == 0) {\n        ppppbVar5[10] = (byte ***)(ppppbVar5 + 1);\n        if (0 < (int)ppppppbVar21[1]) {\n          ppppppbVar22 = *pppppppbVar20;\n          pppppbVar23 = ppppppbVar21[2];\n          pppppbVar26 = pppppbVar23 + (int)ppppppbVar21[1];\n          do {\n            ppppbVar10 = *pppppbVar23;\n            cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1);\n            if (cVar2 == '\x01') {\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }\n            pppppbVar23 = pppppbVar23 + 1;\n          } while (pppppbVar23 != pppppbVar26);\n        }\n        iVar11 = FUN_0048b6d0(pppppppbVar20,ppppbVar5,pppppbVar31);\n        if (iVar11 == 0) {\n          return ppppbVar5;\n        }\n        FUN_0048e3e8(ppppbVar5);\n      }\n      else {\n        (*(code *)PTR_free_004bf39c)(ppppbVar5);\n      }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n        ppppbVar5[10] = (byte ***)(ppppbVar5 + 1);\n        if (0 < (int)ppppppbVar21[1]) {\n          ppppppbVar22 = *pppppppbVar20;\n          pppppbVar23 = ppppppbVar21[2];\n          pppppbVar26 = pppppbVar23 + (int)ppppppbVar21[1];\n          do {\n            ppppbVar10 = *pppppbVar23;\n            cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1);\n            if (cVar2 == '\x01') {\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }\n            pppppbVar23 = pppppbVar23 + 1;\n          } while (pppppbVar23 != pppppbVar26);\n        }\n        iVar11 = FUN_0048b6d0(pppppppbVar20,ppppbVar5,pppppbVar31);\n        if (iVar11 == 0) {\n          return ppppbVar5;\n        }\n        FUN_0048e3e8(ppppbVar5);\n      }" { (expression_statement "ppppbVar5[10] = (byte ***)(ppppbVar5 + 1);" (assignment_expression "ppppbVar5[10] = (byte ***)(ppppbVar5 + 1)" (subscript_expression "ppppbVar5[10]" identifier [ number_literal ]) = (cast_expression "(byte ***)(ppppbVar5 + 1)" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(ppppbVar5 + 1)" ( (binary_expression "ppppbVar5 + 1" identifier + number_literal) )))) ;) (if_statement "if (0 < (int)ppppppbVar21[1]) {\n          ppppppbVar22 = *pppppppbVar20;\n          pppppbVar23 = ppppppbVar21[2];\n          pppppbVar26 = pppppbVar23 + (int)ppppppbVar21[1];\n          do {\n            ppppbVar10 = *pppppbVar23;\n            cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1);\n            if (cVar2 == '\x01') {\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }\n            pppppbVar23 = pppppbVar23 + 1;\n          } while (pppppbVar23 != pppppbVar26);\n        }" if (parenthesized_expression "(0 < (int)ppppppbVar21[1])" ( (binary_expression "0 < (int)ppppppbVar21[1]" number_literal < (cast_expression "(int)ppppppbVar21[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppppppbVar21[1]" identifier [ number_literal ]))) )) (compound_statement "{\n          ppppppbVar22 = *pppppppbVar20;\n          pppppbVar23 = ppppppbVar21[2];\n          pppppbVar26 = pppppbVar23 + (int)ppppppbVar21[1];\n          do {\n            ppppbVar10 = *pppppbVar23;\n            cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1);\n            if (cVar2 == '\x01') {\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }\n            pppppbVar23 = pppppbVar23 + 1;\n          } while (pppppbVar23 != pppppbVar26);\n        }" { (expression_statement "ppppppbVar22 = *pppppppbVar20;" (assignment_expression "ppppppbVar22 = *pppppppbVar20" identifier = (pointer_expression "*pppppppbVar20" * identifier)) ;) (expression_statement "pppppbVar23 = ppppppbVar21[2];" (assignment_expression "pppppbVar23 = ppppppbVar21[2]" identifier = (subscript_expression "ppppppbVar21[2]" identifier [ number_literal ])) ;) (expression_statement "pppppbVar26 = pppppbVar23 + (int)ppppppbVar21[1];" (assignment_expression "pppppbVar26 = pppppbVar23 + (int)ppppppbVar21[1]" identifier = (binary_expression "pppppbVar23 + (int)ppppppbVar21[1]" identifier + (cast_expression "(int)ppppppbVar21[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppppppbVar21[1]" identifier [ number_literal ])))) ;) (do_statement "do {\n            ppppbVar10 = *pppppbVar23;\n            cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1);\n            if (cVar2 == '\x01') {\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }\n            pppppbVar23 = pppppbVar23 + 1;\n          } while (pppppbVar23 != pppppbVar26);" do (compound_statement "{\n            ppppbVar10 = *pppppbVar23;\n            cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1);\n            if (cVar2 == '\x01') {\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }\n            pppppbVar23 = pppppbVar23 + 1;\n          }" { (expression_statement "ppppbVar10 = *pppppbVar23;" (assignment_expression "ppppbVar10 = *pppppbVar23" identifier = (pointer_expression "*pppppbVar23" * identifier)) ;) (expression_statement "cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1);" (assignment_expression "cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1)" identifier = (pointer_expression "*(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1)" * (cast_expression "(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppbVar22 + (int)ppppbVar10 * 2 + 1)" ( (binary_expression "ppppppbVar22 + (int)ppppbVar10 * 2 + 1" (binary_expression "ppppppbVar22 + (int)ppppbVar10 * 2" identifier + (binary_expression "(int)ppppbVar10 * 2" (cast_expression "(int)ppppbVar10" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) ))))) ;) (if_statement "if (cVar2 == '\x01') {\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }" if (parenthesized_expression "(cVar2 == '\x01')" ( (binary_expression "cVar2 == '\x01'" identifier == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }" { (if_statement "if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }" if (parenthesized_expression "(((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0)" ( (binary_expression "((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0" (parenthesized_expression "((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000)" ( (binary_expression "(uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000" (cast_expression "(uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppppppbVar22[(int)ppppbVar10 * 2 + 1]" identifier [ (binary_expression "(int)ppppbVar10 * 2 + 1" (binary_expression "(int)ppppbVar10 * 2" (cast_expression "(int)ppppbVar10" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ])) & number_literal) )) != number_literal) )) (compound_statement "{\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }" { (expression_statement "*(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);" (assignment_expression "*(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2)" (pointer_expression "*(byte *)(ppppbVar5 + 0xd)" * (cast_expression "(byte *)(ppppbVar5 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppbVar5 + 0xd)" ( (binary_expression "ppppbVar5 + 0xd" identifier + number_literal) )))) = (binary_expression "*(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2)" (binary_expression "*(byte *)(ppppbVar5 + 0xd) & 0xfb" (pointer_expression "*(byte *)(ppppbVar5 + 0xd)" * (cast_expression "(byte *)(ppppbVar5 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppbVar5 + 0xd)" ( (binary_expression "ppppbVar5 + 0xd" identifier + number_literal) )))) & number_literal) | (call_expression "(byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2)" ( (binary_expression "((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2" (parenthesized_expression "((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f)" ( (binary_expression "(uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f" (call_expression "(uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5)" ( (binary_expression "(int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5" (binary_expression "(int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14" (cast_expression "(int)ppppppbVar22[(int)ppppbVar10 * 2 + 1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppppppbVar22[(int)ppppbVar10 * 2 + 1]" identifier [ (binary_expression "(int)ppppbVar10 * 2 + 1" (binary_expression "(int)ppppbVar10 * 2" (cast_expression "(int)ppppbVar10" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ])) << number_literal) | (binary_expression "(int)ppppbVar5[0xd] << 5" (cast_expression "(int)ppppbVar5[0xd]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppppbVar5[0xd]" identifier [ number_literal ])) << number_literal)) ))) >> number_literal) )) << number_literal) ))))) ;) (labeled_statement "LAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }" statement_identifier : (if_statement "if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }" if (parenthesized_expression "(((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0)" ( (binary_expression "((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0" (parenthesized_expression "((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000)" ( (binary_expression "(uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000" (cast_expression "(uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppppppbVar22[(int)ppppbVar10 * 2 + 1]" identifier [ (binary_expression "(int)ppppbVar10 * 2 + 1" (binary_expression "(int)ppppbVar10 * 2" (cast_expression "(int)ppppbVar10" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ])) & number_literal) )) != number_literal) )) (compound_statement "{\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }" { (expression_statement "bVar3 = *(byte *)(ppppbVar5 + 0xd);" (assignment_expression "bVar3 = *(byte *)(ppppbVar5 + 0xd)" identifier = (pointer_expression "*(byte *)(ppppbVar5 + 0xd)" * (cast_expression "(byte *)(ppppbVar5 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppbVar5 + 0xd)" ( (binary_expression "ppppbVar5 + 0xd" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;" statement_identifier : (expression_statement "*(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;" (assignment_expression "*(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1" (pointer_expression "*(byte *)(ppppbVar5 + 0xd)" * (cast_expression "(byte *)(ppppbVar5 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppbVar5 + 0xd)" ( (binary_expression "ppppbVar5 + 0xd" identifier + number_literal) )))) = (binary_expression "bVar3 & 0xfe | 1" (binary_expression "bVar3 & 0xfe" identifier & number_literal) | number_literal)) ;)) }))) })) }) (else_clause "else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }" else (compound_statement "{\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }" { (expression_statement "bVar3 = *(byte *)(ppppbVar5 + 0xd);" (assignment_expression "bVar3 = *(byte *)(ppppbVar5 + 0xd)" identifier = (pointer_expression "*(byte *)(ppppbVar5 + 0xd)" * (cast_expression "(byte *)(ppppbVar5 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppbVar5 + 0xd)" ( (binary_expression "ppppbVar5 + 0xd" identifier + number_literal) ))))) ;) (expression_statement "bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);" (assignment_expression "bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2)" identifier = (call_expression "(byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2)" ( (binary_expression "((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2" (parenthesized_expression "((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f)" ( (binary_expression "(uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f" (call_expression "(uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14)" ( (binary_expression "(int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14" (binary_expression "(int)ppppbVar5[0xd] << 5" (cast_expression "(int)ppppbVar5[0xd]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppppbVar5[0xd]" identifier [ number_literal ])) << number_literal) | (binary_expression "(int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14" (cast_expression "(int)ppppppbVar22[(int)ppppbVar10 * 2 + 1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppppppbVar22[(int)ppppbVar10 * 2 + 1]" identifier [ (binary_expression "(int)ppppbVar10 * 2 + 1" (binary_expression "(int)ppppbVar10 * 2" (cast_expression "(int)ppppbVar10" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ])) << number_literal)) ))) >> number_literal) )) << number_literal) )))) ;) (expression_statement "*(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;" (assignment_expression "*(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4" (pointer_expression "*(byte *)(ppppbVar5 + 0xd)" * (cast_expression "(byte *)(ppppbVar5 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppbVar5 + 0xd)" ( (binary_expression "ppppbVar5 + 0xd" identifier + number_literal) )))) = (binary_expression "bVar3 & 0xfb | bVar4" (binary_expression "bVar3 & 0xfb" identifier & number_literal) | identifier)) ;) (if_statement "if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }" if (parenthesized_expression "(cVar2 == '\x02')" ( (binary_expression "cVar2 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }" { (expression_statement "*(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;" (assignment_expression "*(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8" (pointer_expression "*(byte *)(ppppbVar5 + 0xd)" * (cast_expression "(byte *)(ppppbVar5 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppbVar5 + 0xd)" ( (binary_expression "ppppbVar5 + 0xd" identifier + number_literal) )))) = (binary_expression "bVar3 & 0xf3 | bVar4 | 8" (binary_expression "bVar3 & 0xf3 | bVar4" (binary_expression "bVar3 & 0xf3" identifier & number_literal) | identifier) | number_literal)) ;) }) (else_clause "else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }" else (compound_statement "{\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }" { (if_statement "if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }" if (parenthesized_expression "(cVar2 != '\x04')" ( (binary_expression "cVar2 != '\x04'" identifier != (char_literal "'\x04'" ' escape_sequence ')) )) (compound_statement "{\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }" { (if_statement "if (cVar2 != '\f') goto LAB_004922f0;" if (parenthesized_expression "(cVar2 != '\f')" ( (binary_expression "cVar2 != '\f'" identifier != (char_literal "'\f'" ' escape_sequence ')) )) (goto_statement "goto LAB_004922f0;" goto statement_identifier ;)) (expression_statement "bVar3 = *(byte *)(ppppbVar5 + 0xd);" (assignment_expression "bVar3 = *(byte *)(ppppbVar5 + 0xd)" identifier = (pointer_expression "*(byte *)(ppppbVar5 + 0xd)" * (cast_expression "(byte *)(ppppbVar5 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppbVar5 + 0xd)" ( (binary_expression "ppppbVar5 + 0xd" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00492380;" goto statement_identifier ;) })) (expression_statement "*(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;" (assignment_expression "*(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2" (pointer_expression "*(byte *)(ppppbVar5 + 0xd)" * (cast_expression "(byte *)(ppppbVar5 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppbVar5 + 0xd)" ( (binary_expression "ppppbVar5 + 0xd" identifier + number_literal) )))) = (binary_expression "*(byte *)(ppppbVar5 + 0xd) & 0xfd | 2" (binary_expression "*(byte *)(ppppbVar5 + 0xd) & 0xfd" (pointer_expression "*(byte *)(ppppbVar5 + 0xd)" * (cast_expression "(byte *)(ppppbVar5 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppbVar5 + 0xd)" ( (binary_expression "ppppbVar5 + 0xd" identifier + number_literal) )))) & number_literal) | number_literal)) ;) }))) }))) (expression_statement "pppppbVar23 = pppppbVar23 + 1;" (assignment_expression "pppppbVar23 = pppppbVar23 + 1" identifier = (binary_expression "pppppbVar23 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pppppbVar23 != pppppbVar26)" ( (binary_expression "pppppbVar23 != pppppbVar26" identifier != identifier) )) ;) })) (expression_statement "iVar11 = FUN_0048b6d0(pppppppbVar20,ppppbVar5,pppppbVar31);" (assignment_expression "iVar11 = FUN_0048b6d0(pppppppbVar20,ppppbVar5,pppppbVar31)" identifier = (call_expression "FUN_0048b6d0(pppppppbVar20,ppppbVar5,pppppbVar31)" identifier (argument_list "(pppppppbVar20,ppppbVar5,pppppbVar31)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar11 == 0) {\n          return ppppbVar5;\n        }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n          return ppppbVar5;\n        }" { (return_statement "return ppppbVar5;" return identifier ;) })) (expression_statement "FUN_0048e3e8(ppppbVar5);" (call_expression "FUN_0048e3e8(ppppbVar5)" identifier (argument_list "(ppppbVar5)" ( identifier ))) ;) }) (else_clause "else {\n        (*(code *)PTR_free_004bf39c)(ppppbVar5);\n      }" else (compound_statement "{\n        (*(code *)PTR_free_004bf39c)(ppppbVar5);\n      }" { (expression_statement "(*(code *)PTR_free_004bf39c)(ppppbVar5);" (call_expression "(*(code *)PTR_free_004bf39c)(ppppbVar5)" (parenthesized_expression "(*(code *)PTR_free_004bf39c)" ( (pointer_expression "*(code *)PTR_free_004bf39c" * (cast_expression "(code *)PTR_free_004bf39c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppppbVar5)" ( identifier ))) ;) }))) })) (expression_statement "*ppppppbVar13 = (byte *****)0xc;" (assignment_expression "*ppppppbVar13 = (byte *****)0xc" (pointer_expression "*ppppppbVar13" * identifier) = (cast_expression "(byte *****)0xc" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) }))) (return_statement "return (byte ****)0x0;" return (cast_expression "(byte ****)0x0" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal) ;) })))
(translation_unit "/* WARNING: Removing unreachable block (ram,0x00491a68) */\n/* WARNING: Unknown calling convention */\n\nreg_errcode_t re_string_reconstruct(re_string_t *pstr,Idx idx,int eflags)\n\n{\n  bool bVar1;\n  uchar uVar2;\n  char cVar3;\n  byte bVar4;\n  byte bVar5;\n  undefined3 extraout_var;\n  re_dfa_t *prVar6;\n  int iVar7;\n  reg_errcode_t rVar8;\n  wint_t *pwVar9;\n  Idx IVar10;\n  Idx *pIVar11;\n  uchar *puVar12;\n  re_dfa_t *prVar13;\n  undefined1 *puVar14;\n  int iVar15;\n  int *piVar16;\n  Idx *pIVar17;\n  _Bool _Var18;\n  uint uVar19;\n  Idx *pIVar20;\n  uchar *puVar21;\n  re_dfa_t *prVar22;\n  undefined1 *puVar23;\n  int *piVar25;\n  wint_t wVar26;\n  re_dfa_t *prVar27;\n  byte *pbVar28;\n  re_dfa_t *dfa;\n  re_node_set **pprVar29;\n  re_dfa_t *prVar30;\n  re_dfa_t *set2;\n  re_dfastate_t *prVar31;\n  int iVar32;\n  re_dfastate_t **pprVar33;\n  uint uVar34;\n  Idx *unaff_s4;\n  Idx *unaff_s5;\n  Idx *unaff_s6;\n  re_dfa_t *unaff_s7;\n  uint uVar35;\n  mbstate_t *unaff_s8;\n  re_token_t *prVar36;\n  code *pcVar37;\n  int iStack_1ac;\n  int iStack_1a8;\n  undefined1 auStack_190 [8];\n  size_t sStack_188;\n  re_dfa_t rStack_184;\n  reg_errcode_t rStack_84;\n  re_string_t *prStack_80;\n  int iStack_7c;\n  Idx IStack_78;\n  int iStack_74;\n  Idx *pIStack_70;\n  Idx *pIStack_6c;\n  Idx *pIStack_68;\n  re_dfa_t *prStack_64;\n  mbstate_t *pmStack_60;\n  code *pcStack_5c;\n  wchar_t wc2;\n  mbstate_t cur_state;\n  uchar buf [6];\n  undefined1 *puVar24;\n  \n  prVar6 = *(re_dfa_t **)PTR___stack_chk_guard_004bf38c;\n  pIVar17 = (Idx *)(idx - pstr->raw_mbs_idx);\n  if (idx < pstr->raw_mbs_idx) {\n    if (1 < pstr->mb_cur_max) {\n      *(undefined1 *)&(pstr->cur_state).__count = 0;\n      *(undefined1 *)((int)&(pstr->cur_state).__count + 1) = 0;\n      *(undefined1 *)((int)&(pstr->cur_state).__count + 2) = 0;\n      *(undefined1 *)((int)&(pstr->cur_state).__count + 3) = 0;\n      (pstr->cur_state).__value.__wchb[0] = '\0';\n      (pstr->cur_state).__value.__wchb[1] = '\0';\n      (pstr->cur_state).__value.__wchb[2] = '\0';\n      (pstr->cur_state).__value.__wchb[3] = '\0';\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    uVar19 = 6;\n    if ((eflags & 1U) != 0) {\n      uVar19 = 4;\n    }\n    pstr->tip_context = uVar19;\n    pIVar17 = (Idx *)idx;\n    if (pstr->mbs_allocated == '\0') {\n      pstr->mbs = pstr->raw_mbs;\n    }\n  }\n  prVar27 = (re_dfa_t *)idx;\n  prVar30 = (re_dfa_t *)eflags;\n  if (pIVar17 != (Idx *)0x0) {\n    if ((int)pIVar17 < pstr->valid_raw_len) {\n      if (pstr->offsets_needed == '\0') {\n        uVar19 = re_string_context_at(pstr,(Idx)((int)pIVar17 + -1),eflags);\n        pstr->tip_context = uVar19;\n        prVar27 = (re_dfa_t *)((int)pIVar17 * 4);\n        if (pstr->mb_cur_max < 2) {\n          uVar2 = pstr->mbs_allocated;\n        }\n        else {\n          prVar30 = (re_dfa_t *)((pstr->valid_len - (int)pIVar17) * 4);\n          prVar27 = (re_dfa_t *)(pstr->wcs + (int)pIVar17);\n          (*(code *)PTR_memmove_004bf3a4)();\n          uVar2 = pstr->mbs_allocated;\n        }\n        if (uVar2 == '\0') {\n          iVar7 = pstr->valid_len;\n        }\n        else {\n          prVar30 = (re_dfa_t *)(pstr->valid_len - (int)pIVar17);\n          prVar27 = (re_dfa_t *)(pstr->mbs + (int)pIVar17);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar7 = pstr->valid_len;\n        }\n        pstr->valid_len = iVar7 - (int)pIVar17;\n        pstr->valid_raw_len = pstr->valid_raw_len - (int)pIVar17;\n        goto LAB_00491360;\n      }\n      unaff_s6 = (Idx *)pstr->valid_len;\n      unaff_s5 = pstr->offsets;\n      puVar23 = (undefined1 *)0x0;\n      pIVar11 = unaff_s6;\n      do {\n        unaff_s4 = (Idx *)((int)(puVar23 + (int)pIVar11) / 2);\n        iVar7 = unaff_s5[(int)unaff_s4];\n        bVar1 = (int)puVar23 < (int)unaff_s4;\n        pIVar20 = unaff_s4;\n        if (iVar7 <= (int)pIVar17) {\n          puVar23 = (undefined1 *)((int)unaff_s4 + 1);\n          if ((int)pIVar17 <= iVar7) goto LAB_0049145c;\n          bVar1 = (int)puVar23 < (int)pIVar11;\n          pIVar20 = pIVar11;\n        }\n        pIVar11 = pIVar20;\n      } while (bVar1);\n      if (iVar7 < (int)pIVar17) {\n        unaff_s4 = (Idx *)((int)unaff_s4 + 1);\n      }\nLAB_0049145c:\n      prVar27 = (re_dfa_t *)((int)unaff_s4 + -1);\n      uVar19 = re_string_context_at(pstr,(Idx)prVar27,eflags);\n      pstr->tip_context = uVar19;\n      if ((((int)unaff_s6 <= (int)pIVar17) || (pIVar17 != unaff_s4)) ||\n         (eflags = (int)pIVar17 * 4, (Idx *)unaff_s5[(int)unaff_s4] != pIVar17)) {\n        pstr->len = (Idx)((int)pIVar17 + (pstr->raw_len - idx));\n        pstr->stop = (Idx)((int)pIVar17 + (pstr->raw_stop - idx));\n        pstr->offsets_needed = '\0';\n        if ((0 < (int)unaff_s4) && ((Idx *)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pIVar17))\n        {\n          pIVar11 = unaff_s5 + (int)(unaff_s4 + 0x10000000);\n          do {\n            unaff_s4 = (Idx *)((int)unaff_s4 + -1);\n            if (unaff_s4 == (Idx *)0x0) break;\n            pIVar20 = pIVar11 + -2;\n            pIVar11 = pIVar11 + -1;\n          } while ((Idx *)*pIVar20 == pIVar17);\n        }\n        if ((int)unaff_s4 < (int)unaff_s6) {\n          pwVar9 = pstr->wcs + (int)unaff_s4;\n          wVar26 = *pwVar9;\n          while (wVar26 == 0xffffffff) {\n            unaff_s4 = (Idx *)((int)unaff_s4 + 1);\n            pwVar9 = pwVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            wVar26 = *pwVar9;\n          }\nLAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;\n          prVar30 = (re_dfa_t *)(*unaff_s4 - (int)pIVar17);\n          pstr->valid_len = (Idx)prVar30;\n          if (prVar30 == (re_dfa_t *)0x0) goto LAB_00491650;\n          if (0 < (int)prVar30) {\n            iVar7 = 0;\n            do {\n              pstr->wcs[iVar7] = 0xffffffff;\n              iVar7 = iVar7 + 1;\n              prVar30 = (re_dfa_t *)pstr->valid_len;\n            } while (iVar7 < (int)prVar30);\n          }\n          prVar27 = (re_dfa_t *)0xff;\n          (*(code *)PTR_memset_004bf260)(pstr->mbs);\n          IVar10 = pstr->valid_len;\n        }\n        else {\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          pstr->valid_len = 0;\nLAB_00491650:\n          IVar10 = pstr->valid_len;\n        }\n        pstr->valid_raw_len = IVar10;\n        goto LAB_00491360;\n      }\n      (*(code *)PTR_memmove_004bf3a4)\n                (pstr->wcs,pstr->wcs + (int)pIVar17,((int)unaff_s6 - (int)pIVar17) * 4);\n      prVar30 = (re_dfa_t *)(pstr->valid_len - (int)pIVar17);\n      prVar27 = (re_dfa_t *)(pstr->mbs + (int)pIVar17);\n      (*(code *)PTR_memmove_004bf3a4)();\n      iVar7 = pstr->valid_len - (int)pIVar17;\n      pstr->valid_len = iVar7;\n      pstr->valid_raw_len = pstr->valid_raw_len - (int)pIVar17;\n      if (iVar7 < 1) goto LAB_00491360;\n      iVar7 = 0;\n      do {\n        pstr->offsets[iVar7] = *(int *)((int)pstr->offsets + eflags) - (int)pIVar17;\n        iVar7 = iVar7 + 1;\n        eflags = eflags + 4;\n      } while (iVar7 < pstr->valid_len);\n      uVar2 = pstr->mbs_allocated;\n    }\n    else {\n      unaff_s6 = (Idx *)pstr->valid_len;\n      if (pstr->offsets_needed != '\0') {\n        pstr->len = (Idx)((int)pIVar17 + (pstr->raw_len - idx));\n        pstr->stop = (Idx)((int)pIVar17 + (pstr->raw_stop - idx));\n        pstr->offsets_needed = '\0';\n      }\n      pstr->valid_len = 0;\n      if (pstr->mb_cur_max < 2) {\n        prVar27 = (re_dfa_t *)\n                  (uint)*(byte *)((int)pIVar17 + (int)(pstr->raw_mbs + pstr->raw_mbs_idx + -1));\n        pstr->valid_raw_len = 0;\n        if (pstr->trans != (uchar *)0x0) {\n          prVar27 = (re_dfa_t *)(uint)pstr->trans[(int)prVar27];\n        }\n        uVar19 = 1;\n        if ((pstr->word_char[(int)prVar27 >> 5] >> ((uint)prVar27 & 0x1f) & 1) == 0) {\n          uVar19 = 2;\n          if (prVar27 == (re_dfa_t *)&DAT_0000000a) {\n            if (pstr->newline_anchor == '\0') {\n              uVar19 = 0;\n            }\n          }\n          else {\n            uVar19 = 0;\n          }\n        }\n        pstr->tip_context = uVar19;\n        goto LAB_00491360;\n      }\n      if (pstr->is_utf8 == '\0') {\nLAB_0049179c:\n        iVar7 = pstr->raw_mbs_idx;\nLAB_004917a0:\n        pIVar11 = (Idx *)(iVar7 + pstr->valid_raw_len);\n        if ((int)pIVar11 < idx) {\n          unaff_s8 = &pstr->cur_state;\n          unaff_s7 = (re_dfa_t *)&wc2;\n          do {\n            unaff_s5 = pIVar11;\n            iVar32 = pstr->raw_len - (int)unaff_s5;\n            cur_state.__count = (pstr->cur_state).__count;\n            cur_state.__value = (pstr->cur_state).__value;\n            prVar27 = (re_dfa_t *)((int)unaff_s5 + (int)pstr->raw_mbs);\n            iVar7 = (*(code *)PTR_mbrtowc_004bf2ec)(unaff_s7,prVar27,iVar32,unaff_s8);\n            unaff_s4 = (Idx *)wc2;\n            if (0xfffffffc < iVar7 - 1U) {\n              if (iVar7 == 0) {\n                unaff_s4 = (Idx *)0x0;\n              }\n              else if (iVar32 == 0) {\n                unaff_s4 = (Idx *)0x0;\n              }\n              else {\n                unaff_s4 = (Idx *)(uint)*(byte *)((int)unaff_s5 + (int)pstr->raw_mbs);\n              }\n              (pstr->cur_state).__count = cur_state.__count;\n              (pstr->cur_state).__value = cur_state.__value;\n              iVar7 = 1;\n            }\n            pIVar11 = (Idx *)((int)unaff_s5 + iVar7);\n          } while ((int)pIVar11 < idx);\n          pstr->valid_len = (int)pIVar11 - idx;\n          if (unaff_s4 != (Idx *)0xffffffff) goto LAB_00491834;\n        }\n        else {\n          pstr->valid_len = (int)pIVar11 - idx;\n        }\n        prVar27 = (re_dfa_t *)((int)unaff_s6 + -1);\n        uVar19 = re_string_context_at(pstr,(Idx)prVar27,eflags);\n        pstr->tip_context = uVar19;\n      }\n      else {\n        prVar30 = (re_dfa_t *)pstr->raw_mbs;\n        unaff_s4 = (Idx *)((int)prVar30->word_char + pstr->raw_mbs_idx + -0x60);\n        prVar27 = (re_dfa_t *)((int)unaff_s4 + ((int)pIVar17 - pstr->mb_cur_max));\n        if (prVar27 <= prVar30) {\n          prVar27 = prVar30;\n        }\n        prVar30 = (re_dfa_t *)((int)unaff_s4 + (int)((int)pIVar17 + -1));\n        unaff_s5 = pIVar17;\n        if (prVar30 < prVar27) goto LAB_0049179c;\n        bVar4 = *(byte *)&prVar30->nodes;\n        unaff_s7 = prVar30;\n        while ((bVar4 & 0xc0) == 0x80) {\n          prVar22 = (re_dfa_t *)((int)&unaff_s7[-1].subexp_map + 3);\n          unaff_s7 = prVar30;\n          if (prVar22 < prVar27) goto LAB_0049179c;\n          unaff_s7 = prVar22;\n          bVar4 = *(byte *)&prVar22->nodes;\n        }\n        puVar21 = pstr->trans;\n        puVar23 = (undefined1 *)((int)unaff_s4 + (pstr->len - (int)unaff_s7));\n        prVar27 = unaff_s7;\n        if (puVar21 != (uchar *)0x0) {\n          puVar14 = (undefined1 *)0x6;\n          if ((int)puVar23 < 7) {\n            puVar14 = puVar23;\n          }\n          if ((int)(puVar14 + -1) < 0) {\n            prVar27 = (re_dfa_t *)buf;\n          }\n          else {\n            pbVar28 = (byte *)((int)unaff_s7->word_char + (int)(puVar14 + -0x61));\n            puVar12 = buf + (int)puVar14;\n            do {\n              puVar12[-1] = puVar21[*pbVar28];\n              puVar12 = puVar12 + -1;\n              pbVar28 = pbVar28 + -1;\n            } while (puVar12 != buf);\n            prVar27 = (re_dfa_t *)buf;\n          }\n        }\n        cur_state.__count = 0;\n        cur_state.__value.__wch = 0;\n        uVar19 = (*(code *)PTR_mbrtowc_004bf2ec)(&wc2);\n        uVar35 = (int)((int)unaff_s4 + (int)pIVar17) - (int)unaff_s7;\n        if ((uVar19 < uVar35) || (0xfffffffd < uVar19)) goto LAB_0049179c;\n        *(undefined1 *)&(pstr->cur_state).__count = 0;\n        *(undefined1 *)((int)&(pstr->cur_state).__count + 1) = 0;\n        *(undefined1 *)((int)&(pstr->cur_state).__count + 2) = 0;\n        *(undefined1 *)((int)&(pstr->cur_state).__count + 3) = 0;\n        (pstr->cur_state).__value.__wchb[0] = '\0';\n        (pstr->cur_state).__value.__wchb[1] = '\0';\n        (pstr->cur_state).__value.__wchb[2] = '\0';\n        (pstr->cur_state).__value.__wchb[3] = '\0';\n        pstr->valid_len = uVar19 - uVar35;\n        unaff_s4 = (Idx *)wc2;\n        if (wc2 == -1) {\n          iVar7 = pstr->raw_mbs_idx;\n          goto LAB_004917a0;\n        }\nLAB_00491834:\n        if (pstr->word_ops_used == '\0') {\nLAB_00491840:\n          uVar19 = 2;\n          if (unaff_s4 == (Idx *)&DAT_0000000a) {\n            if (pstr->newline_anchor == '\0') {\n              uVar19 = 0;\n            }\n          }\n          else {\n            uVar19 = 0;\n          }\n        }\n        else {\n          iVar7 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          uVar19 = 1;\n          if (iVar7 == 0) {\n            if (unaff_s4 == (Idx *)0x5f) {\n              pstr->tip_context = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }\n        pstr->tip_context = uVar19;\n      }\nLAB_00491854:\n      prVar30 = (re_dfa_t *)pstr->valid_len;\n      if (prVar30 == (re_dfa_t *)0x0) {\nLAB_00491860:\n        IVar10 = pstr->valid_len;\n      }\n      else {\n        iVar7 = 0;\n        if (0 < (int)prVar30) {\n          do {\n            pstr->wcs[iVar7] = 0xffffffff;\n            iVar7 = iVar7 + 1;\n            prVar30 = (re_dfa_t *)pstr->valid_len;\n          } while (iVar7 < (int)prVar30);\n        }\n        prVar27 = (re_dfa_t *)0xff;\n        if (pstr->mbs_allocated == '\0') goto LAB_00491860;\n        (*(code *)PTR_memset_004bf260)(pstr->mbs);\n        IVar10 = pstr->valid_len;\n      }\n      pstr->valid_raw_len = IVar10;\nLAB_00491360:\n      uVar2 = pstr->mbs_allocated;\n    }\n    if (uVar2 == '\0') {\n      pstr->mbs = pstr->mbs + (int)pIVar17;\n    }\n  }\n  pstr->raw_mbs_idx = idx;\n  iVar7 = pstr->len - (int)pIVar17;\n  pstr->len = iVar7;\n  iVar32 = pstr->stop - (int)pIVar17;\n  pstr->stop = iVar32;\n  if (pstr->mb_cur_max < 2) {\n    if (pstr->mbs_allocated == '\0') {\n      pstr->valid_len = iVar7;\n      goto LAB_00491aa8;\n    }\n    if (pstr->icase == '\0') {\n      if (pstr->trans == (uchar *)0x0) goto LAB_00491aa8;\n      re_string_translate_buffer(pstr);\n      pstr->cur_idx = 0;\n    }\n    else {\n      build_upper_buffer(pstr);\n      pstr->cur_idx = 0;\n    }\n  }\n  else {\n    if (pstr->icase == '\0') {\n      build_wcs_buffer(pstr);\n      pstr->cur_idx = 0;\n      goto LAB_00491aac;\n    }\n    rVar8 = build_wcs_upper_buffer(pstr);\n    if (rVar8 != _REG_NOERROR) goto LAB_00491ab0;\nLAB_00491aa8:\n    pstr->cur_idx = 0;\n  }\nLAB_00491aac:\n  rVar8 = _REG_NOERROR;\nLAB_00491ab0:\n  if (prVar6 == *(re_dfa_t **)PTR___stack_chk_guard_004bf38c) {\n    return rVar8;\n  }\n  pcVar37 = re_compile_fastmap_iter;\n  (*(code *)PTR___stack_chk_fail_004bf34c)();\n  rStack_84 = *(reg_errcode_t *)PTR___stack_chk_guard_004bf38c;\n  prVar36 = prVar6->nodes;\n  if (*(int *)&prVar36[0xb].field_0x4 == 1) {\n    uVar19 = (uint)((int)prVar6->nexts << 9) >> 0x1f;\n  }\n  else {\n    uVar19 = 0;\n  }\n  prVar22 = prVar6;\n  dfa = prVar27;\n  set2 = prVar30;\n  prStack_80 = pstr;\n  iStack_7c = iVar32;\n  IStack_78 = idx;\n  iStack_74 = eflags;\n  pIStack_70 = unaff_s4;\n  pIStack_6c = unaff_s5;\n  pIStack_68 = unaff_s6;\n  prStack_64 = unaff_s7;\n  pmStack_60 = unaff_s8;\n  pcStack_5c = pcVar37;\n  if (0 < (int)prVar27->nodes_len) {\n    iStack_1a8 = 0;\n    do {\n      iVar7 = prVar27->nexts[iStack_1a8];\n      prVar13 = (re_dfa_t *)(iVar7 * 8);\n      pbVar28 = (byte *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset);\n      prVar22 = (re_dfa_t *)(uint)pbVar28[4];\n      dfa = (re_dfa_t *)&DAT_00000001;\n      if (prVar22 == (re_dfa_t *)&DAT_00000001) {\n        uVar35 = (uint)*pbVar28;\n        *(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;\n        if (uVar19 != 0) {\n          if (uVar35 + 0x80 < 0x180) {\n            piVar25 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar35 = *(uint *)(*piVar25 + uVar35 * 4);\n          }\n          *(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;\n        }\n        if (((int)prVar6->nexts << 9 < 0) &&\n           (prVar22 = prVar13, 1 < *(int *)&prVar36[0xb].field_0x4)) {\n          rStack_184.nodes._0_1_ = *(byte *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset);\n          if ((re_bitset_ptr_t)(iVar7 + 1U) < prVar36[1].opr.sbcset) {\n            puVar14 = (undefined1 *)((int)&prVar13->nodes_len + (int)(prVar36->opr).sbcset);\n            pprVar29 = (re_node_set **)&prVar13->org_indices;\n            if ((*(uint *)(puVar14 + 4) & 0xff000400) == 0x1000400) {\n              puVar24 = (undefined1 *)((int)&rStack_184.nodes + 1);\n              do {\n                puVar23 = puVar24 + 1;\n                *puVar24 = *puVar14;\n                if (prVar36[1].opr.sbcset <= puVar23 + (iVar7 - (int)&rStack_184)) break;\n                puVar14 = (undefined1 *)((int)(prVar36->opr).sbcset + (int)pprVar29);\n                pprVar29 = pprVar29 + 2;\n                puVar24 = puVar23;\n              } while ((*(uint *)(puVar14 + 4) & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar23 = (undefined1 *)((int)&rStack_184.nodes + 1);\n            }\n          }\n          else {\n            puVar23 = (undefined1 *)((int)&rStack_184.nodes + 1);\n          }\n          auStack_190._4_4_ = 0;\n          sStack_188 = 0;\n          dfa = &rStack_184;\n          iVar7 = -(int)dfa;\n          prVar22 = (re_dfa_t *)auStack_190;\n          set2 = (re_dfa_t *)(puVar23 + iVar7);\n          prVar13 = (re_dfa_t *)(*(code *)PTR_mbrtowc_004bf2ec)();\n          if ((re_dfa_t *)(puVar23 + iVar7) == prVar13) {\n            dfa = (re_dfa_t *)(*(code *)PTR_towlower_004bf37c)(auStack_190._0_4_);\n            set2 = (re_dfa_t *)(auStack_190 + 4);\n            prVar22 = &rStack_184;\n            iVar7 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar7 != -1) {\n              *(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_) = 1;\n            }\n          }\n        }\n      }\n      else {\n        dfa = (re_dfa_t *)&DAT_00000006;\n        if (prVar22 == (re_dfa_t *)0x3) {\n          iStack_1ac = 0;\n          iVar7 = 0;\n          do {\n            uVar34 = *(uint *)(*(int *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset) +\n                              iStack_1ac);\n            uVar35 = 0;\n            iVar32 = iVar7;\n            do {\n              if (((uVar34 >> (uVar35 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)&prVar30->nodes + iVar32) = 1, uVar19 != 0)) {\n                iVar15 = iVar32;\n                if (iVar32 + 0x80U < 0x180) {\n                  piVar25 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar15 = *(int *)(*piVar25 + (uVar35 + iVar7) * 4);\n                }\n                *(undefined1 *)((int)&prVar30->nodes + iVar15) = 1;\n              }\n              uVar35 = uVar35 + 1;\n              iVar32 = iVar32 + 1;\n            } while (uVar35 != 0x20);\n            iVar7 = iVar7 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar7 != 0x100);\n        }\n        else if (prVar22 == (re_dfa_t *)&DAT_00000006) {\n          piVar25 = *(int **)pbVar28;\n          if ((*(int *)&prVar36[0xb].field_0x4 < 2) ||\n             (((piVar25[9] == 0 && (-1 < *(char *)(piVar25 + 4))) && (piVar25[8] == 0)))) {\n            iVar7 = 0;\n            if (0 < piVar25[5]) {\n              do {\n                auStack_190._4_4_ = 0;\n                sStack_188 = 0;\n                dfa = *(re_dfa_t **)(*piVar25 + iVar7 * 4);\n                prVar22 = &rStack_184;\n                set2 = (re_dfa_t *)(auStack_190 + 4);\n                iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar35 = (uint)rStack_184.nodes._0_1_;\n                if ((iVar32 != -1) &&\n                   (*(undefined1 *)((int)&prVar30->nodes + uVar35) = 1, uVar19 != 0)) {\n                  if (uVar35 + 0x80 < 0x180) {\n                    piVar16 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar35 = *(uint *)(*piVar16 + uVar35 * 4);\n                  }\n                  *(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;\n                }\n                if ((((uint)prVar6->nexts & 0x400000) != 0) && (1 < *(int *)&prVar36[0xb].field_0x4)\n                   ) {\n                  dfa = (re_dfa_t *)\n                        (*(code *)PTR_towlower_004bf37c)(*(undefined4 *)(*piVar25 + iVar7 * 4));\n                  prVar22 = &rStack_184;\n                  set2 = (re_dfa_t *)(auStack_190 + 4);\n                  iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar32 != -1) {\n                    *(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_) = 1;\n                  }\n                }\n                iVar7 = iVar7 + 1;\n              } while (iVar7 < piVar25[5]);\n            }\n          }\n          else {\n            auStack_190._0_4_ = auStack_190._0_4_ & 0xffffff;\n            do {\n              auStack_190._4_4_ = 0;\n              sStack_188 = 0;\n              set2 = (re_dfa_t *)&DAT_00000001;\n              prVar22 = (re_dfa_t *)0x0;\n              dfa = (re_dfa_t *)auStack_190;\n              iVar7 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar7 == -2) {\n                *(undefined1 *)((int)&prVar30->nodes + (uint)auStack_190[0]) = 1;\n              }\n              bVar1 = auStack_190[0] != 0xff;\n              auStack_190[0] = auStack_190[0] + 1;\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)prVar22 & 0xfd) == 5) {\n            set2 = (re_dfa_t *)0x100;\n            dfa = (re_dfa_t *)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            prVar22 = prVar30;\n            break;\n          }\n          if (prVar22 == (re_dfa_t *)0x2) {\n            set2 = (re_dfa_t *)0x100;\n            dfa = (re_dfa_t *)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(prVar30);\n            *(byte *)&prVar6->inveclosures = *(byte *)&prVar6->inveclosures & 0x7f | 0x80;\n            prVar22 = prVar6;\n            break;\n          }\n        }\n      }\n      iStack_1a8 = iStack_1a8 + 1;\n    } while (iStack_1a8 < (int)prVar27->nodes_len);\n  }\n  if (rStack_84 == *(reg_errcode_t *)PTR___stack_chk_guard_004bf38c) {\n    return *(reg_errcode_t *)PTR___stack_chk_guard_004bf38c;\n  }\n  (*(code *)PTR___stack_chk_fail_004bf34c)();\n  uVar19 = set2->nodes_alloc;\n  if (uVar19 == 0) {\n    prVar22->nodes = (re_token_t *)0x0;\n  }\n  else {\n    if (0 < (int)uVar19) {\n      pIVar17 = (Idx *)set2->nodes_len;\n      pIVar11 = pIVar17 + uVar19;\n      do {\n        iVar7 = *pIVar17;\n        pIVar17 = pIVar17 + 1;\n        uVar19 = uVar19 + iVar7;\n      } while (pIVar17 != pIVar11);\n    }\n    iVar7 = dfa->state_table[uVar19 & dfa->state_hash_mask].num;\n    if (0 < iVar7) {\n      pprVar33 = dfa->state_table[uVar19 & dfa->state_hash_mask].array;\n      iVar32 = 0;\n      do {\n        prVar31 = *pprVar33;\n        if ((uVar19 == prVar31->hash) &&\n           (_Var18 = re_node_set_compare(&prVar31->nodes,(re_node_set *)set2),\n           CONCAT31(extraout_var,_Var18) != 0)) {\n          return (reg_errcode_t)prVar31;\n        }\n        iVar32 = iVar32 + 1;\n        pprVar33 = pprVar33 + 1;\n      } while (iVar7 != iVar32);\n    }\n    prVar31 = (re_dfastate_t *)(*(code *)PTR_calloc_004bf160)(0x38,1);\n    if (prVar31 != (re_dfastate_t *)0x0) {\n      rVar8 = re_node_set_init_copy(&prVar31->nodes,(re_node_set *)set2);\n      if (rVar8 == _REG_NOERROR) {\n        prVar31->entrance_nodes = &prVar31->nodes;\n        if (0 < (int)set2->nodes_alloc) {\n          prVar36 = dfa->nodes;\n          piVar25 = (int *)set2->nodes_len;\n          piVar16 = piVar25 + set2->nodes_alloc;\n          do {\n            iVar7 = *piVar25;\n            cVar3 = prVar36[iVar7].field_0x4;\n            if (cVar3 == '\x01') {\n              if ((*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000) != 0) {\n                prVar31->field_0x34 =\n                     prVar31->field_0x34 & 0xfb |\n                     (byte)(((uint)(*(int *)&prVar36[iVar7].field_0x4 << 0x14 |\n                                   *(int *)&prVar31->field_0x34 << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if ((*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000) != 0) {\n                  bVar4 = prVar31->field_0x34;\nLAB_00492380:\n                  prVar31->field_0x34 = bVar4 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar4 = prVar31->field_0x34;\n              bVar5 = (byte)(((uint)(*(int *)&prVar31->field_0x34 << 5 |\n                                    *(int *)&prVar36[iVar7].field_0x4 << 0x14) >> 0x1f) << 2);\n              prVar31->field_0x34 = bVar4 & 0xfb | bVar5;\n              if (cVar3 == '\x02') {\n                prVar31->field_0x34 = bVar4 & 0xf3 | bVar5 | 8;\n              }\n              else {\n                if (cVar3 != '\x04') {\n                  if (cVar3 != '\f') goto LAB_004922f0;\n                  bVar4 = prVar31->field_0x34;\n                  goto LAB_00492380;\n                }\n                prVar31->field_0x34 = prVar31->field_0x34 & 0xfd | 2;\n              }\n            }\n            piVar25 = piVar25 + 1;\n          } while (piVar25 != piVar16);\n        }\n        rVar8 = register_state(dfa,prVar31,uVar19);\n        if (rVar8 == _REG_NOERROR) {\n          return (reg_errcode_t)prVar31;\n        }\n        free_state(prVar31);\n      }\n      else {\n        (*(code *)PTR_free_004bf39c)(prVar31);\n      }\n    }\n    prVar22->nodes = (re_token_t *)0xc;\n  }\n  return _REG_NOERROR;\n}\n\n" comment comment (function_definition "reg_errcode_t re_string_reconstruct(re_string_t *pstr,Idx idx,int eflags)\n\n{\n  bool bVar1;\n  uchar uVar2;\n  char cVar3;\n  byte bVar4;\n  byte bVar5;\n  undefined3 extraout_var;\n  re_dfa_t *prVar6;\n  int iVar7;\n  reg_errcode_t rVar8;\n  wint_t *pwVar9;\n  Idx IVar10;\n  Idx *pIVar11;\n  uchar *puVar12;\n  re_dfa_t *prVar13;\n  undefined1 *puVar14;\n  int iVar15;\n  int *piVar16;\n  Idx *pIVar17;\n  _Bool _Var18;\n  uint uVar19;\n  Idx *pIVar20;\n  uchar *puVar21;\n  re_dfa_t *prVar22;\n  undefined1 *puVar23;\n  int *piVar25;\n  wint_t wVar26;\n  re_dfa_t *prVar27;\n  byte *pbVar28;\n  re_dfa_t *dfa;\n  re_node_set **pprVar29;\n  re_dfa_t *prVar30;\n  re_dfa_t *set2;\n  re_dfastate_t *prVar31;\n  int iVar32;\n  re_dfastate_t **pprVar33;\n  uint uVar34;\n  Idx *unaff_s4;\n  Idx *unaff_s5;\n  Idx *unaff_s6;\n  re_dfa_t *unaff_s7;\n  uint uVar35;\n  mbstate_t *unaff_s8;\n  re_token_t *prVar36;\n  code *pcVar37;\n  int iStack_1ac;\n  int iStack_1a8;\n  undefined1 auStack_190 [8];\n  size_t sStack_188;\n  re_dfa_t rStack_184;\n  reg_errcode_t rStack_84;\n  re_string_t *prStack_80;\n  int iStack_7c;\n  Idx IStack_78;\n  int iStack_74;\n  Idx *pIStack_70;\n  Idx *pIStack_6c;\n  Idx *pIStack_68;\n  re_dfa_t *prStack_64;\n  mbstate_t *pmStack_60;\n  code *pcStack_5c;\n  wchar_t wc2;\n  mbstate_t cur_state;\n  uchar buf [6];\n  undefined1 *puVar24;\n  \n  prVar6 = *(re_dfa_t **)PTR___stack_chk_guard_004bf38c;\n  pIVar17 = (Idx *)(idx - pstr->raw_mbs_idx);\n  if (idx < pstr->raw_mbs_idx) {\n    if (1 < pstr->mb_cur_max) {\n      *(undefined1 *)&(pstr->cur_state).__count = 0;\n      *(undefined1 *)((int)&(pstr->cur_state).__count + 1) = 0;\n      *(undefined1 *)((int)&(pstr->cur_state).__count + 2) = 0;\n      *(undefined1 *)((int)&(pstr->cur_state).__count + 3) = 0;\n      (pstr->cur_state).__value.__wchb[0] = '\0';\n      (pstr->cur_state).__value.__wchb[1] = '\0';\n      (pstr->cur_state).__value.__wchb[2] = '\0';\n      (pstr->cur_state).__value.__wchb[3] = '\0';\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    uVar19 = 6;\n    if ((eflags & 1U) != 0) {\n      uVar19 = 4;\n    }\n    pstr->tip_context = uVar19;\n    pIVar17 = (Idx *)idx;\n    if (pstr->mbs_allocated == '\0') {\n      pstr->mbs = pstr->raw_mbs;\n    }\n  }\n  prVar27 = (re_dfa_t *)idx;\n  prVar30 = (re_dfa_t *)eflags;\n  if (pIVar17 != (Idx *)0x0) {\n    if ((int)pIVar17 < pstr->valid_raw_len) {\n      if (pstr->offsets_needed == '\0') {\n        uVar19 = re_string_context_at(pstr,(Idx)((int)pIVar17 + -1),eflags);\n        pstr->tip_context = uVar19;\n        prVar27 = (re_dfa_t *)((int)pIVar17 * 4);\n        if (pstr->mb_cur_max < 2) {\n          uVar2 = pstr->mbs_allocated;\n        }\n        else {\n          prVar30 = (re_dfa_t *)((pstr->valid_len - (int)pIVar17) * 4);\n          prVar27 = (re_dfa_t *)(pstr->wcs + (int)pIVar17);\n          (*(code *)PTR_memmove_004bf3a4)();\n          uVar2 = pstr->mbs_allocated;\n        }\n        if (uVar2 == '\0') {\n          iVar7 = pstr->valid_len;\n        }\n        else {\n          prVar30 = (re_dfa_t *)(pstr->valid_len - (int)pIVar17);\n          prVar27 = (re_dfa_t *)(pstr->mbs + (int)pIVar17);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar7 = pstr->valid_len;\n        }\n        pstr->valid_len = iVar7 - (int)pIVar17;\n        pstr->valid_raw_len = pstr->valid_raw_len - (int)pIVar17;\n        goto LAB_00491360;\n      }\n      unaff_s6 = (Idx *)pstr->valid_len;\n      unaff_s5 = pstr->offsets;\n      puVar23 = (undefined1 *)0x0;\n      pIVar11 = unaff_s6;\n      do {\n        unaff_s4 = (Idx *)((int)(puVar23 + (int)pIVar11) / 2);\n        iVar7 = unaff_s5[(int)unaff_s4];\n        bVar1 = (int)puVar23 < (int)unaff_s4;\n        pIVar20 = unaff_s4;\n        if (iVar7 <= (int)pIVar17) {\n          puVar23 = (undefined1 *)((int)unaff_s4 + 1);\n          if ((int)pIVar17 <= iVar7) goto LAB_0049145c;\n          bVar1 = (int)puVar23 < (int)pIVar11;\n          pIVar20 = pIVar11;\n        }\n        pIVar11 = pIVar20;\n      } while (bVar1);\n      if (iVar7 < (int)pIVar17) {\n        unaff_s4 = (Idx *)((int)unaff_s4 + 1);\n      }\nLAB_0049145c:\n      prVar27 = (re_dfa_t *)((int)unaff_s4 + -1);\n      uVar19 = re_string_context_at(pstr,(Idx)prVar27,eflags);\n      pstr->tip_context = uVar19;\n      if ((((int)unaff_s6 <= (int)pIVar17) || (pIVar17 != unaff_s4)) ||\n         (eflags = (int)pIVar17 * 4, (Idx *)unaff_s5[(int)unaff_s4] != pIVar17)) {\n        pstr->len = (Idx)((int)pIVar17 + (pstr->raw_len - idx));\n        pstr->stop = (Idx)((int)pIVar17 + (pstr->raw_stop - idx));\n        pstr->offsets_needed = '\0';\n        if ((0 < (int)unaff_s4) && ((Idx *)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pIVar17))\n        {\n          pIVar11 = unaff_s5 + (int)(unaff_s4 + 0x10000000);\n          do {\n            unaff_s4 = (Idx *)((int)unaff_s4 + -1);\n            if (unaff_s4 == (Idx *)0x0) break;\n            pIVar20 = pIVar11 + -2;\n            pIVar11 = pIVar11 + -1;\n          } while ((Idx *)*pIVar20 == pIVar17);\n        }\n        if ((int)unaff_s4 < (int)unaff_s6) {\n          pwVar9 = pstr->wcs + (int)unaff_s4;\n          wVar26 = *pwVar9;\n          while (wVar26 == 0xffffffff) {\n            unaff_s4 = (Idx *)((int)unaff_s4 + 1);\n            pwVar9 = pwVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            wVar26 = *pwVar9;\n          }\nLAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;\n          prVar30 = (re_dfa_t *)(*unaff_s4 - (int)pIVar17);\n          pstr->valid_len = (Idx)prVar30;\n          if (prVar30 == (re_dfa_t *)0x0) goto LAB_00491650;\n          if (0 < (int)prVar30) {\n            iVar7 = 0;\n            do {\n              pstr->wcs[iVar7] = 0xffffffff;\n              iVar7 = iVar7 + 1;\n              prVar30 = (re_dfa_t *)pstr->valid_len;\n            } while (iVar7 < (int)prVar30);\n          }\n          prVar27 = (re_dfa_t *)0xff;\n          (*(code *)PTR_memset_004bf260)(pstr->mbs);\n          IVar10 = pstr->valid_len;\n        }\n        else {\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          pstr->valid_len = 0;\nLAB_00491650:\n          IVar10 = pstr->valid_len;\n        }\n        pstr->valid_raw_len = IVar10;\n        goto LAB_00491360;\n      }\n      (*(code *)PTR_memmove_004bf3a4)\n                (pstr->wcs,pstr->wcs + (int)pIVar17,((int)unaff_s6 - (int)pIVar17) * 4);\n      prVar30 = (re_dfa_t *)(pstr->valid_len - (int)pIVar17);\n      prVar27 = (re_dfa_t *)(pstr->mbs + (int)pIVar17);\n      (*(code *)PTR_memmove_004bf3a4)();\n      iVar7 = pstr->valid_len - (int)pIVar17;\n      pstr->valid_len = iVar7;\n      pstr->valid_raw_len = pstr->valid_raw_len - (int)pIVar17;\n      if (iVar7 < 1) goto LAB_00491360;\n      iVar7 = 0;\n      do {\n        pstr->offsets[iVar7] = *(int *)((int)pstr->offsets + eflags) - (int)pIVar17;\n        iVar7 = iVar7 + 1;\n        eflags = eflags + 4;\n      } while (iVar7 < pstr->valid_len);\n      uVar2 = pstr->mbs_allocated;\n    }\n    else {\n      unaff_s6 = (Idx *)pstr->valid_len;\n      if (pstr->offsets_needed != '\0') {\n        pstr->len = (Idx)((int)pIVar17 + (pstr->raw_len - idx));\n        pstr->stop = (Idx)((int)pIVar17 + (pstr->raw_stop - idx));\n        pstr->offsets_needed = '\0';\n      }\n      pstr->valid_len = 0;\n      if (pstr->mb_cur_max < 2) {\n        prVar27 = (re_dfa_t *)\n                  (uint)*(byte *)((int)pIVar17 + (int)(pstr->raw_mbs + pstr->raw_mbs_idx + -1));\n        pstr->valid_raw_len = 0;\n        if (pstr->trans != (uchar *)0x0) {\n          prVar27 = (re_dfa_t *)(uint)pstr->trans[(int)prVar27];\n        }\n        uVar19 = 1;\n        if ((pstr->word_char[(int)prVar27 >> 5] >> ((uint)prVar27 & 0x1f) & 1) == 0) {\n          uVar19 = 2;\n          if (prVar27 == (re_dfa_t *)&DAT_0000000a) {\n            if (pstr->newline_anchor == '\0') {\n              uVar19 = 0;\n            }\n          }\n          else {\n            uVar19 = 0;\n          }\n        }\n        pstr->tip_context = uVar19;\n        goto LAB_00491360;\n      }\n      if (pstr->is_utf8 == '\0') {\nLAB_0049179c:\n        iVar7 = pstr->raw_mbs_idx;\nLAB_004917a0:\n        pIVar11 = (Idx *)(iVar7 + pstr->valid_raw_len);\n        if ((int)pIVar11 < idx) {\n          unaff_s8 = &pstr->cur_state;\n          unaff_s7 = (re_dfa_t *)&wc2;\n          do {\n            unaff_s5 = pIVar11;\n            iVar32 = pstr->raw_len - (int)unaff_s5;\n            cur_state.__count = (pstr->cur_state).__count;\n            cur_state.__value = (pstr->cur_state).__value;\n            prVar27 = (re_dfa_t *)((int)unaff_s5 + (int)pstr->raw_mbs);\n            iVar7 = (*(code *)PTR_mbrtowc_004bf2ec)(unaff_s7,prVar27,iVar32,unaff_s8);\n            unaff_s4 = (Idx *)wc2;\n            if (0xfffffffc < iVar7 - 1U) {\n              if (iVar7 == 0) {\n                unaff_s4 = (Idx *)0x0;\n              }\n              else if (iVar32 == 0) {\n                unaff_s4 = (Idx *)0x0;\n              }\n              else {\n                unaff_s4 = (Idx *)(uint)*(byte *)((int)unaff_s5 + (int)pstr->raw_mbs);\n              }\n              (pstr->cur_state).__count = cur_state.__count;\n              (pstr->cur_state).__value = cur_state.__value;\n              iVar7 = 1;\n            }\n            pIVar11 = (Idx *)((int)unaff_s5 + iVar7);\n          } while ((int)pIVar11 < idx);\n          pstr->valid_len = (int)pIVar11 - idx;\n          if (unaff_s4 != (Idx *)0xffffffff) goto LAB_00491834;\n        }\n        else {\n          pstr->valid_len = (int)pIVar11 - idx;\n        }\n        prVar27 = (re_dfa_t *)((int)unaff_s6 + -1);\n        uVar19 = re_string_context_at(pstr,(Idx)prVar27,eflags);\n        pstr->tip_context = uVar19;\n      }\n      else {\n        prVar30 = (re_dfa_t *)pstr->raw_mbs;\n        unaff_s4 = (Idx *)((int)prVar30->word_char + pstr->raw_mbs_idx + -0x60);\n        prVar27 = (re_dfa_t *)((int)unaff_s4 + ((int)pIVar17 - pstr->mb_cur_max));\n        if (prVar27 <= prVar30) {\n          prVar27 = prVar30;\n        }\n        prVar30 = (re_dfa_t *)((int)unaff_s4 + (int)((int)pIVar17 + -1));\n        unaff_s5 = pIVar17;\n        if (prVar30 < prVar27) goto LAB_0049179c;\n        bVar4 = *(byte *)&prVar30->nodes;\n        unaff_s7 = prVar30;\n        while ((bVar4 & 0xc0) == 0x80) {\n          prVar22 = (re_dfa_t *)((int)&unaff_s7[-1].subexp_map + 3);\n          unaff_s7 = prVar30;\n          if (prVar22 < prVar27) goto LAB_0049179c;\n          unaff_s7 = prVar22;\n          bVar4 = *(byte *)&prVar22->nodes;\n        }\n        puVar21 = pstr->trans;\n        puVar23 = (undefined1 *)((int)unaff_s4 + (pstr->len - (int)unaff_s7));\n        prVar27 = unaff_s7;\n        if (puVar21 != (uchar *)0x0) {\n          puVar14 = (undefined1 *)0x6;\n          if ((int)puVar23 < 7) {\n            puVar14 = puVar23;\n          }\n          if ((int)(puVar14 + -1) < 0) {\n            prVar27 = (re_dfa_t *)buf;\n          }\n          else {\n            pbVar28 = (byte *)((int)unaff_s7->word_char + (int)(puVar14 + -0x61));\n            puVar12 = buf + (int)puVar14;\n            do {\n              puVar12[-1] = puVar21[*pbVar28];\n              puVar12 = puVar12 + -1;\n              pbVar28 = pbVar28 + -1;\n            } while (puVar12 != buf);\n            prVar27 = (re_dfa_t *)buf;\n          }\n        }\n        cur_state.__count = 0;\n        cur_state.__value.__wch = 0;\n        uVar19 = (*(code *)PTR_mbrtowc_004bf2ec)(&wc2);\n        uVar35 = (int)((int)unaff_s4 + (int)pIVar17) - (int)unaff_s7;\n        if ((uVar19 < uVar35) || (0xfffffffd < uVar19)) goto LAB_0049179c;\n        *(undefined1 *)&(pstr->cur_state).__count = 0;\n        *(undefined1 *)((int)&(pstr->cur_state).__count + 1) = 0;\n        *(undefined1 *)((int)&(pstr->cur_state).__count + 2) = 0;\n        *(undefined1 *)((int)&(pstr->cur_state).__count + 3) = 0;\n        (pstr->cur_state).__value.__wchb[0] = '\0';\n        (pstr->cur_state).__value.__wchb[1] = '\0';\n        (pstr->cur_state).__value.__wchb[2] = '\0';\n        (pstr->cur_state).__value.__wchb[3] = '\0';\n        pstr->valid_len = uVar19 - uVar35;\n        unaff_s4 = (Idx *)wc2;\n        if (wc2 == -1) {\n          iVar7 = pstr->raw_mbs_idx;\n          goto LAB_004917a0;\n        }\nLAB_00491834:\n        if (pstr->word_ops_used == '\0') {\nLAB_00491840:\n          uVar19 = 2;\n          if (unaff_s4 == (Idx *)&DAT_0000000a) {\n            if (pstr->newline_anchor == '\0') {\n              uVar19 = 0;\n            }\n          }\n          else {\n            uVar19 = 0;\n          }\n        }\n        else {\n          iVar7 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          uVar19 = 1;\n          if (iVar7 == 0) {\n            if (unaff_s4 == (Idx *)0x5f) {\n              pstr->tip_context = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }\n        pstr->tip_context = uVar19;\n      }\nLAB_00491854:\n      prVar30 = (re_dfa_t *)pstr->valid_len;\n      if (prVar30 == (re_dfa_t *)0x0) {\nLAB_00491860:\n        IVar10 = pstr->valid_len;\n      }\n      else {\n        iVar7 = 0;\n        if (0 < (int)prVar30) {\n          do {\n            pstr->wcs[iVar7] = 0xffffffff;\n            iVar7 = iVar7 + 1;\n            prVar30 = (re_dfa_t *)pstr->valid_len;\n          } while (iVar7 < (int)prVar30);\n        }\n        prVar27 = (re_dfa_t *)0xff;\n        if (pstr->mbs_allocated == '\0') goto LAB_00491860;\n        (*(code *)PTR_memset_004bf260)(pstr->mbs);\n        IVar10 = pstr->valid_len;\n      }\n      pstr->valid_raw_len = IVar10;\nLAB_00491360:\n      uVar2 = pstr->mbs_allocated;\n    }\n    if (uVar2 == '\0') {\n      pstr->mbs = pstr->mbs + (int)pIVar17;\n    }\n  }\n  pstr->raw_mbs_idx = idx;\n  iVar7 = pstr->len - (int)pIVar17;\n  pstr->len = iVar7;\n  iVar32 = pstr->stop - (int)pIVar17;\n  pstr->stop = iVar32;\n  if (pstr->mb_cur_max < 2) {\n    if (pstr->mbs_allocated == '\0') {\n      pstr->valid_len = iVar7;\n      goto LAB_00491aa8;\n    }\n    if (pstr->icase == '\0') {\n      if (pstr->trans == (uchar *)0x0) goto LAB_00491aa8;\n      re_string_translate_buffer(pstr);\n      pstr->cur_idx = 0;\n    }\n    else {\n      build_upper_buffer(pstr);\n      pstr->cur_idx = 0;\n    }\n  }\n  else {\n    if (pstr->icase == '\0') {\n      build_wcs_buffer(pstr);\n      pstr->cur_idx = 0;\n      goto LAB_00491aac;\n    }\n    rVar8 = build_wcs_upper_buffer(pstr);\n    if (rVar8 != _REG_NOERROR) goto LAB_00491ab0;\nLAB_00491aa8:\n    pstr->cur_idx = 0;\n  }\nLAB_00491aac:\n  rVar8 = _REG_NOERROR;\nLAB_00491ab0:\n  if (prVar6 == *(re_dfa_t **)PTR___stack_chk_guard_004bf38c) {\n    return rVar8;\n  }\n  pcVar37 = re_compile_fastmap_iter;\n  (*(code *)PTR___stack_chk_fail_004bf34c)();\n  rStack_84 = *(reg_errcode_t *)PTR___stack_chk_guard_004bf38c;\n  prVar36 = prVar6->nodes;\n  if (*(int *)&prVar36[0xb].field_0x4 == 1) {\n    uVar19 = (uint)((int)prVar6->nexts << 9) >> 0x1f;\n  }\n  else {\n    uVar19 = 0;\n  }\n  prVar22 = prVar6;\n  dfa = prVar27;\n  set2 = prVar30;\n  prStack_80 = pstr;\n  iStack_7c = iVar32;\n  IStack_78 = idx;\n  iStack_74 = eflags;\n  pIStack_70 = unaff_s4;\n  pIStack_6c = unaff_s5;\n  pIStack_68 = unaff_s6;\n  prStack_64 = unaff_s7;\n  pmStack_60 = unaff_s8;\n  pcStack_5c = pcVar37;\n  if (0 < (int)prVar27->nodes_len) {\n    iStack_1a8 = 0;\n    do {\n      iVar7 = prVar27->nexts[iStack_1a8];\n      prVar13 = (re_dfa_t *)(iVar7 * 8);\n      pbVar28 = (byte *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset);\n      prVar22 = (re_dfa_t *)(uint)pbVar28[4];\n      dfa = (re_dfa_t *)&DAT_00000001;\n      if (prVar22 == (re_dfa_t *)&DAT_00000001) {\n        uVar35 = (uint)*pbVar28;\n        *(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;\n        if (uVar19 != 0) {\n          if (uVar35 + 0x80 < 0x180) {\n            piVar25 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar35 = *(uint *)(*piVar25 + uVar35 * 4);\n          }\n          *(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;\n        }\n        if (((int)prVar6->nexts << 9 < 0) &&\n           (prVar22 = prVar13, 1 < *(int *)&prVar36[0xb].field_0x4)) {\n          rStack_184.nodes._0_1_ = *(byte *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset);\n          if ((re_bitset_ptr_t)(iVar7 + 1U) < prVar36[1].opr.sbcset) {\n            puVar14 = (undefined1 *)((int)&prVar13->nodes_len + (int)(prVar36->opr).sbcset);\n            pprVar29 = (re_node_set **)&prVar13->org_indices;\n            if ((*(uint *)(puVar14 + 4) & 0xff000400) == 0x1000400) {\n              puVar24 = (undefined1 *)((int)&rStack_184.nodes + 1);\n              do {\n                puVar23 = puVar24 + 1;\n                *puVar24 = *puVar14;\n                if (prVar36[1].opr.sbcset <= puVar23 + (iVar7 - (int)&rStack_184)) break;\n                puVar14 = (undefined1 *)((int)(prVar36->opr).sbcset + (int)pprVar29);\n                pprVar29 = pprVar29 + 2;\n                puVar24 = puVar23;\n              } while ((*(uint *)(puVar14 + 4) & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar23 = (undefined1 *)((int)&rStack_184.nodes + 1);\n            }\n          }\n          else {\n            puVar23 = (undefined1 *)((int)&rStack_184.nodes + 1);\n          }\n          auStack_190._4_4_ = 0;\n          sStack_188 = 0;\n          dfa = &rStack_184;\n          iVar7 = -(int)dfa;\n          prVar22 = (re_dfa_t *)auStack_190;\n          set2 = (re_dfa_t *)(puVar23 + iVar7);\n          prVar13 = (re_dfa_t *)(*(code *)PTR_mbrtowc_004bf2ec)();\n          if ((re_dfa_t *)(puVar23 + iVar7) == prVar13) {\n            dfa = (re_dfa_t *)(*(code *)PTR_towlower_004bf37c)(auStack_190._0_4_);\n            set2 = (re_dfa_t *)(auStack_190 + 4);\n            prVar22 = &rStack_184;\n            iVar7 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar7 != -1) {\n              *(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_) = 1;\n            }\n          }\n        }\n      }\n      else {\n        dfa = (re_dfa_t *)&DAT_00000006;\n        if (prVar22 == (re_dfa_t *)0x3) {\n          iStack_1ac = 0;\n          iVar7 = 0;\n          do {\n            uVar34 = *(uint *)(*(int *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset) +\n                              iStack_1ac);\n            uVar35 = 0;\n            iVar32 = iVar7;\n            do {\n              if (((uVar34 >> (uVar35 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)&prVar30->nodes + iVar32) = 1, uVar19 != 0)) {\n                iVar15 = iVar32;\n                if (iVar32 + 0x80U < 0x180) {\n                  piVar25 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar15 = *(int *)(*piVar25 + (uVar35 + iVar7) * 4);\n                }\n                *(undefined1 *)((int)&prVar30->nodes + iVar15) = 1;\n              }\n              uVar35 = uVar35 + 1;\n              iVar32 = iVar32 + 1;\n            } while (uVar35 != 0x20);\n            iVar7 = iVar7 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar7 != 0x100);\n        }\n        else if (prVar22 == (re_dfa_t *)&DAT_00000006) {\n          piVar25 = *(int **)pbVar28;\n          if ((*(int *)&prVar36[0xb].field_0x4 < 2) ||\n             (((piVar25[9] == 0 && (-1 < *(char *)(piVar25 + 4))) && (piVar25[8] == 0)))) {\n            iVar7 = 0;\n            if (0 < piVar25[5]) {\n              do {\n                auStack_190._4_4_ = 0;\n                sStack_188 = 0;\n                dfa = *(re_dfa_t **)(*piVar25 + iVar7 * 4);\n                prVar22 = &rStack_184;\n                set2 = (re_dfa_t *)(auStack_190 + 4);\n                iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar35 = (uint)rStack_184.nodes._0_1_;\n                if ((iVar32 != -1) &&\n                   (*(undefined1 *)((int)&prVar30->nodes + uVar35) = 1, uVar19 != 0)) {\n                  if (uVar35 + 0x80 < 0x180) {\n                    piVar16 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar35 = *(uint *)(*piVar16 + uVar35 * 4);\n                  }\n                  *(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;\n                }\n                if ((((uint)prVar6->nexts & 0x400000) != 0) && (1 < *(int *)&prVar36[0xb].field_0x4)\n                   ) {\n                  dfa = (re_dfa_t *)\n                        (*(code *)PTR_towlower_004bf37c)(*(undefined4 *)(*piVar25 + iVar7 * 4));\n                  prVar22 = &rStack_184;\n                  set2 = (re_dfa_t *)(auStack_190 + 4);\n                  iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar32 != -1) {\n                    *(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_) = 1;\n                  }\n                }\n                iVar7 = iVar7 + 1;\n              } while (iVar7 < piVar25[5]);\n            }\n          }\n          else {\n            auStack_190._0_4_ = auStack_190._0_4_ & 0xffffff;\n            do {\n              auStack_190._4_4_ = 0;\n              sStack_188 = 0;\n              set2 = (re_dfa_t *)&DAT_00000001;\n              prVar22 = (re_dfa_t *)0x0;\n              dfa = (re_dfa_t *)auStack_190;\n              iVar7 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar7 == -2) {\n                *(undefined1 *)((int)&prVar30->nodes + (uint)auStack_190[0]) = 1;\n              }\n              bVar1 = auStack_190[0] != 0xff;\n              auStack_190[0] = auStack_190[0] + 1;\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)prVar22 & 0xfd) == 5) {\n            set2 = (re_dfa_t *)0x100;\n            dfa = (re_dfa_t *)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            prVar22 = prVar30;\n            break;\n          }\n          if (prVar22 == (re_dfa_t *)0x2) {\n            set2 = (re_dfa_t *)0x100;\n            dfa = (re_dfa_t *)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(prVar30);\n            *(byte *)&prVar6->inveclosures = *(byte *)&prVar6->inveclosures & 0x7f | 0x80;\n            prVar22 = prVar6;\n            break;\n          }\n        }\n      }\n      iStack_1a8 = iStack_1a8 + 1;\n    } while (iStack_1a8 < (int)prVar27->nodes_len);\n  }\n  if (rStack_84 == *(reg_errcode_t *)PTR___stack_chk_guard_004bf38c) {\n    return *(reg_errcode_t *)PTR___stack_chk_guard_004bf38c;\n  }\n  (*(code *)PTR___stack_chk_fail_004bf34c)();\n  uVar19 = set2->nodes_alloc;\n  if (uVar19 == 0) {\n    prVar22->nodes = (re_token_t *)0x0;\n  }\n  else {\n    if (0 < (int)uVar19) {\n      pIVar17 = (Idx *)set2->nodes_len;\n      pIVar11 = pIVar17 + uVar19;\n      do {\n        iVar7 = *pIVar17;\n        pIVar17 = pIVar17 + 1;\n        uVar19 = uVar19 + iVar7;\n      } while (pIVar17 != pIVar11);\n    }\n    iVar7 = dfa->state_table[uVar19 & dfa->state_hash_mask].num;\n    if (0 < iVar7) {\n      pprVar33 = dfa->state_table[uVar19 & dfa->state_hash_mask].array;\n      iVar32 = 0;\n      do {\n        prVar31 = *pprVar33;\n        if ((uVar19 == prVar31->hash) &&\n           (_Var18 = re_node_set_compare(&prVar31->nodes,(re_node_set *)set2),\n           CONCAT31(extraout_var,_Var18) != 0)) {\n          return (reg_errcode_t)prVar31;\n        }\n        iVar32 = iVar32 + 1;\n        pprVar33 = pprVar33 + 1;\n      } while (iVar7 != iVar32);\n    }\n    prVar31 = (re_dfastate_t *)(*(code *)PTR_calloc_004bf160)(0x38,1);\n    if (prVar31 != (re_dfastate_t *)0x0) {\n      rVar8 = re_node_set_init_copy(&prVar31->nodes,(re_node_set *)set2);\n      if (rVar8 == _REG_NOERROR) {\n        prVar31->entrance_nodes = &prVar31->nodes;\n        if (0 < (int)set2->nodes_alloc) {\n          prVar36 = dfa->nodes;\n          piVar25 = (int *)set2->nodes_len;\n          piVar16 = piVar25 + set2->nodes_alloc;\n          do {\n            iVar7 = *piVar25;\n            cVar3 = prVar36[iVar7].field_0x4;\n            if (cVar3 == '\x01') {\n              if ((*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000) != 0) {\n                prVar31->field_0x34 =\n                     prVar31->field_0x34 & 0xfb |\n                     (byte)(((uint)(*(int *)&prVar36[iVar7].field_0x4 << 0x14 |\n                                   *(int *)&prVar31->field_0x34 << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if ((*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000) != 0) {\n                  bVar4 = prVar31->field_0x34;\nLAB_00492380:\n                  prVar31->field_0x34 = bVar4 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar4 = prVar31->field_0x34;\n              bVar5 = (byte)(((uint)(*(int *)&prVar31->field_0x34 << 5 |\n                                    *(int *)&prVar36[iVar7].field_0x4 << 0x14) >> 0x1f) << 2);\n              prVar31->field_0x34 = bVar4 & 0xfb | bVar5;\n              if (cVar3 == '\x02') {\n                prVar31->field_0x34 = bVar4 & 0xf3 | bVar5 | 8;\n              }\n              else {\n                if (cVar3 != '\x04') {\n                  if (cVar3 != '\f') goto LAB_004922f0;\n                  bVar4 = prVar31->field_0x34;\n                  goto LAB_00492380;\n                }\n                prVar31->field_0x34 = prVar31->field_0x34 & 0xfd | 2;\n              }\n            }\n            piVar25 = piVar25 + 1;\n          } while (piVar25 != piVar16);\n        }\n        rVar8 = register_state(dfa,prVar31,uVar19);\n        if (rVar8 == _REG_NOERROR) {\n          return (reg_errcode_t)prVar31;\n        }\n        free_state(prVar31);\n      }\n      else {\n        (*(code *)PTR_free_004bf39c)(prVar31);\n      }\n    }\n    prVar22->nodes = (re_token_t *)0xc;\n  }\n  return _REG_NOERROR;\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  bool bVar1;\n  uchar uVar2;\n  char cVar3;\n  byte bVar4;\n  byte bVar5;\n  undefined3 extraout_var;\n  re_dfa_t *prVar6;\n  int iVar7;\n  reg_errcode_t rVar8;\n  wint_t *pwVar9;\n  Idx IVar10;\n  Idx *pIVar11;\n  uchar *puVar12;\n  re_dfa_t *prVar13;\n  undefined1 *puVar14;\n  int iVar15;\n  int *piVar16;\n  Idx *pIVar17;\n  _Bool _Var18;\n  uint uVar19;\n  Idx *pIVar20;\n  uchar *puVar21;\n  re_dfa_t *prVar22;\n  undefined1 *puVar23;\n  int *piVar25;\n  wint_t wVar26;\n  re_dfa_t *prVar27;\n  byte *pbVar28;\n  re_dfa_t *dfa;\n  re_node_set **pprVar29;\n  re_dfa_t *prVar30;\n  re_dfa_t *set2;\n  re_dfastate_t *prVar31;\n  int iVar32;\n  re_dfastate_t **pprVar33;\n  uint uVar34;\n  Idx *unaff_s4;\n  Idx *unaff_s5;\n  Idx *unaff_s6;\n  re_dfa_t *unaff_s7;\n  uint uVar35;\n  mbstate_t *unaff_s8;\n  re_token_t *prVar36;\n  code *pcVar37;\n  int iStack_1ac;\n  int iStack_1a8;\n  undefined1 auStack_190 [8];\n  size_t sStack_188;\n  re_dfa_t rStack_184;\n  reg_errcode_t rStack_84;\n  re_string_t *prStack_80;\n  int iStack_7c;\n  Idx IStack_78;\n  int iStack_74;\n  Idx *pIStack_70;\n  Idx *pIStack_6c;\n  Idx *pIStack_68;\n  re_dfa_t *prStack_64;\n  mbstate_t *pmStack_60;\n  code *pcStack_5c;\n  wchar_t wc2;\n  mbstate_t cur_state;\n  uchar buf [6];\n  undefined1 *puVar24;\n  \n  prVar6 = *(re_dfa_t **)PTR___stack_chk_guard_004bf38c;\n  pIVar17 = (Idx *)(idx - pstr->raw_mbs_idx);\n  if (idx < pstr->raw_mbs_idx) {\n    if (1 < pstr->mb_cur_max) {\n      *(undefined1 *)&(pstr->cur_state).__count = 0;\n      *(undefined1 *)((int)&(pstr->cur_state).__count + 1) = 0;\n      *(undefined1 *)((int)&(pstr->cur_state).__count + 2) = 0;\n      *(undefined1 *)((int)&(pstr->cur_state).__count + 3) = 0;\n      (pstr->cur_state).__value.__wchb[0] = '\0';\n      (pstr->cur_state).__value.__wchb[1] = '\0';\n      (pstr->cur_state).__value.__wchb[2] = '\0';\n      (pstr->cur_state).__value.__wchb[3] = '\0';\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    uVar19 = 6;\n    if ((eflags & 1U) != 0) {\n      uVar19 = 4;\n    }\n    pstr->tip_context = uVar19;\n    pIVar17 = (Idx *)idx;\n    if (pstr->mbs_allocated == '\0') {\n      pstr->mbs = pstr->raw_mbs;\n    }\n  }\n  prVar27 = (re_dfa_t *)idx;\n  prVar30 = (re_dfa_t *)eflags;\n  if (pIVar17 != (Idx *)0x0) {\n    if ((int)pIVar17 < pstr->valid_raw_len) {\n      if (pstr->offsets_needed == '\0') {\n        uVar19 = re_string_context_at(pstr,(Idx)((int)pIVar17 + -1),eflags);\n        pstr->tip_context = uVar19;\n        prVar27 = (re_dfa_t *)((int)pIVar17 * 4);\n        if (pstr->mb_cur_max < 2) {\n          uVar2 = pstr->mbs_allocated;\n        }\n        else {\n          prVar30 = (re_dfa_t *)((pstr->valid_len - (int)pIVar17) * 4);\n          prVar27 = (re_dfa_t *)(pstr->wcs + (int)pIVar17);\n          (*(code *)PTR_memmove_004bf3a4)();\n          uVar2 = pstr->mbs_allocated;\n        }\n        if (uVar2 == '\0') {\n          iVar7 = pstr->valid_len;\n        }\n        else {\n          prVar30 = (re_dfa_t *)(pstr->valid_len - (int)pIVar17);\n          prVar27 = (re_dfa_t *)(pstr->mbs + (int)pIVar17);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar7 = pstr->valid_len;\n        }\n        pstr->valid_len = iVar7 - (int)pIVar17;\n        pstr->valid_raw_len = pstr->valid_raw_len - (int)pIVar17;\n        goto LAB_00491360;\n      }\n      unaff_s6 = (Idx *)pstr->valid_len;\n      unaff_s5 = pstr->offsets;\n      puVar23 = (undefined1 *)0x0;\n      pIVar11 = unaff_s6;\n      do {\n        unaff_s4 = (Idx *)((int)(puVar23 + (int)pIVar11) / 2);\n        iVar7 = unaff_s5[(int)unaff_s4];\n        bVar1 = (int)puVar23 < (int)unaff_s4;\n        pIVar20 = unaff_s4;\n        if (iVar7 <= (int)pIVar17) {\n          puVar23 = (undefined1 *)((int)unaff_s4 + 1);\n          if ((int)pIVar17 <= iVar7) goto LAB_0049145c;\n          bVar1 = (int)puVar23 < (int)pIVar11;\n          pIVar20 = pIVar11;\n        }\n        pIVar11 = pIVar20;\n      } while (bVar1);\n      if (iVar7 < (int)pIVar17) {\n        unaff_s4 = (Idx *)((int)unaff_s4 + 1);\n      }\nLAB_0049145c:\n      prVar27 = (re_dfa_t *)((int)unaff_s4 + -1);\n      uVar19 = re_string_context_at(pstr,(Idx)prVar27,eflags);\n      pstr->tip_context = uVar19;\n      if ((((int)unaff_s6 <= (int)pIVar17) || (pIVar17 != unaff_s4)) ||\n         (eflags = (int)pIVar17 * 4, (Idx *)unaff_s5[(int)unaff_s4] != pIVar17)) {\n        pstr->len = (Idx)((int)pIVar17 + (pstr->raw_len - idx));\n        pstr->stop = (Idx)((int)pIVar17 + (pstr->raw_stop - idx));\n        pstr->offsets_needed = '\0';\n        if ((0 < (int)unaff_s4) && ((Idx *)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pIVar17))\n        {\n          pIVar11 = unaff_s5 + (int)(unaff_s4 + 0x10000000);\n          do {\n            unaff_s4 = (Idx *)((int)unaff_s4 + -1);\n            if (unaff_s4 == (Idx *)0x0) break;\n            pIVar20 = pIVar11 + -2;\n            pIVar11 = pIVar11 + -1;\n          } while ((Idx *)*pIVar20 == pIVar17);\n        }\n        if ((int)unaff_s4 < (int)unaff_s6) {\n          pwVar9 = pstr->wcs + (int)unaff_s4;\n          wVar26 = *pwVar9;\n          while (wVar26 == 0xffffffff) {\n            unaff_s4 = (Idx *)((int)unaff_s4 + 1);\n            pwVar9 = pwVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            wVar26 = *pwVar9;\n          }\nLAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;\n          prVar30 = (re_dfa_t *)(*unaff_s4 - (int)pIVar17);\n          pstr->valid_len = (Idx)prVar30;\n          if (prVar30 == (re_dfa_t *)0x0) goto LAB_00491650;\n          if (0 < (int)prVar30) {\n            iVar7 = 0;\n            do {\n              pstr->wcs[iVar7] = 0xffffffff;\n              iVar7 = iVar7 + 1;\n              prVar30 = (re_dfa_t *)pstr->valid_len;\n            } while (iVar7 < (int)prVar30);\n          }\n          prVar27 = (re_dfa_t *)0xff;\n          (*(code *)PTR_memset_004bf260)(pstr->mbs);\n          IVar10 = pstr->valid_len;\n        }\n        else {\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          pstr->valid_len = 0;\nLAB_00491650:\n          IVar10 = pstr->valid_len;\n        }\n        pstr->valid_raw_len = IVar10;\n        goto LAB_00491360;\n      }\n      (*(code *)PTR_memmove_004bf3a4)\n                (pstr->wcs,pstr->wcs + (int)pIVar17,((int)unaff_s6 - (int)pIVar17) * 4);\n      prVar30 = (re_dfa_t *)(pstr->valid_len - (int)pIVar17);\n      prVar27 = (re_dfa_t *)(pstr->mbs + (int)pIVar17);\n      (*(code *)PTR_memmove_004bf3a4)();\n      iVar7 = pstr->valid_len - (int)pIVar17;\n      pstr->valid_len = iVar7;\n      pstr->valid_raw_len = pstr->valid_raw_len - (int)pIVar17;\n      if (iVar7 < 1) goto LAB_00491360;\n      iVar7 = 0;\n      do {\n        pstr->offsets[iVar7] = *(int *)((int)pstr->offsets + eflags) - (int)pIVar17;\n        iVar7 = iVar7 + 1;\n        eflags = eflags + 4;\n      } while (iVar7 < pstr->valid_len);\n      uVar2 = pstr->mbs_allocated;\n    }\n    else {\n      unaff_s6 = (Idx *)pstr->valid_len;\n      if (pstr->offsets_needed != '\0') {\n        pstr->len = (Idx)((int)pIVar17 + (pstr->raw_len - idx));\n        pstr->stop = (Idx)((int)pIVar17 + (pstr->raw_stop - idx));\n        pstr->offsets_needed = '\0';\n      }\n      pstr->valid_len = 0;\n      if (pstr->mb_cur_max < 2) {\n        prVar27 = (re_dfa_t *)\n                  (uint)*(byte *)((int)pIVar17 + (int)(pstr->raw_mbs + pstr->raw_mbs_idx + -1));\n        pstr->valid_raw_len = 0;\n        if (pstr->trans != (uchar *)0x0) {\n          prVar27 = (re_dfa_t *)(uint)pstr->trans[(int)prVar27];\n        }\n        uVar19 = 1;\n        if ((pstr->word_char[(int)prVar27 >> 5] >> ((uint)prVar27 & 0x1f) & 1) == 0) {\n          uVar19 = 2;\n          if (prVar27 == (re_dfa_t *)&DAT_0000000a) {\n            if (pstr->newline_anchor == '\0') {\n              uVar19 = 0;\n            }\n          }\n          else {\n            uVar19 = 0;\n          }\n        }\n        pstr->tip_context = uVar19;\n        goto LAB_00491360;\n      }\n      if (pstr->is_utf8 == '\0') {\nLAB_0049179c:\n        iVar7 = pstr->raw_mbs_idx;\nLAB_004917a0:\n        pIVar11 = (Idx *)(iVar7 + pstr->valid_raw_len);\n        if ((int)pIVar11 < idx) {\n          unaff_s8 = &pstr->cur_state;\n          unaff_s7 = (re_dfa_t *)&wc2;\n          do {\n            unaff_s5 = pIVar11;\n            iVar32 = pstr->raw_len - (int)unaff_s5;\n            cur_state.__count = (pstr->cur_state).__count;\n            cur_state.__value = (pstr->cur_state).__value;\n            prVar27 = (re_dfa_t *)((int)unaff_s5 + (int)pstr->raw_mbs);\n            iVar7 = (*(code *)PTR_mbrtowc_004bf2ec)(unaff_s7,prVar27,iVar32,unaff_s8);\n            unaff_s4 = (Idx *)wc2;\n            if (0xfffffffc < iVar7 - 1U) {\n              if (iVar7 == 0) {\n                unaff_s4 = (Idx *)0x0;\n              }\n              else if (iVar32 == 0) {\n                unaff_s4 = (Idx *)0x0;\n              }\n              else {\n                unaff_s4 = (Idx *)(uint)*(byte *)((int)unaff_s5 + (int)pstr->raw_mbs);\n              }\n              (pstr->cur_state).__count = cur_state.__count;\n              (pstr->cur_state).__value = cur_state.__value;\n              iVar7 = 1;\n            }\n            pIVar11 = (Idx *)((int)unaff_s5 + iVar7);\n          } while ((int)pIVar11 < idx);\n          pstr->valid_len = (int)pIVar11 - idx;\n          if (unaff_s4 != (Idx *)0xffffffff) goto LAB_00491834;\n        }\n        else {\n          pstr->valid_len = (int)pIVar11 - idx;\n        }\n        prVar27 = (re_dfa_t *)((int)unaff_s6 + -1);\n        uVar19 = re_string_context_at(pstr,(Idx)prVar27,eflags);\n        pstr->tip_context = uVar19;\n      }\n      else {\n        prVar30 = (re_dfa_t *)pstr->raw_mbs;\n        unaff_s4 = (Idx *)((int)prVar30->word_char + pstr->raw_mbs_idx + -0x60);\n        prVar27 = (re_dfa_t *)((int)unaff_s4 + ((int)pIVar17 - pstr->mb_cur_max));\n        if (prVar27 <= prVar30) {\n          prVar27 = prVar30;\n        }\n        prVar30 = (re_dfa_t *)((int)unaff_s4 + (int)((int)pIVar17 + -1));\n        unaff_s5 = pIVar17;\n        if (prVar30 < prVar27) goto LAB_0049179c;\n        bVar4 = *(byte *)&prVar30->nodes;\n        unaff_s7 = prVar30;\n        while ((bVar4 & 0xc0) == 0x80) {\n          prVar22 = (re_dfa_t *)((int)&unaff_s7[-1].subexp_map + 3);\n          unaff_s7 = prVar30;\n          if (prVar22 < prVar27) goto LAB_0049179c;\n          unaff_s7 = prVar22;\n          bVar4 = *(byte *)&prVar22->nodes;\n        }\n        puVar21 = pstr->trans;\n        puVar23 = (undefined1 *)((int)unaff_s4 + (pstr->len - (int)unaff_s7));\n        prVar27 = unaff_s7;\n        if (puVar21 != (uchar *)0x0) {\n          puVar14 = (undefined1 *)0x6;\n          if ((int)puVar23 < 7) {\n            puVar14 = puVar23;\n          }\n          if ((int)(puVar14 + -1) < 0) {\n            prVar27 = (re_dfa_t *)buf;\n          }\n          else {\n            pbVar28 = (byte *)((int)unaff_s7->word_char + (int)(puVar14 + -0x61));\n            puVar12 = buf + (int)puVar14;\n            do {\n              puVar12[-1] = puVar21[*pbVar28];\n              puVar12 = puVar12 + -1;\n              pbVar28 = pbVar28 + -1;\n            } while (puVar12 != buf);\n            prVar27 = (re_dfa_t *)buf;\n          }\n        }\n        cur_state.__count = 0;\n        cur_state.__value.__wch = 0;\n        uVar19 = (*(code *)PTR_mbrtowc_004bf2ec)(&wc2);\n        uVar35 = (int)((int)unaff_s4 + (int)pIVar17) - (int)unaff_s7;\n        if ((uVar19 < uVar35) || (0xfffffffd < uVar19)) goto LAB_0049179c;\n        *(undefined1 *)&(pstr->cur_state).__count = 0;\n        *(undefined1 *)((int)&(pstr->cur_state).__count + 1) = 0;\n        *(undefined1 *)((int)&(pstr->cur_state).__count + 2) = 0;\n        *(undefined1 *)((int)&(pstr->cur_state).__count + 3) = 0;\n        (pstr->cur_state).__value.__wchb[0] = '\0';\n        (pstr->cur_state).__value.__wchb[1] = '\0';\n        (pstr->cur_state).__value.__wchb[2] = '\0';\n        (pstr->cur_state).__value.__wchb[3] = '\0';\n        pstr->valid_len = uVar19 - uVar35;\n        unaff_s4 = (Idx *)wc2;\n        if (wc2 == -1) {\n          iVar7 = pstr->raw_mbs_idx;\n          goto LAB_004917a0;\n        }\nLAB_00491834:\n        if (pstr->word_ops_used == '\0') {\nLAB_00491840:\n          uVar19 = 2;\n          if (unaff_s4 == (Idx *)&DAT_0000000a) {\n            if (pstr->newline_anchor == '\0') {\n              uVar19 = 0;\n            }\n          }\n          else {\n            uVar19 = 0;\n          }\n        }\n        else {\n          iVar7 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          uVar19 = 1;\n          if (iVar7 == 0) {\n            if (unaff_s4 == (Idx *)0x5f) {\n              pstr->tip_context = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }\n        pstr->tip_context = uVar19;\n      }\nLAB_00491854:\n      prVar30 = (re_dfa_t *)pstr->valid_len;\n      if (prVar30 == (re_dfa_t *)0x0) {\nLAB_00491860:\n        IVar10 = pstr->valid_len;\n      }\n      else {\n        iVar7 = 0;\n        if (0 < (int)prVar30) {\n          do {\n            pstr->wcs[iVar7] = 0xffffffff;\n            iVar7 = iVar7 + 1;\n            prVar30 = (re_dfa_t *)pstr->valid_len;\n          } while (iVar7 < (int)prVar30);\n        }\n        prVar27 = (re_dfa_t *)0xff;\n        if (pstr->mbs_allocated == '\0') goto LAB_00491860;\n        (*(code *)PTR_memset_004bf260)(pstr->mbs);\n        IVar10 = pstr->valid_len;\n      }\n      pstr->valid_raw_len = IVar10;\nLAB_00491360:\n      uVar2 = pstr->mbs_allocated;\n    }\n    if (uVar2 == '\0') {\n      pstr->mbs = pstr->mbs + (int)pIVar17;\n    }\n  }\n  pstr->raw_mbs_idx = idx;\n  iVar7 = pstr->len - (int)pIVar17;\n  pstr->len = iVar7;\n  iVar32 = pstr->stop - (int)pIVar17;\n  pstr->stop = iVar32;\n  if (pstr->mb_cur_max < 2) {\n    if (pstr->mbs_allocated == '\0') {\n      pstr->valid_len = iVar7;\n      goto LAB_00491aa8;\n    }\n    if (pstr->icase == '\0') {\n      if (pstr->trans == (uchar *)0x0) goto LAB_00491aa8;\n      re_string_translate_buffer(pstr);\n      pstr->cur_idx = 0;\n    }\n    else {\n      build_upper_buffer(pstr);\n      pstr->cur_idx = 0;\n    }\n  }\n  else {\n    if (pstr->icase == '\0') {\n      build_wcs_buffer(pstr);\n      pstr->cur_idx = 0;\n      goto LAB_00491aac;\n    }\n    rVar8 = build_wcs_upper_buffer(pstr);\n    if (rVar8 != _REG_NOERROR) goto LAB_00491ab0;\nLAB_00491aa8:\n    pstr->cur_idx = 0;\n  }\nLAB_00491aac:\n  rVar8 = _REG_NOERROR;\nLAB_00491ab0:\n  if (prVar6 == *(re_dfa_t **)PTR___stack_chk_guard_004bf38c) {\n    return rVar8;\n  }\n  pcVar37 = re_compile_fastmap_iter;\n  (*(code *)PTR___stack_chk_fail_004bf34c)();\n  rStack_84 = *(reg_errcode_t *)PTR___stack_chk_guard_004bf38c;\n  prVar36 = prVar6->nodes;\n  if (*(int *)&prVar36[0xb].field_0x4 == 1) {\n    uVar19 = (uint)((int)prVar6->nexts << 9) >> 0x1f;\n  }\n  else {\n    uVar19 = 0;\n  }\n  prVar22 = prVar6;\n  dfa = prVar27;\n  set2 = prVar30;\n  prStack_80 = pstr;\n  iStack_7c = iVar32;\n  IStack_78 = idx;\n  iStack_74 = eflags;\n  pIStack_70 = unaff_s4;\n  pIStack_6c = unaff_s5;\n  pIStack_68 = unaff_s6;\n  prStack_64 = unaff_s7;\n  pmStack_60 = unaff_s8;\n  pcStack_5c = pcVar37;\n  if (0 < (int)prVar27->nodes_len) {\n    iStack_1a8 = 0;\n    do {\n      iVar7 = prVar27->nexts[iStack_1a8];\n      prVar13 = (re_dfa_t *)(iVar7 * 8);\n      pbVar28 = (byte *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset);\n      prVar22 = (re_dfa_t *)(uint)pbVar28[4];\n      dfa = (re_dfa_t *)&DAT_00000001;\n      if (prVar22 == (re_dfa_t *)&DAT_00000001) {\n        uVar35 = (uint)*pbVar28;\n        *(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;\n        if (uVar19 != 0) {\n          if (uVar35 + 0x80 < 0x180) {\n            piVar25 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar35 = *(uint *)(*piVar25 + uVar35 * 4);\n          }\n          *(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;\n        }\n        if (((int)prVar6->nexts << 9 < 0) &&\n           (prVar22 = prVar13, 1 < *(int *)&prVar36[0xb].field_0x4)) {\n          rStack_184.nodes._0_1_ = *(byte *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset);\n          if ((re_bitset_ptr_t)(iVar7 + 1U) < prVar36[1].opr.sbcset) {\n            puVar14 = (undefined1 *)((int)&prVar13->nodes_len + (int)(prVar36->opr).sbcset);\n            pprVar29 = (re_node_set **)&prVar13->org_indices;\n            if ((*(uint *)(puVar14 + 4) & 0xff000400) == 0x1000400) {\n              puVar24 = (undefined1 *)((int)&rStack_184.nodes + 1);\n              do {\n                puVar23 = puVar24 + 1;\n                *puVar24 = *puVar14;\n                if (prVar36[1].opr.sbcset <= puVar23 + (iVar7 - (int)&rStack_184)) break;\n                puVar14 = (undefined1 *)((int)(prVar36->opr).sbcset + (int)pprVar29);\n                pprVar29 = pprVar29 + 2;\n                puVar24 = puVar23;\n              } while ((*(uint *)(puVar14 + 4) & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar23 = (undefined1 *)((int)&rStack_184.nodes + 1);\n            }\n          }\n          else {\n            puVar23 = (undefined1 *)((int)&rStack_184.nodes + 1);\n          }\n          auStack_190._4_4_ = 0;\n          sStack_188 = 0;\n          dfa = &rStack_184;\n          iVar7 = -(int)dfa;\n          prVar22 = (re_dfa_t *)auStack_190;\n          set2 = (re_dfa_t *)(puVar23 + iVar7);\n          prVar13 = (re_dfa_t *)(*(code *)PTR_mbrtowc_004bf2ec)();\n          if ((re_dfa_t *)(puVar23 + iVar7) == prVar13) {\n            dfa = (re_dfa_t *)(*(code *)PTR_towlower_004bf37c)(auStack_190._0_4_);\n            set2 = (re_dfa_t *)(auStack_190 + 4);\n            prVar22 = &rStack_184;\n            iVar7 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar7 != -1) {\n              *(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_) = 1;\n            }\n          }\n        }\n      }\n      else {\n        dfa = (re_dfa_t *)&DAT_00000006;\n        if (prVar22 == (re_dfa_t *)0x3) {\n          iStack_1ac = 0;\n          iVar7 = 0;\n          do {\n            uVar34 = *(uint *)(*(int *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset) +\n                              iStack_1ac);\n            uVar35 = 0;\n            iVar32 = iVar7;\n            do {\n              if (((uVar34 >> (uVar35 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)&prVar30->nodes + iVar32) = 1, uVar19 != 0)) {\n                iVar15 = iVar32;\n                if (iVar32 + 0x80U < 0x180) {\n                  piVar25 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar15 = *(int *)(*piVar25 + (uVar35 + iVar7) * 4);\n                }\n                *(undefined1 *)((int)&prVar30->nodes + iVar15) = 1;\n              }\n              uVar35 = uVar35 + 1;\n              iVar32 = iVar32 + 1;\n            } while (uVar35 != 0x20);\n            iVar7 = iVar7 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar7 != 0x100);\n        }\n        else if (prVar22 == (re_dfa_t *)&DAT_00000006) {\n          piVar25 = *(int **)pbVar28;\n          if ((*(int *)&prVar36[0xb].field_0x4 < 2) ||\n             (((piVar25[9] == 0 && (-1 < *(char *)(piVar25 + 4))) && (piVar25[8] == 0)))) {\n            iVar7 = 0;\n            if (0 < piVar25[5]) {\n              do {\n                auStack_190._4_4_ = 0;\n                sStack_188 = 0;\n                dfa = *(re_dfa_t **)(*piVar25 + iVar7 * 4);\n                prVar22 = &rStack_184;\n                set2 = (re_dfa_t *)(auStack_190 + 4);\n                iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar35 = (uint)rStack_184.nodes._0_1_;\n                if ((iVar32 != -1) &&\n                   (*(undefined1 *)((int)&prVar30->nodes + uVar35) = 1, uVar19 != 0)) {\n                  if (uVar35 + 0x80 < 0x180) {\n                    piVar16 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar35 = *(uint *)(*piVar16 + uVar35 * 4);\n                  }\n                  *(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;\n                }\n                if ((((uint)prVar6->nexts & 0x400000) != 0) && (1 < *(int *)&prVar36[0xb].field_0x4)\n                   ) {\n                  dfa = (re_dfa_t *)\n                        (*(code *)PTR_towlower_004bf37c)(*(undefined4 *)(*piVar25 + iVar7 * 4));\n                  prVar22 = &rStack_184;\n                  set2 = (re_dfa_t *)(auStack_190 + 4);\n                  iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar32 != -1) {\n                    *(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_) = 1;\n                  }\n                }\n                iVar7 = iVar7 + 1;\n              } while (iVar7 < piVar25[5]);\n            }\n          }\n          else {\n            auStack_190._0_4_ = auStack_190._0_4_ & 0xffffff;\n            do {\n              auStack_190._4_4_ = 0;\n              sStack_188 = 0;\n              set2 = (re_dfa_t *)&DAT_00000001;\n              prVar22 = (re_dfa_t *)0x0;\n              dfa = (re_dfa_t *)auStack_190;\n              iVar7 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar7 == -2) {\n                *(undefined1 *)((int)&prVar30->nodes + (uint)auStack_190[0]) = 1;\n              }\n              bVar1 = auStack_190[0] != 0xff;\n              auStack_190[0] = auStack_190[0] + 1;\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)prVar22 & 0xfd) == 5) {\n            set2 = (re_dfa_t *)0x100;\n            dfa = (re_dfa_t *)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            prVar22 = prVar30;\n            break;\n          }\n          if (prVar22 == (re_dfa_t *)0x2) {\n            set2 = (re_dfa_t *)0x100;\n            dfa = (re_dfa_t *)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(prVar30);\n            *(byte *)&prVar6->inveclosures = *(byte *)&prVar6->inveclosures & 0x7f | 0x80;\n            prVar22 = prVar6;\n            break;\n          }\n        }\n      }\n      iStack_1a8 = iStack_1a8 + 1;\n    } while (iStack_1a8 < (int)prVar27->nodes_len);\n  }\n  if (rStack_84 == *(reg_errcode_t *)PTR___stack_chk_guard_004bf38c) {\n    return *(reg_errcode_t *)PTR___stack_chk_guard_004bf38c;\n  }\n  (*(code *)PTR___stack_chk_fail_004bf34c)();\n  uVar19 = set2->nodes_alloc;\n  if (uVar19 == 0) {\n    prVar22->nodes = (re_token_t *)0x0;\n  }\n  else {\n    if (0 < (int)uVar19) {\n      pIVar17 = (Idx *)set2->nodes_len;\n      pIVar11 = pIVar17 + uVar19;\n      do {\n        iVar7 = *pIVar17;\n        pIVar17 = pIVar17 + 1;\n        uVar19 = uVar19 + iVar7;\n      } while (pIVar17 != pIVar11);\n    }\n    iVar7 = dfa->state_table[uVar19 & dfa->state_hash_mask].num;\n    if (0 < iVar7) {\n      pprVar33 = dfa->state_table[uVar19 & dfa->state_hash_mask].array;\n      iVar32 = 0;\n      do {\n        prVar31 = *pprVar33;\n        if ((uVar19 == prVar31->hash) &&\n           (_Var18 = re_node_set_compare(&prVar31->nodes,(re_node_set *)set2),\n           CONCAT31(extraout_var,_Var18) != 0)) {\n          return (reg_errcode_t)prVar31;\n        }\n        iVar32 = iVar32 + 1;\n        pprVar33 = pprVar33 + 1;\n      } while (iVar7 != iVar32);\n    }\n    prVar31 = (re_dfastate_t *)(*(code *)PTR_calloc_004bf160)(0x38,1);\n    if (prVar31 != (re_dfastate_t *)0x0) {\n      rVar8 = re_node_set_init_copy(&prVar31->nodes,(re_node_set *)set2);\n      if (rVar8 == _REG_NOERROR) {\n        prVar31->entrance_nodes = &prVar31->nodes;\n        if (0 < (int)set2->nodes_alloc) {\n          prVar36 = dfa->nodes;\n          piVar25 = (int *)set2->nodes_len;\n          piVar16 = piVar25 + set2->nodes_alloc;\n          do {\n            iVar7 = *piVar25;\n            cVar3 = prVar36[iVar7].field_0x4;\n            if (cVar3 == '\x01') {\n              if ((*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000) != 0) {\n                prVar31->field_0x34 =\n                     prVar31->field_0x34 & 0xfb |\n                     (byte)(((uint)(*(int *)&prVar36[iVar7].field_0x4 << 0x14 |\n                                   *(int *)&prVar31->field_0x34 << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if ((*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000) != 0) {\n                  bVar4 = prVar31->field_0x34;\nLAB_00492380:\n                  prVar31->field_0x34 = bVar4 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar4 = prVar31->field_0x34;\n              bVar5 = (byte)(((uint)(*(int *)&prVar31->field_0x34 << 5 |\n                                    *(int *)&prVar36[iVar7].field_0x4 << 0x14) >> 0x1f) << 2);\n              prVar31->field_0x34 = bVar4 & 0xfb | bVar5;\n              if (cVar3 == '\x02') {\n                prVar31->field_0x34 = bVar4 & 0xf3 | bVar5 | 8;\n              }\n              else {\n                if (cVar3 != '\x04') {\n                  if (cVar3 != '\f') goto LAB_004922f0;\n                  bVar4 = prVar31->field_0x34;\n                  goto LAB_00492380;\n                }\n                prVar31->field_0x34 = prVar31->field_0x34 & 0xfd | 2;\n              }\n            }\n            piVar25 = piVar25 + 1;\n          } while (piVar25 != piVar16);\n        }\n        rVar8 = register_state(dfa,prVar31,uVar19);\n        if (rVar8 == _REG_NOERROR) {\n          return (reg_errcode_t)prVar31;\n        }\n        free_state(prVar31);\n      }\n      else {\n        (*(code *)PTR_free_004bf39c)(prVar31);\n      }\n    }\n    prVar22->nodes = (re_token_t *)0xc;\n  }\n  return _REG_NOERROR;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "uchar uVar2;" type_identifier identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "byte bVar5;" type_identifier identifier ;) (declaration "undefined3 extraout_var;" type_identifier identifier ;) (declaration "re_dfa_t *prVar6;" type_identifier (pointer_declarator "*prVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "reg_errcode_t rVar8;" type_identifier identifier ;) (declaration "wint_t *pwVar9;" type_identifier (pointer_declarator "*pwVar9" * identifier) ;) (declaration "Idx IVar10;" type_identifier identifier ;) (declaration "Idx *pIVar11;" type_identifier (pointer_declarator "*pIVar11" * identifier) ;) (declaration "uchar *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "re_dfa_t *prVar13;" type_identifier (pointer_declarator "*prVar13" * identifier) ;) (declaration "undefined1 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "Idx *pIVar17;" type_identifier (pointer_declarator "*pIVar17" * identifier) ;) (declaration "_Bool _Var18;" type_identifier identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "Idx *pIVar20;" type_identifier (pointer_declarator "*pIVar20" * identifier) ;) (declaration "uchar *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "re_dfa_t *prVar22;" type_identifier (pointer_declarator "*prVar22" * identifier) ;) (declaration "undefined1 *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "int *piVar25;" primitive_type (pointer_declarator "*piVar25" * identifier) ;) (declaration "wint_t wVar26;" type_identifier identifier ;) (declaration "re_dfa_t *prVar27;" type_identifier (pointer_declarator "*prVar27" * identifier) ;) (declaration "byte *pbVar28;" type_identifier (pointer_declarator "*pbVar28" * identifier) ;) (declaration "re_dfa_t *dfa;" type_identifier (pointer_declarator "*dfa" * identifier) ;) (declaration "re_node_set **pprVar29;" type_identifier (pointer_declarator "**pprVar29" * (pointer_declarator "*pprVar29" * identifier)) ;) (declaration "re_dfa_t *prVar30;" type_identifier (pointer_declarator "*prVar30" * identifier) ;) (declaration "re_dfa_t *set2;" type_identifier (pointer_declarator "*set2" * identifier) ;) (declaration "re_dfastate_t *prVar31;" type_identifier (pointer_declarator "*prVar31" * identifier) ;) (declaration "int iVar32;" primitive_type identifier ;) (declaration "re_dfastate_t **pprVar33;" type_identifier (pointer_declarator "**pprVar33" * (pointer_declarator "*pprVar33" * identifier)) ;) (declaration "uint uVar34;" type_identifier identifier ;) (declaration "Idx *unaff_s4;" type_identifier (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "Idx *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "Idx *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "re_dfa_t *unaff_s7;" type_identifier (pointer_declarator "*unaff_s7" * identifier) ;) (declaration "uint uVar35;" type_identifier identifier ;) (declaration "mbstate_t *unaff_s8;" type_identifier (pointer_declarator "*unaff_s8" * identifier) ;) (declaration "re_token_t *prVar36;" type_identifier (pointer_declarator "*prVar36" * identifier) ;) (declaration "code *pcVar37;" type_identifier (pointer_declarator "*pcVar37" * identifier) ;) (declaration "int iStack_1ac;" primitive_type identifier ;) (declaration "int iStack_1a8;" primitive_type identifier ;) (declaration "undefined1 auStack_190 [8];" type_identifier (array_declarator "auStack_190 [8]" identifier [ number_literal ]) ;) (declaration "size_t sStack_188;" primitive_type identifier ;) (declaration "re_dfa_t rStack_184;" type_identifier identifier ;) (declaration "reg_errcode_t rStack_84;" type_identifier identifier ;) (declaration "re_string_t *prStack_80;" type_identifier (pointer_declarator "*prStack_80" * identifier) ;) (declaration "int iStack_7c;" primitive_type identifier ;) (declaration "Idx IStack_78;" type_identifier identifier ;) (declaration "int iStack_74;" primitive_type identifier ;) (declaration "Idx *pIStack_70;" type_identifier (pointer_declarator "*pIStack_70" * identifier) ;) (declaration "Idx *pIStack_6c;" type_identifier (pointer_declarator "*pIStack_6c" * identifier) ;) (declaration "Idx *pIStack_68;" type_identifier (pointer_declarator "*pIStack_68" * identifier) ;) (declaration "re_dfa_t *prStack_64;" type_identifier (pointer_declarator "*prStack_64" * identifier) ;) (declaration "mbstate_t *pmStack_60;" type_identifier (pointer_declarator "*pmStack_60" * identifier) ;) (declaration "code *pcStack_5c;" type_identifier (pointer_declarator "*pcStack_5c" * 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 ]) ;) (declaration "undefined1 *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (expression_statement "prVar6 = *(re_dfa_t **)PTR___stack_chk_guard_004bf38c;" (assignment_expression "prVar6 = *(re_dfa_t **)PTR___stack_chk_guard_004bf38c" identifier = (pointer_expression "*(re_dfa_t **)PTR___stack_chk_guard_004bf38c" * (cast_expression "(re_dfa_t **)PTR___stack_chk_guard_004bf38c" ( (type_descriptor "re_dfa_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pIVar17 = (Idx *)(idx - pstr->raw_mbs_idx);" (assignment_expression "pIVar17 = (Idx *)(idx - pstr->raw_mbs_idx)" identifier = (cast_expression "(Idx *)(idx - pstr->raw_mbs_idx)" ( (type_descriptor "Idx *" 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      *(undefined1 *)&(pstr->cur_state).__count = 0;\n      *(undefined1 *)((int)&(pstr->cur_state).__count + 1) = 0;\n      *(undefined1 *)((int)&(pstr->cur_state).__count + 2) = 0;\n      *(undefined1 *)((int)&(pstr->cur_state).__count + 3) = 0;\n      (pstr->cur_state).__value.__wchb[0] = '\0';\n      (pstr->cur_state).__value.__wchb[1] = '\0';\n      (pstr->cur_state).__value.__wchb[2] = '\0';\n      (pstr->cur_state).__value.__wchb[3] = '\0';\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    uVar19 = 6;\n    if ((eflags & 1U) != 0) {\n      uVar19 = 4;\n    }\n    pstr->tip_context = uVar19;\n    pIVar17 = (Idx *)idx;\n    if (pstr->mbs_allocated == '\0') {\n      pstr->mbs = pstr->raw_mbs;\n    }\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      *(undefined1 *)&(pstr->cur_state).__count = 0;\n      *(undefined1 *)((int)&(pstr->cur_state).__count + 1) = 0;\n      *(undefined1 *)((int)&(pstr->cur_state).__count + 2) = 0;\n      *(undefined1 *)((int)&(pstr->cur_state).__count + 3) = 0;\n      (pstr->cur_state).__value.__wchb[0] = '\0';\n      (pstr->cur_state).__value.__wchb[1] = '\0';\n      (pstr->cur_state).__value.__wchb[2] = '\0';\n      (pstr->cur_state).__value.__wchb[3] = '\0';\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    uVar19 = 6;\n    if ((eflags & 1U) != 0) {\n      uVar19 = 4;\n    }\n    pstr->tip_context = uVar19;\n    pIVar17 = (Idx *)idx;\n    if (pstr->mbs_allocated == '\0') {\n      pstr->mbs = pstr->raw_mbs;\n    }\n  }" { (if_statement "if (1 < pstr->mb_cur_max) {\n      *(undefined1 *)&(pstr->cur_state).__count = 0;\n      *(undefined1 *)((int)&(pstr->cur_state).__count + 1) = 0;\n      *(undefined1 *)((int)&(pstr->cur_state).__count + 2) = 0;\n      *(undefined1 *)((int)&(pstr->cur_state).__count + 3) = 0;\n      (pstr->cur_state).__value.__wchb[0] = '\0';\n      (pstr->cur_state).__value.__wchb[1] = '\0';\n      (pstr->cur_state).__value.__wchb[2] = '\0';\n      (pstr->cur_state).__value.__wchb[3] = '\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      *(undefined1 *)&(pstr->cur_state).__count = 0;\n      *(undefined1 *)((int)&(pstr->cur_state).__count + 1) = 0;\n      *(undefined1 *)((int)&(pstr->cur_state).__count + 2) = 0;\n      *(undefined1 *)((int)&(pstr->cur_state).__count + 3) = 0;\n      (pstr->cur_state).__value.__wchb[0] = '\0';\n      (pstr->cur_state).__value.__wchb[1] = '\0';\n      (pstr->cur_state).__value.__wchb[2] = '\0';\n      (pstr->cur_state).__value.__wchb[3] = '\0';\n    }" { (expression_statement "*(undefined1 *)&(pstr->cur_state).__count = 0;" (assignment_expression "*(undefined1 *)&(pstr->cur_state).__count = 0" (pointer_expression "*(undefined1 *)&(pstr->cur_state).__count" * (cast_expression "(undefined1 *)&(pstr->cur_state).__count" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pstr->cur_state).__count" & (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 "*(undefined1 *)((int)&(pstr->cur_state).__count + 1) = 0;" (assignment_expression "*(undefined1 *)((int)&(pstr->cur_state).__count + 1) = 0" (pointer_expression "*(undefined1 *)((int)&(pstr->cur_state).__count + 1)" * (cast_expression "(undefined1 *)((int)&(pstr->cur_state).__count + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pstr->cur_state).__count + 1)" ( (binary_expression "(int)&(pstr->cur_state).__count + 1" (cast_expression "(int)&(pstr->cur_state).__count" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pstr->cur_state).__count" & (field_expression "(pstr->cur_state).__count" (parenthesized_expression "(pstr->cur_state)" ( (field_expression "pstr->cur_state" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)&(pstr->cur_state).__count + 2) = 0;" (assignment_expression "*(undefined1 *)((int)&(pstr->cur_state).__count + 2) = 0" (pointer_expression "*(undefined1 *)((int)&(pstr->cur_state).__count + 2)" * (cast_expression "(undefined1 *)((int)&(pstr->cur_state).__count + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pstr->cur_state).__count + 2)" ( (binary_expression "(int)&(pstr->cur_state).__count + 2" (cast_expression "(int)&(pstr->cur_state).__count" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pstr->cur_state).__count" & (field_expression "(pstr->cur_state).__count" (parenthesized_expression "(pstr->cur_state)" ( (field_expression "pstr->cur_state" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)&(pstr->cur_state).__count + 3) = 0;" (assignment_expression "*(undefined1 *)((int)&(pstr->cur_state).__count + 3) = 0" (pointer_expression "*(undefined1 *)((int)&(pstr->cur_state).__count + 3)" * (cast_expression "(undefined1 *)((int)&(pstr->cur_state).__count + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pstr->cur_state).__count + 3)" ( (binary_expression "(int)&(pstr->cur_state).__count + 3" (cast_expression "(int)&(pstr->cur_state).__count" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pstr->cur_state).__count" & (field_expression "(pstr->cur_state).__count" (parenthesized_expression "(pstr->cur_state)" ( (field_expression "pstr->cur_state" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "(pstr->cur_state).__value.__wchb[0] = '\0';" (assignment_expression "(pstr->cur_state).__value.__wchb[0] = '\0'" (subscript_expression "(pstr->cur_state).__value.__wchb[0]" (field_expression "(pstr->cur_state).__value.__wchb" (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 ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(pstr->cur_state).__value.__wchb[1] = '\0';" (assignment_expression "(pstr->cur_state).__value.__wchb[1] = '\0'" (subscript_expression "(pstr->cur_state).__value.__wchb[1]" (field_expression "(pstr->cur_state).__value.__wchb" (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 ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(pstr->cur_state).__value.__wchb[2] = '\0';" (assignment_expression "(pstr->cur_state).__value.__wchb[2] = '\0'" (subscript_expression "(pstr->cur_state).__value.__wchb[2]" (field_expression "(pstr->cur_state).__value.__wchb" (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 ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(pstr->cur_state).__value.__wchb[3] = '\0';" (assignment_expression "(pstr->cur_state).__value.__wchb[3] = '\0'" (subscript_expression "(pstr->cur_state).__value.__wchb[3]" (field_expression "(pstr->cur_state).__value.__wchb" (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 ]) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (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 "uVar19 = 6;" (assignment_expression "uVar19 = 6" identifier = number_literal) ;) (if_statement "if ((eflags & 1U) != 0) {\n      uVar19 = 4;\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      uVar19 = 4;\n    }" { (expression_statement "uVar19 = 4;" (assignment_expression "uVar19 = 4" identifier = number_literal) ;) })) (expression_statement "pstr->tip_context = uVar19;" (assignment_expression "pstr->tip_context = uVar19" (field_expression "pstr->tip_context" identifier -> field_identifier) = identifier) ;) (expression_statement "pIVar17 = (Idx *)idx;" (assignment_expression "pIVar17 = (Idx *)idx" identifier = (cast_expression "(Idx *)idx" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (pstr->mbs_allocated == '\0') {\n      pstr->mbs = pstr->raw_mbs;\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    }" { (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)) ;) })) })) (expression_statement "prVar27 = (re_dfa_t *)idx;" (assignment_expression "prVar27 = (re_dfa_t *)idx" identifier = (cast_expression "(re_dfa_t *)idx" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "prVar30 = (re_dfa_t *)eflags;" (assignment_expression "prVar30 = (re_dfa_t *)eflags" identifier = (cast_expression "(re_dfa_t *)eflags" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (pIVar17 != (Idx *)0x0) {\n    if ((int)pIVar17 < pstr->valid_raw_len) {\n      if (pstr->offsets_needed == '\0') {\n        uVar19 = re_string_context_at(pstr,(Idx)((int)pIVar17 + -1),eflags);\n        pstr->tip_context = uVar19;\n        prVar27 = (re_dfa_t *)((int)pIVar17 * 4);\n        if (pstr->mb_cur_max < 2) {\n          uVar2 = pstr->mbs_allocated;\n        }\n        else {\n          prVar30 = (re_dfa_t *)((pstr->valid_len - (int)pIVar17) * 4);\n          prVar27 = (re_dfa_t *)(pstr->wcs + (int)pIVar17);\n          (*(code *)PTR_memmove_004bf3a4)();\n          uVar2 = pstr->mbs_allocated;\n        }\n        if (uVar2 == '\0') {\n          iVar7 = pstr->valid_len;\n        }\n        else {\n          prVar30 = (re_dfa_t *)(pstr->valid_len - (int)pIVar17);\n          prVar27 = (re_dfa_t *)(pstr->mbs + (int)pIVar17);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar7 = pstr->valid_len;\n        }\n        pstr->valid_len = iVar7 - (int)pIVar17;\n        pstr->valid_raw_len = pstr->valid_raw_len - (int)pIVar17;\n        goto LAB_00491360;\n      }\n      unaff_s6 = (Idx *)pstr->valid_len;\n      unaff_s5 = pstr->offsets;\n      puVar23 = (undefined1 *)0x0;\n      pIVar11 = unaff_s6;\n      do {\n        unaff_s4 = (Idx *)((int)(puVar23 + (int)pIVar11) / 2);\n        iVar7 = unaff_s5[(int)unaff_s4];\n        bVar1 = (int)puVar23 < (int)unaff_s4;\n        pIVar20 = unaff_s4;\n        if (iVar7 <= (int)pIVar17) {\n          puVar23 = (undefined1 *)((int)unaff_s4 + 1);\n          if ((int)pIVar17 <= iVar7) goto LAB_0049145c;\n          bVar1 = (int)puVar23 < (int)pIVar11;\n          pIVar20 = pIVar11;\n        }\n        pIVar11 = pIVar20;\n      } while (bVar1);\n      if (iVar7 < (int)pIVar17) {\n        unaff_s4 = (Idx *)((int)unaff_s4 + 1);\n      }\nLAB_0049145c:\n      prVar27 = (re_dfa_t *)((int)unaff_s4 + -1);\n      uVar19 = re_string_context_at(pstr,(Idx)prVar27,eflags);\n      pstr->tip_context = uVar19;\n      if ((((int)unaff_s6 <= (int)pIVar17) || (pIVar17 != unaff_s4)) ||\n         (eflags = (int)pIVar17 * 4, (Idx *)unaff_s5[(int)unaff_s4] != pIVar17)) {\n        pstr->len = (Idx)((int)pIVar17 + (pstr->raw_len - idx));\n        pstr->stop = (Idx)((int)pIVar17 + (pstr->raw_stop - idx));\n        pstr->offsets_needed = '\0';\n        if ((0 < (int)unaff_s4) && ((Idx *)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pIVar17))\n        {\n          pIVar11 = unaff_s5 + (int)(unaff_s4 + 0x10000000);\n          do {\n            unaff_s4 = (Idx *)((int)unaff_s4 + -1);\n            if (unaff_s4 == (Idx *)0x0) break;\n            pIVar20 = pIVar11 + -2;\n            pIVar11 = pIVar11 + -1;\n          } while ((Idx *)*pIVar20 == pIVar17);\n        }\n        if ((int)unaff_s4 < (int)unaff_s6) {\n          pwVar9 = pstr->wcs + (int)unaff_s4;\n          wVar26 = *pwVar9;\n          while (wVar26 == 0xffffffff) {\n            unaff_s4 = (Idx *)((int)unaff_s4 + 1);\n            pwVar9 = pwVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            wVar26 = *pwVar9;\n          }\nLAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;\n          prVar30 = (re_dfa_t *)(*unaff_s4 - (int)pIVar17);\n          pstr->valid_len = (Idx)prVar30;\n          if (prVar30 == (re_dfa_t *)0x0) goto LAB_00491650;\n          if (0 < (int)prVar30) {\n            iVar7 = 0;\n            do {\n              pstr->wcs[iVar7] = 0xffffffff;\n              iVar7 = iVar7 + 1;\n              prVar30 = (re_dfa_t *)pstr->valid_len;\n            } while (iVar7 < (int)prVar30);\n          }\n          prVar27 = (re_dfa_t *)0xff;\n          (*(code *)PTR_memset_004bf260)(pstr->mbs);\n          IVar10 = pstr->valid_len;\n        }\n        else {\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          pstr->valid_len = 0;\nLAB_00491650:\n          IVar10 = pstr->valid_len;\n        }\n        pstr->valid_raw_len = IVar10;\n        goto LAB_00491360;\n      }\n      (*(code *)PTR_memmove_004bf3a4)\n                (pstr->wcs,pstr->wcs + (int)pIVar17,((int)unaff_s6 - (int)pIVar17) * 4);\n      prVar30 = (re_dfa_t *)(pstr->valid_len - (int)pIVar17);\n      prVar27 = (re_dfa_t *)(pstr->mbs + (int)pIVar17);\n      (*(code *)PTR_memmove_004bf3a4)();\n      iVar7 = pstr->valid_len - (int)pIVar17;\n      pstr->valid_len = iVar7;\n      pstr->valid_raw_len = pstr->valid_raw_len - (int)pIVar17;\n      if (iVar7 < 1) goto LAB_00491360;\n      iVar7 = 0;\n      do {\n        pstr->offsets[iVar7] = *(int *)((int)pstr->offsets + eflags) - (int)pIVar17;\n        iVar7 = iVar7 + 1;\n        eflags = eflags + 4;\n      } while (iVar7 < pstr->valid_len);\n      uVar2 = pstr->mbs_allocated;\n    }\n    else {\n      unaff_s6 = (Idx *)pstr->valid_len;\n      if (pstr->offsets_needed != '\0') {\n        pstr->len = (Idx)((int)pIVar17 + (pstr->raw_len - idx));\n        pstr->stop = (Idx)((int)pIVar17 + (pstr->raw_stop - idx));\n        pstr->offsets_needed = '\0';\n      }\n      pstr->valid_len = 0;\n      if (pstr->mb_cur_max < 2) {\n        prVar27 = (re_dfa_t *)\n                  (uint)*(byte *)((int)pIVar17 + (int)(pstr->raw_mbs + pstr->raw_mbs_idx + -1));\n        pstr->valid_raw_len = 0;\n        if (pstr->trans != (uchar *)0x0) {\n          prVar27 = (re_dfa_t *)(uint)pstr->trans[(int)prVar27];\n        }\n        uVar19 = 1;\n        if ((pstr->word_char[(int)prVar27 >> 5] >> ((uint)prVar27 & 0x1f) & 1) == 0) {\n          uVar19 = 2;\n          if (prVar27 == (re_dfa_t *)&DAT_0000000a) {\n            if (pstr->newline_anchor == '\0') {\n              uVar19 = 0;\n            }\n          }\n          else {\n            uVar19 = 0;\n          }\n        }\n        pstr->tip_context = uVar19;\n        goto LAB_00491360;\n      }\n      if (pstr->is_utf8 == '\0') {\nLAB_0049179c:\n        iVar7 = pstr->raw_mbs_idx;\nLAB_004917a0:\n        pIVar11 = (Idx *)(iVar7 + pstr->valid_raw_len);\n        if ((int)pIVar11 < idx) {\n          unaff_s8 = &pstr->cur_state;\n          unaff_s7 = (re_dfa_t *)&wc2;\n          do {\n            unaff_s5 = pIVar11;\n            iVar32 = pstr->raw_len - (int)unaff_s5;\n            cur_state.__count = (pstr->cur_state).__count;\n            cur_state.__value = (pstr->cur_state).__value;\n            prVar27 = (re_dfa_t *)((int)unaff_s5 + (int)pstr->raw_mbs);\n            iVar7 = (*(code *)PTR_mbrtowc_004bf2ec)(unaff_s7,prVar27,iVar32,unaff_s8);\n            unaff_s4 = (Idx *)wc2;\n            if (0xfffffffc < iVar7 - 1U) {\n              if (iVar7 == 0) {\n                unaff_s4 = (Idx *)0x0;\n              }\n              else if (iVar32 == 0) {\n                unaff_s4 = (Idx *)0x0;\n              }\n              else {\n                unaff_s4 = (Idx *)(uint)*(byte *)((int)unaff_s5 + (int)pstr->raw_mbs);\n              }\n              (pstr->cur_state).__count = cur_state.__count;\n              (pstr->cur_state).__value = cur_state.__value;\n              iVar7 = 1;\n            }\n            pIVar11 = (Idx *)((int)unaff_s5 + iVar7);\n          } while ((int)pIVar11 < idx);\n          pstr->valid_len = (int)pIVar11 - idx;\n          if (unaff_s4 != (Idx *)0xffffffff) goto LAB_00491834;\n        }\n        else {\n          pstr->valid_len = (int)pIVar11 - idx;\n        }\n        prVar27 = (re_dfa_t *)((int)unaff_s6 + -1);\n        uVar19 = re_string_context_at(pstr,(Idx)prVar27,eflags);\n        pstr->tip_context = uVar19;\n      }\n      else {\n        prVar30 = (re_dfa_t *)pstr->raw_mbs;\n        unaff_s4 = (Idx *)((int)prVar30->word_char + pstr->raw_mbs_idx + -0x60);\n        prVar27 = (re_dfa_t *)((int)unaff_s4 + ((int)pIVar17 - pstr->mb_cur_max));\n        if (prVar27 <= prVar30) {\n          prVar27 = prVar30;\n        }\n        prVar30 = (re_dfa_t *)((int)unaff_s4 + (int)((int)pIVar17 + -1));\n        unaff_s5 = pIVar17;\n        if (prVar30 < prVar27) goto LAB_0049179c;\n        bVar4 = *(byte *)&prVar30->nodes;\n        unaff_s7 = prVar30;\n        while ((bVar4 & 0xc0) == 0x80) {\n          prVar22 = (re_dfa_t *)((int)&unaff_s7[-1].subexp_map + 3);\n          unaff_s7 = prVar30;\n          if (prVar22 < prVar27) goto LAB_0049179c;\n          unaff_s7 = prVar22;\n          bVar4 = *(byte *)&prVar22->nodes;\n        }\n        puVar21 = pstr->trans;\n        puVar23 = (undefined1 *)((int)unaff_s4 + (pstr->len - (int)unaff_s7));\n        prVar27 = unaff_s7;\n        if (puVar21 != (uchar *)0x0) {\n          puVar14 = (undefined1 *)0x6;\n          if ((int)puVar23 < 7) {\n            puVar14 = puVar23;\n          }\n          if ((int)(puVar14 + -1) < 0) {\n            prVar27 = (re_dfa_t *)buf;\n          }\n          else {\n            pbVar28 = (byte *)((int)unaff_s7->word_char + (int)(puVar14 + -0x61));\n            puVar12 = buf + (int)puVar14;\n            do {\n              puVar12[-1] = puVar21[*pbVar28];\n              puVar12 = puVar12 + -1;\n              pbVar28 = pbVar28 + -1;\n            } while (puVar12 != buf);\n            prVar27 = (re_dfa_t *)buf;\n          }\n        }\n        cur_state.__count = 0;\n        cur_state.__value.__wch = 0;\n        uVar19 = (*(code *)PTR_mbrtowc_004bf2ec)(&wc2);\n        uVar35 = (int)((int)unaff_s4 + (int)pIVar17) - (int)unaff_s7;\n        if ((uVar19 < uVar35) || (0xfffffffd < uVar19)) goto LAB_0049179c;\n        *(undefined1 *)&(pstr->cur_state).__count = 0;\n        *(undefined1 *)((int)&(pstr->cur_state).__count + 1) = 0;\n        *(undefined1 *)((int)&(pstr->cur_state).__count + 2) = 0;\n        *(undefined1 *)((int)&(pstr->cur_state).__count + 3) = 0;\n        (pstr->cur_state).__value.__wchb[0] = '\0';\n        (pstr->cur_state).__value.__wchb[1] = '\0';\n        (pstr->cur_state).__value.__wchb[2] = '\0';\n        (pstr->cur_state).__value.__wchb[3] = '\0';\n        pstr->valid_len = uVar19 - uVar35;\n        unaff_s4 = (Idx *)wc2;\n        if (wc2 == -1) {\n          iVar7 = pstr->raw_mbs_idx;\n          goto LAB_004917a0;\n        }\nLAB_00491834:\n        if (pstr->word_ops_used == '\0') {\nLAB_00491840:\n          uVar19 = 2;\n          if (unaff_s4 == (Idx *)&DAT_0000000a) {\n            if (pstr->newline_anchor == '\0') {\n              uVar19 = 0;\n            }\n          }\n          else {\n            uVar19 = 0;\n          }\n        }\n        else {\n          iVar7 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          uVar19 = 1;\n          if (iVar7 == 0) {\n            if (unaff_s4 == (Idx *)0x5f) {\n              pstr->tip_context = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }\n        pstr->tip_context = uVar19;\n      }\nLAB_00491854:\n      prVar30 = (re_dfa_t *)pstr->valid_len;\n      if (prVar30 == (re_dfa_t *)0x0) {\nLAB_00491860:\n        IVar10 = pstr->valid_len;\n      }\n      else {\n        iVar7 = 0;\n        if (0 < (int)prVar30) {\n          do {\n            pstr->wcs[iVar7] = 0xffffffff;\n            iVar7 = iVar7 + 1;\n            prVar30 = (re_dfa_t *)pstr->valid_len;\n          } while (iVar7 < (int)prVar30);\n        }\n        prVar27 = (re_dfa_t *)0xff;\n        if (pstr->mbs_allocated == '\0') goto LAB_00491860;\n        (*(code *)PTR_memset_004bf260)(pstr->mbs);\n        IVar10 = pstr->valid_len;\n      }\n      pstr->valid_raw_len = IVar10;\nLAB_00491360:\n      uVar2 = pstr->mbs_allocated;\n    }\n    if (uVar2 == '\0') {\n      pstr->mbs = pstr->mbs + (int)pIVar17;\n    }\n  }" if (parenthesized_expression "(pIVar17 != (Idx *)0x0)" ( (binary_expression "pIVar17 != (Idx *)0x0" identifier != (cast_expression "(Idx *)0x0" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if ((int)pIVar17 < pstr->valid_raw_len) {\n      if (pstr->offsets_needed == '\0') {\n        uVar19 = re_string_context_at(pstr,(Idx)((int)pIVar17 + -1),eflags);\n        pstr->tip_context = uVar19;\n        prVar27 = (re_dfa_t *)((int)pIVar17 * 4);\n        if (pstr->mb_cur_max < 2) {\n          uVar2 = pstr->mbs_allocated;\n        }\n        else {\n          prVar30 = (re_dfa_t *)((pstr->valid_len - (int)pIVar17) * 4);\n          prVar27 = (re_dfa_t *)(pstr->wcs + (int)pIVar17);\n          (*(code *)PTR_memmove_004bf3a4)();\n          uVar2 = pstr->mbs_allocated;\n        }\n        if (uVar2 == '\0') {\n          iVar7 = pstr->valid_len;\n        }\n        else {\n          prVar30 = (re_dfa_t *)(pstr->valid_len - (int)pIVar17);\n          prVar27 = (re_dfa_t *)(pstr->mbs + (int)pIVar17);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar7 = pstr->valid_len;\n        }\n        pstr->valid_len = iVar7 - (int)pIVar17;\n        pstr->valid_raw_len = pstr->valid_raw_len - (int)pIVar17;\n        goto LAB_00491360;\n      }\n      unaff_s6 = (Idx *)pstr->valid_len;\n      unaff_s5 = pstr->offsets;\n      puVar23 = (undefined1 *)0x0;\n      pIVar11 = unaff_s6;\n      do {\n        unaff_s4 = (Idx *)((int)(puVar23 + (int)pIVar11) / 2);\n        iVar7 = unaff_s5[(int)unaff_s4];\n        bVar1 = (int)puVar23 < (int)unaff_s4;\n        pIVar20 = unaff_s4;\n        if (iVar7 <= (int)pIVar17) {\n          puVar23 = (undefined1 *)((int)unaff_s4 + 1);\n          if ((int)pIVar17 <= iVar7) goto LAB_0049145c;\n          bVar1 = (int)puVar23 < (int)pIVar11;\n          pIVar20 = pIVar11;\n        }\n        pIVar11 = pIVar20;\n      } while (bVar1);\n      if (iVar7 < (int)pIVar17) {\n        unaff_s4 = (Idx *)((int)unaff_s4 + 1);\n      }\nLAB_0049145c:\n      prVar27 = (re_dfa_t *)((int)unaff_s4 + -1);\n      uVar19 = re_string_context_at(pstr,(Idx)prVar27,eflags);\n      pstr->tip_context = uVar19;\n      if ((((int)unaff_s6 <= (int)pIVar17) || (pIVar17 != unaff_s4)) ||\n         (eflags = (int)pIVar17 * 4, (Idx *)unaff_s5[(int)unaff_s4] != pIVar17)) {\n        pstr->len = (Idx)((int)pIVar17 + (pstr->raw_len - idx));\n        pstr->stop = (Idx)((int)pIVar17 + (pstr->raw_stop - idx));\n        pstr->offsets_needed = '\0';\n        if ((0 < (int)unaff_s4) && ((Idx *)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pIVar17))\n        {\n          pIVar11 = unaff_s5 + (int)(unaff_s4 + 0x10000000);\n          do {\n            unaff_s4 = (Idx *)((int)unaff_s4 + -1);\n            if (unaff_s4 == (Idx *)0x0) break;\n            pIVar20 = pIVar11 + -2;\n            pIVar11 = pIVar11 + -1;\n          } while ((Idx *)*pIVar20 == pIVar17);\n        }\n        if ((int)unaff_s4 < (int)unaff_s6) {\n          pwVar9 = pstr->wcs + (int)unaff_s4;\n          wVar26 = *pwVar9;\n          while (wVar26 == 0xffffffff) {\n            unaff_s4 = (Idx *)((int)unaff_s4 + 1);\n            pwVar9 = pwVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            wVar26 = *pwVar9;\n          }\nLAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;\n          prVar30 = (re_dfa_t *)(*unaff_s4 - (int)pIVar17);\n          pstr->valid_len = (Idx)prVar30;\n          if (prVar30 == (re_dfa_t *)0x0) goto LAB_00491650;\n          if (0 < (int)prVar30) {\n            iVar7 = 0;\n            do {\n              pstr->wcs[iVar7] = 0xffffffff;\n              iVar7 = iVar7 + 1;\n              prVar30 = (re_dfa_t *)pstr->valid_len;\n            } while (iVar7 < (int)prVar30);\n          }\n          prVar27 = (re_dfa_t *)0xff;\n          (*(code *)PTR_memset_004bf260)(pstr->mbs);\n          IVar10 = pstr->valid_len;\n        }\n        else {\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          pstr->valid_len = 0;\nLAB_00491650:\n          IVar10 = pstr->valid_len;\n        }\n        pstr->valid_raw_len = IVar10;\n        goto LAB_00491360;\n      }\n      (*(code *)PTR_memmove_004bf3a4)\n                (pstr->wcs,pstr->wcs + (int)pIVar17,((int)unaff_s6 - (int)pIVar17) * 4);\n      prVar30 = (re_dfa_t *)(pstr->valid_len - (int)pIVar17);\n      prVar27 = (re_dfa_t *)(pstr->mbs + (int)pIVar17);\n      (*(code *)PTR_memmove_004bf3a4)();\n      iVar7 = pstr->valid_len - (int)pIVar17;\n      pstr->valid_len = iVar7;\n      pstr->valid_raw_len = pstr->valid_raw_len - (int)pIVar17;\n      if (iVar7 < 1) goto LAB_00491360;\n      iVar7 = 0;\n      do {\n        pstr->offsets[iVar7] = *(int *)((int)pstr->offsets + eflags) - (int)pIVar17;\n        iVar7 = iVar7 + 1;\n        eflags = eflags + 4;\n      } while (iVar7 < pstr->valid_len);\n      uVar2 = pstr->mbs_allocated;\n    }\n    else {\n      unaff_s6 = (Idx *)pstr->valid_len;\n      if (pstr->offsets_needed != '\0') {\n        pstr->len = (Idx)((int)pIVar17 + (pstr->raw_len - idx));\n        pstr->stop = (Idx)((int)pIVar17 + (pstr->raw_stop - idx));\n        pstr->offsets_needed = '\0';\n      }\n      pstr->valid_len = 0;\n      if (pstr->mb_cur_max < 2) {\n        prVar27 = (re_dfa_t *)\n                  (uint)*(byte *)((int)pIVar17 + (int)(pstr->raw_mbs + pstr->raw_mbs_idx + -1));\n        pstr->valid_raw_len = 0;\n        if (pstr->trans != (uchar *)0x0) {\n          prVar27 = (re_dfa_t *)(uint)pstr->trans[(int)prVar27];\n        }\n        uVar19 = 1;\n        if ((pstr->word_char[(int)prVar27 >> 5] >> ((uint)prVar27 & 0x1f) & 1) == 0) {\n          uVar19 = 2;\n          if (prVar27 == (re_dfa_t *)&DAT_0000000a) {\n            if (pstr->newline_anchor == '\0') {\n              uVar19 = 0;\n            }\n          }\n          else {\n            uVar19 = 0;\n          }\n        }\n        pstr->tip_context = uVar19;\n        goto LAB_00491360;\n      }\n      if (pstr->is_utf8 == '\0') {\nLAB_0049179c:\n        iVar7 = pstr->raw_mbs_idx;\nLAB_004917a0:\n        pIVar11 = (Idx *)(iVar7 + pstr->valid_raw_len);\n        if ((int)pIVar11 < idx) {\n          unaff_s8 = &pstr->cur_state;\n          unaff_s7 = (re_dfa_t *)&wc2;\n          do {\n            unaff_s5 = pIVar11;\n            iVar32 = pstr->raw_len - (int)unaff_s5;\n            cur_state.__count = (pstr->cur_state).__count;\n            cur_state.__value = (pstr->cur_state).__value;\n            prVar27 = (re_dfa_t *)((int)unaff_s5 + (int)pstr->raw_mbs);\n            iVar7 = (*(code *)PTR_mbrtowc_004bf2ec)(unaff_s7,prVar27,iVar32,unaff_s8);\n            unaff_s4 = (Idx *)wc2;\n            if (0xfffffffc < iVar7 - 1U) {\n              if (iVar7 == 0) {\n                unaff_s4 = (Idx *)0x0;\n              }\n              else if (iVar32 == 0) {\n                unaff_s4 = (Idx *)0x0;\n              }\n              else {\n                unaff_s4 = (Idx *)(uint)*(byte *)((int)unaff_s5 + (int)pstr->raw_mbs);\n              }\n              (pstr->cur_state).__count = cur_state.__count;\n              (pstr->cur_state).__value = cur_state.__value;\n              iVar7 = 1;\n            }\n            pIVar11 = (Idx *)((int)unaff_s5 + iVar7);\n          } while ((int)pIVar11 < idx);\n          pstr->valid_len = (int)pIVar11 - idx;\n          if (unaff_s4 != (Idx *)0xffffffff) goto LAB_00491834;\n        }\n        else {\n          pstr->valid_len = (int)pIVar11 - idx;\n        }\n        prVar27 = (re_dfa_t *)((int)unaff_s6 + -1);\n        uVar19 = re_string_context_at(pstr,(Idx)prVar27,eflags);\n        pstr->tip_context = uVar19;\n      }\n      else {\n        prVar30 = (re_dfa_t *)pstr->raw_mbs;\n        unaff_s4 = (Idx *)((int)prVar30->word_char + pstr->raw_mbs_idx + -0x60);\n        prVar27 = (re_dfa_t *)((int)unaff_s4 + ((int)pIVar17 - pstr->mb_cur_max));\n        if (prVar27 <= prVar30) {\n          prVar27 = prVar30;\n        }\n        prVar30 = (re_dfa_t *)((int)unaff_s4 + (int)((int)pIVar17 + -1));\n        unaff_s5 = pIVar17;\n        if (prVar30 < prVar27) goto LAB_0049179c;\n        bVar4 = *(byte *)&prVar30->nodes;\n        unaff_s7 = prVar30;\n        while ((bVar4 & 0xc0) == 0x80) {\n          prVar22 = (re_dfa_t *)((int)&unaff_s7[-1].subexp_map + 3);\n          unaff_s7 = prVar30;\n          if (prVar22 < prVar27) goto LAB_0049179c;\n          unaff_s7 = prVar22;\n          bVar4 = *(byte *)&prVar22->nodes;\n        }\n        puVar21 = pstr->trans;\n        puVar23 = (undefined1 *)((int)unaff_s4 + (pstr->len - (int)unaff_s7));\n        prVar27 = unaff_s7;\n        if (puVar21 != (uchar *)0x0) {\n          puVar14 = (undefined1 *)0x6;\n          if ((int)puVar23 < 7) {\n            puVar14 = puVar23;\n          }\n          if ((int)(puVar14 + -1) < 0) {\n            prVar27 = (re_dfa_t *)buf;\n          }\n          else {\n            pbVar28 = (byte *)((int)unaff_s7->word_char + (int)(puVar14 + -0x61));\n            puVar12 = buf + (int)puVar14;\n            do {\n              puVar12[-1] = puVar21[*pbVar28];\n              puVar12 = puVar12 + -1;\n              pbVar28 = pbVar28 + -1;\n            } while (puVar12 != buf);\n            prVar27 = (re_dfa_t *)buf;\n          }\n        }\n        cur_state.__count = 0;\n        cur_state.__value.__wch = 0;\n        uVar19 = (*(code *)PTR_mbrtowc_004bf2ec)(&wc2);\n        uVar35 = (int)((int)unaff_s4 + (int)pIVar17) - (int)unaff_s7;\n        if ((uVar19 < uVar35) || (0xfffffffd < uVar19)) goto LAB_0049179c;\n        *(undefined1 *)&(pstr->cur_state).__count = 0;\n        *(undefined1 *)((int)&(pstr->cur_state).__count + 1) = 0;\n        *(undefined1 *)((int)&(pstr->cur_state).__count + 2) = 0;\n        *(undefined1 *)((int)&(pstr->cur_state).__count + 3) = 0;\n        (pstr->cur_state).__value.__wchb[0] = '\0';\n        (pstr->cur_state).__value.__wchb[1] = '\0';\n        (pstr->cur_state).__value.__wchb[2] = '\0';\n        (pstr->cur_state).__value.__wchb[3] = '\0';\n        pstr->valid_len = uVar19 - uVar35;\n        unaff_s4 = (Idx *)wc2;\n        if (wc2 == -1) {\n          iVar7 = pstr->raw_mbs_idx;\n          goto LAB_004917a0;\n        }\nLAB_00491834:\n        if (pstr->word_ops_used == '\0') {\nLAB_00491840:\n          uVar19 = 2;\n          if (unaff_s4 == (Idx *)&DAT_0000000a) {\n            if (pstr->newline_anchor == '\0') {\n              uVar19 = 0;\n            }\n          }\n          else {\n            uVar19 = 0;\n          }\n        }\n        else {\n          iVar7 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          uVar19 = 1;\n          if (iVar7 == 0) {\n            if (unaff_s4 == (Idx *)0x5f) {\n              pstr->tip_context = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }\n        pstr->tip_context = uVar19;\n      }\nLAB_00491854:\n      prVar30 = (re_dfa_t *)pstr->valid_len;\n      if (prVar30 == (re_dfa_t *)0x0) {\nLAB_00491860:\n        IVar10 = pstr->valid_len;\n      }\n      else {\n        iVar7 = 0;\n        if (0 < (int)prVar30) {\n          do {\n            pstr->wcs[iVar7] = 0xffffffff;\n            iVar7 = iVar7 + 1;\n            prVar30 = (re_dfa_t *)pstr->valid_len;\n          } while (iVar7 < (int)prVar30);\n        }\n        prVar27 = (re_dfa_t *)0xff;\n        if (pstr->mbs_allocated == '\0') goto LAB_00491860;\n        (*(code *)PTR_memset_004bf260)(pstr->mbs);\n        IVar10 = pstr->valid_len;\n      }\n      pstr->valid_raw_len = IVar10;\nLAB_00491360:\n      uVar2 = pstr->mbs_allocated;\n    }\n    if (uVar2 == '\0') {\n      pstr->mbs = pstr->mbs + (int)pIVar17;\n    }\n  }" { (if_statement "if ((int)pIVar17 < pstr->valid_raw_len) {\n      if (pstr->offsets_needed == '\0') {\n        uVar19 = re_string_context_at(pstr,(Idx)((int)pIVar17 + -1),eflags);\n        pstr->tip_context = uVar19;\n        prVar27 = (re_dfa_t *)((int)pIVar17 * 4);\n        if (pstr->mb_cur_max < 2) {\n          uVar2 = pstr->mbs_allocated;\n        }\n        else {\n          prVar30 = (re_dfa_t *)((pstr->valid_len - (int)pIVar17) * 4);\n          prVar27 = (re_dfa_t *)(pstr->wcs + (int)pIVar17);\n          (*(code *)PTR_memmove_004bf3a4)();\n          uVar2 = pstr->mbs_allocated;\n        }\n        if (uVar2 == '\0') {\n          iVar7 = pstr->valid_len;\n        }\n        else {\n          prVar30 = (re_dfa_t *)(pstr->valid_len - (int)pIVar17);\n          prVar27 = (re_dfa_t *)(pstr->mbs + (int)pIVar17);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar7 = pstr->valid_len;\n        }\n        pstr->valid_len = iVar7 - (int)pIVar17;\n        pstr->valid_raw_len = pstr->valid_raw_len - (int)pIVar17;\n        goto LAB_00491360;\n      }\n      unaff_s6 = (Idx *)pstr->valid_len;\n      unaff_s5 = pstr->offsets;\n      puVar23 = (undefined1 *)0x0;\n      pIVar11 = unaff_s6;\n      do {\n        unaff_s4 = (Idx *)((int)(puVar23 + (int)pIVar11) / 2);\n        iVar7 = unaff_s5[(int)unaff_s4];\n        bVar1 = (int)puVar23 < (int)unaff_s4;\n        pIVar20 = unaff_s4;\n        if (iVar7 <= (int)pIVar17) {\n          puVar23 = (undefined1 *)((int)unaff_s4 + 1);\n          if ((int)pIVar17 <= iVar7) goto LAB_0049145c;\n          bVar1 = (int)puVar23 < (int)pIVar11;\n          pIVar20 = pIVar11;\n        }\n        pIVar11 = pIVar20;\n      } while (bVar1);\n      if (iVar7 < (int)pIVar17) {\n        unaff_s4 = (Idx *)((int)unaff_s4 + 1);\n      }\nLAB_0049145c:\n      prVar27 = (re_dfa_t *)((int)unaff_s4 + -1);\n      uVar19 = re_string_context_at(pstr,(Idx)prVar27,eflags);\n      pstr->tip_context = uVar19;\n      if ((((int)unaff_s6 <= (int)pIVar17) || (pIVar17 != unaff_s4)) ||\n         (eflags = (int)pIVar17 * 4, (Idx *)unaff_s5[(int)unaff_s4] != pIVar17)) {\n        pstr->len = (Idx)((int)pIVar17 + (pstr->raw_len - idx));\n        pstr->stop = (Idx)((int)pIVar17 + (pstr->raw_stop - idx));\n        pstr->offsets_needed = '\0';\n        if ((0 < (int)unaff_s4) && ((Idx *)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pIVar17))\n        {\n          pIVar11 = unaff_s5 + (int)(unaff_s4 + 0x10000000);\n          do {\n            unaff_s4 = (Idx *)((int)unaff_s4 + -1);\n            if (unaff_s4 == (Idx *)0x0) break;\n            pIVar20 = pIVar11 + -2;\n            pIVar11 = pIVar11 + -1;\n          } while ((Idx *)*pIVar20 == pIVar17);\n        }\n        if ((int)unaff_s4 < (int)unaff_s6) {\n          pwVar9 = pstr->wcs + (int)unaff_s4;\n          wVar26 = *pwVar9;\n          while (wVar26 == 0xffffffff) {\n            unaff_s4 = (Idx *)((int)unaff_s4 + 1);\n            pwVar9 = pwVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            wVar26 = *pwVar9;\n          }\nLAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;\n          prVar30 = (re_dfa_t *)(*unaff_s4 - (int)pIVar17);\n          pstr->valid_len = (Idx)prVar30;\n          if (prVar30 == (re_dfa_t *)0x0) goto LAB_00491650;\n          if (0 < (int)prVar30) {\n            iVar7 = 0;\n            do {\n              pstr->wcs[iVar7] = 0xffffffff;\n              iVar7 = iVar7 + 1;\n              prVar30 = (re_dfa_t *)pstr->valid_len;\n            } while (iVar7 < (int)prVar30);\n          }\n          prVar27 = (re_dfa_t *)0xff;\n          (*(code *)PTR_memset_004bf260)(pstr->mbs);\n          IVar10 = pstr->valid_len;\n        }\n        else {\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          pstr->valid_len = 0;\nLAB_00491650:\n          IVar10 = pstr->valid_len;\n        }\n        pstr->valid_raw_len = IVar10;\n        goto LAB_00491360;\n      }\n      (*(code *)PTR_memmove_004bf3a4)\n                (pstr->wcs,pstr->wcs + (int)pIVar17,((int)unaff_s6 - (int)pIVar17) * 4);\n      prVar30 = (re_dfa_t *)(pstr->valid_len - (int)pIVar17);\n      prVar27 = (re_dfa_t *)(pstr->mbs + (int)pIVar17);\n      (*(code *)PTR_memmove_004bf3a4)();\n      iVar7 = pstr->valid_len - (int)pIVar17;\n      pstr->valid_len = iVar7;\n      pstr->valid_raw_len = pstr->valid_raw_len - (int)pIVar17;\n      if (iVar7 < 1) goto LAB_00491360;\n      iVar7 = 0;\n      do {\n        pstr->offsets[iVar7] = *(int *)((int)pstr->offsets + eflags) - (int)pIVar17;\n        iVar7 = iVar7 + 1;\n        eflags = eflags + 4;\n      } while (iVar7 < pstr->valid_len);\n      uVar2 = pstr->mbs_allocated;\n    }\n    else {\n      unaff_s6 = (Idx *)pstr->valid_len;\n      if (pstr->offsets_needed != '\0') {\n        pstr->len = (Idx)((int)pIVar17 + (pstr->raw_len - idx));\n        pstr->stop = (Idx)((int)pIVar17 + (pstr->raw_stop - idx));\n        pstr->offsets_needed = '\0';\n      }\n      pstr->valid_len = 0;\n      if (pstr->mb_cur_max < 2) {\n        prVar27 = (re_dfa_t *)\n                  (uint)*(byte *)((int)pIVar17 + (int)(pstr->raw_mbs + pstr->raw_mbs_idx + -1));\n        pstr->valid_raw_len = 0;\n        if (pstr->trans != (uchar *)0x0) {\n          prVar27 = (re_dfa_t *)(uint)pstr->trans[(int)prVar27];\n        }\n        uVar19 = 1;\n        if ((pstr->word_char[(int)prVar27 >> 5] >> ((uint)prVar27 & 0x1f) & 1) == 0) {\n          uVar19 = 2;\n          if (prVar27 == (re_dfa_t *)&DAT_0000000a) {\n            if (pstr->newline_anchor == '\0') {\n              uVar19 = 0;\n            }\n          }\n          else {\n            uVar19 = 0;\n          }\n        }\n        pstr->tip_context = uVar19;\n        goto LAB_00491360;\n      }\n      if (pstr->is_utf8 == '\0') {\nLAB_0049179c:\n        iVar7 = pstr->raw_mbs_idx;\nLAB_004917a0:\n        pIVar11 = (Idx *)(iVar7 + pstr->valid_raw_len);\n        if ((int)pIVar11 < idx) {\n          unaff_s8 = &pstr->cur_state;\n          unaff_s7 = (re_dfa_t *)&wc2;\n          do {\n            unaff_s5 = pIVar11;\n            iVar32 = pstr->raw_len - (int)unaff_s5;\n            cur_state.__count = (pstr->cur_state).__count;\n            cur_state.__value = (pstr->cur_state).__value;\n            prVar27 = (re_dfa_t *)((int)unaff_s5 + (int)pstr->raw_mbs);\n            iVar7 = (*(code *)PTR_mbrtowc_004bf2ec)(unaff_s7,prVar27,iVar32,unaff_s8);\n            unaff_s4 = (Idx *)wc2;\n            if (0xfffffffc < iVar7 - 1U) {\n              if (iVar7 == 0) {\n                unaff_s4 = (Idx *)0x0;\n              }\n              else if (iVar32 == 0) {\n                unaff_s4 = (Idx *)0x0;\n              }\n              else {\n                unaff_s4 = (Idx *)(uint)*(byte *)((int)unaff_s5 + (int)pstr->raw_mbs);\n              }\n              (pstr->cur_state).__count = cur_state.__count;\n              (pstr->cur_state).__value = cur_state.__value;\n              iVar7 = 1;\n            }\n            pIVar11 = (Idx *)((int)unaff_s5 + iVar7);\n          } while ((int)pIVar11 < idx);\n          pstr->valid_len = (int)pIVar11 - idx;\n          if (unaff_s4 != (Idx *)0xffffffff) goto LAB_00491834;\n        }\n        else {\n          pstr->valid_len = (int)pIVar11 - idx;\n        }\n        prVar27 = (re_dfa_t *)((int)unaff_s6 + -1);\n        uVar19 = re_string_context_at(pstr,(Idx)prVar27,eflags);\n        pstr->tip_context = uVar19;\n      }\n      else {\n        prVar30 = (re_dfa_t *)pstr->raw_mbs;\n        unaff_s4 = (Idx *)((int)prVar30->word_char + pstr->raw_mbs_idx + -0x60);\n        prVar27 = (re_dfa_t *)((int)unaff_s4 + ((int)pIVar17 - pstr->mb_cur_max));\n        if (prVar27 <= prVar30) {\n          prVar27 = prVar30;\n        }\n        prVar30 = (re_dfa_t *)((int)unaff_s4 + (int)((int)pIVar17 + -1));\n        unaff_s5 = pIVar17;\n        if (prVar30 < prVar27) goto LAB_0049179c;\n        bVar4 = *(byte *)&prVar30->nodes;\n        unaff_s7 = prVar30;\n        while ((bVar4 & 0xc0) == 0x80) {\n          prVar22 = (re_dfa_t *)((int)&unaff_s7[-1].subexp_map + 3);\n          unaff_s7 = prVar30;\n          if (prVar22 < prVar27) goto LAB_0049179c;\n          unaff_s7 = prVar22;\n          bVar4 = *(byte *)&prVar22->nodes;\n        }\n        puVar21 = pstr->trans;\n        puVar23 = (undefined1 *)((int)unaff_s4 + (pstr->len - (int)unaff_s7));\n        prVar27 = unaff_s7;\n        if (puVar21 != (uchar *)0x0) {\n          puVar14 = (undefined1 *)0x6;\n          if ((int)puVar23 < 7) {\n            puVar14 = puVar23;\n          }\n          if ((int)(puVar14 + -1) < 0) {\n            prVar27 = (re_dfa_t *)buf;\n          }\n          else {\n            pbVar28 = (byte *)((int)unaff_s7->word_char + (int)(puVar14 + -0x61));\n            puVar12 = buf + (int)puVar14;\n            do {\n              puVar12[-1] = puVar21[*pbVar28];\n              puVar12 = puVar12 + -1;\n              pbVar28 = pbVar28 + -1;\n            } while (puVar12 != buf);\n            prVar27 = (re_dfa_t *)buf;\n          }\n        }\n        cur_state.__count = 0;\n        cur_state.__value.__wch = 0;\n        uVar19 = (*(code *)PTR_mbrtowc_004bf2ec)(&wc2);\n        uVar35 = (int)((int)unaff_s4 + (int)pIVar17) - (int)unaff_s7;\n        if ((uVar19 < uVar35) || (0xfffffffd < uVar19)) goto LAB_0049179c;\n        *(undefined1 *)&(pstr->cur_state).__count = 0;\n        *(undefined1 *)((int)&(pstr->cur_state).__count + 1) = 0;\n        *(undefined1 *)((int)&(pstr->cur_state).__count + 2) = 0;\n        *(undefined1 *)((int)&(pstr->cur_state).__count + 3) = 0;\n        (pstr->cur_state).__value.__wchb[0] = '\0';\n        (pstr->cur_state).__value.__wchb[1] = '\0';\n        (pstr->cur_state).__value.__wchb[2] = '\0';\n        (pstr->cur_state).__value.__wchb[3] = '\0';\n        pstr->valid_len = uVar19 - uVar35;\n        unaff_s4 = (Idx *)wc2;\n        if (wc2 == -1) {\n          iVar7 = pstr->raw_mbs_idx;\n          goto LAB_004917a0;\n        }\nLAB_00491834:\n        if (pstr->word_ops_used == '\0') {\nLAB_00491840:\n          uVar19 = 2;\n          if (unaff_s4 == (Idx *)&DAT_0000000a) {\n            if (pstr->newline_anchor == '\0') {\n              uVar19 = 0;\n            }\n          }\n          else {\n            uVar19 = 0;\n          }\n        }\n        else {\n          iVar7 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          uVar19 = 1;\n          if (iVar7 == 0) {\n            if (unaff_s4 == (Idx *)0x5f) {\n              pstr->tip_context = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }\n        pstr->tip_context = uVar19;\n      }\nLAB_00491854:\n      prVar30 = (re_dfa_t *)pstr->valid_len;\n      if (prVar30 == (re_dfa_t *)0x0) {\nLAB_00491860:\n        IVar10 = pstr->valid_len;\n      }\n      else {\n        iVar7 = 0;\n        if (0 < (int)prVar30) {\n          do {\n            pstr->wcs[iVar7] = 0xffffffff;\n            iVar7 = iVar7 + 1;\n            prVar30 = (re_dfa_t *)pstr->valid_len;\n          } while (iVar7 < (int)prVar30);\n        }\n        prVar27 = (re_dfa_t *)0xff;\n        if (pstr->mbs_allocated == '\0') goto LAB_00491860;\n        (*(code *)PTR_memset_004bf260)(pstr->mbs);\n        IVar10 = pstr->valid_len;\n      }\n      pstr->valid_raw_len = IVar10;\nLAB_00491360:\n      uVar2 = pstr->mbs_allocated;\n    }" if (parenthesized_expression "((int)pIVar17 < pstr->valid_raw_len)" ( (binary_expression "(int)pIVar17 < pstr->valid_raw_len" (cast_expression "(int)pIVar17" ( (type_descriptor "int" primitive_type) ) identifier) < (field_expression "pstr->valid_raw_len" identifier -> field_identifier)) )) (compound_statement "{\n      if (pstr->offsets_needed == '\0') {\n        uVar19 = re_string_context_at(pstr,(Idx)((int)pIVar17 + -1),eflags);\n        pstr->tip_context = uVar19;\n        prVar27 = (re_dfa_t *)((int)pIVar17 * 4);\n        if (pstr->mb_cur_max < 2) {\n          uVar2 = pstr->mbs_allocated;\n        }\n        else {\n          prVar30 = (re_dfa_t *)((pstr->valid_len - (int)pIVar17) * 4);\n          prVar27 = (re_dfa_t *)(pstr->wcs + (int)pIVar17);\n          (*(code *)PTR_memmove_004bf3a4)();\n          uVar2 = pstr->mbs_allocated;\n        }\n        if (uVar2 == '\0') {\n          iVar7 = pstr->valid_len;\n        }\n        else {\n          prVar30 = (re_dfa_t *)(pstr->valid_len - (int)pIVar17);\n          prVar27 = (re_dfa_t *)(pstr->mbs + (int)pIVar17);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar7 = pstr->valid_len;\n        }\n        pstr->valid_len = iVar7 - (int)pIVar17;\n        pstr->valid_raw_len = pstr->valid_raw_len - (int)pIVar17;\n        goto LAB_00491360;\n      }\n      unaff_s6 = (Idx *)pstr->valid_len;\n      unaff_s5 = pstr->offsets;\n      puVar23 = (undefined1 *)0x0;\n      pIVar11 = unaff_s6;\n      do {\n        unaff_s4 = (Idx *)((int)(puVar23 + (int)pIVar11) / 2);\n        iVar7 = unaff_s5[(int)unaff_s4];\n        bVar1 = (int)puVar23 < (int)unaff_s4;\n        pIVar20 = unaff_s4;\n        if (iVar7 <= (int)pIVar17) {\n          puVar23 = (undefined1 *)((int)unaff_s4 + 1);\n          if ((int)pIVar17 <= iVar7) goto LAB_0049145c;\n          bVar1 = (int)puVar23 < (int)pIVar11;\n          pIVar20 = pIVar11;\n        }\n        pIVar11 = pIVar20;\n      } while (bVar1);\n      if (iVar7 < (int)pIVar17) {\n        unaff_s4 = (Idx *)((int)unaff_s4 + 1);\n      }\nLAB_0049145c:\n      prVar27 = (re_dfa_t *)((int)unaff_s4 + -1);\n      uVar19 = re_string_context_at(pstr,(Idx)prVar27,eflags);\n      pstr->tip_context = uVar19;\n      if ((((int)unaff_s6 <= (int)pIVar17) || (pIVar17 != unaff_s4)) ||\n         (eflags = (int)pIVar17 * 4, (Idx *)unaff_s5[(int)unaff_s4] != pIVar17)) {\n        pstr->len = (Idx)((int)pIVar17 + (pstr->raw_len - idx));\n        pstr->stop = (Idx)((int)pIVar17 + (pstr->raw_stop - idx));\n        pstr->offsets_needed = '\0';\n        if ((0 < (int)unaff_s4) && ((Idx *)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pIVar17))\n        {\n          pIVar11 = unaff_s5 + (int)(unaff_s4 + 0x10000000);\n          do {\n            unaff_s4 = (Idx *)((int)unaff_s4 + -1);\n            if (unaff_s4 == (Idx *)0x0) break;\n            pIVar20 = pIVar11 + -2;\n            pIVar11 = pIVar11 + -1;\n          } while ((Idx *)*pIVar20 == pIVar17);\n        }\n        if ((int)unaff_s4 < (int)unaff_s6) {\n          pwVar9 = pstr->wcs + (int)unaff_s4;\n          wVar26 = *pwVar9;\n          while (wVar26 == 0xffffffff) {\n            unaff_s4 = (Idx *)((int)unaff_s4 + 1);\n            pwVar9 = pwVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            wVar26 = *pwVar9;\n          }\nLAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;\n          prVar30 = (re_dfa_t *)(*unaff_s4 - (int)pIVar17);\n          pstr->valid_len = (Idx)prVar30;\n          if (prVar30 == (re_dfa_t *)0x0) goto LAB_00491650;\n          if (0 < (int)prVar30) {\n            iVar7 = 0;\n            do {\n              pstr->wcs[iVar7] = 0xffffffff;\n              iVar7 = iVar7 + 1;\n              prVar30 = (re_dfa_t *)pstr->valid_len;\n            } while (iVar7 < (int)prVar30);\n          }\n          prVar27 = (re_dfa_t *)0xff;\n          (*(code *)PTR_memset_004bf260)(pstr->mbs);\n          IVar10 = pstr->valid_len;\n        }\n        else {\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          pstr->valid_len = 0;\nLAB_00491650:\n          IVar10 = pstr->valid_len;\n        }\n        pstr->valid_raw_len = IVar10;\n        goto LAB_00491360;\n      }\n      (*(code *)PTR_memmove_004bf3a4)\n                (pstr->wcs,pstr->wcs + (int)pIVar17,((int)unaff_s6 - (int)pIVar17) * 4);\n      prVar30 = (re_dfa_t *)(pstr->valid_len - (int)pIVar17);\n      prVar27 = (re_dfa_t *)(pstr->mbs + (int)pIVar17);\n      (*(code *)PTR_memmove_004bf3a4)();\n      iVar7 = pstr->valid_len - (int)pIVar17;\n      pstr->valid_len = iVar7;\n      pstr->valid_raw_len = pstr->valid_raw_len - (int)pIVar17;\n      if (iVar7 < 1) goto LAB_00491360;\n      iVar7 = 0;\n      do {\n        pstr->offsets[iVar7] = *(int *)((int)pstr->offsets + eflags) - (int)pIVar17;\n        iVar7 = iVar7 + 1;\n        eflags = eflags + 4;\n      } while (iVar7 < pstr->valid_len);\n      uVar2 = pstr->mbs_allocated;\n    }" { (if_statement "if (pstr->offsets_needed == '\0') {\n        uVar19 = re_string_context_at(pstr,(Idx)((int)pIVar17 + -1),eflags);\n        pstr->tip_context = uVar19;\n        prVar27 = (re_dfa_t *)((int)pIVar17 * 4);\n        if (pstr->mb_cur_max < 2) {\n          uVar2 = pstr->mbs_allocated;\n        }\n        else {\n          prVar30 = (re_dfa_t *)((pstr->valid_len - (int)pIVar17) * 4);\n          prVar27 = (re_dfa_t *)(pstr->wcs + (int)pIVar17);\n          (*(code *)PTR_memmove_004bf3a4)();\n          uVar2 = pstr->mbs_allocated;\n        }\n        if (uVar2 == '\0') {\n          iVar7 = pstr->valid_len;\n        }\n        else {\n          prVar30 = (re_dfa_t *)(pstr->valid_len - (int)pIVar17);\n          prVar27 = (re_dfa_t *)(pstr->mbs + (int)pIVar17);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar7 = pstr->valid_len;\n        }\n        pstr->valid_len = iVar7 - (int)pIVar17;\n        pstr->valid_raw_len = pstr->valid_raw_len - (int)pIVar17;\n        goto LAB_00491360;\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        uVar19 = re_string_context_at(pstr,(Idx)((int)pIVar17 + -1),eflags);\n        pstr->tip_context = uVar19;\n        prVar27 = (re_dfa_t *)((int)pIVar17 * 4);\n        if (pstr->mb_cur_max < 2) {\n          uVar2 = pstr->mbs_allocated;\n        }\n        else {\n          prVar30 = (re_dfa_t *)((pstr->valid_len - (int)pIVar17) * 4);\n          prVar27 = (re_dfa_t *)(pstr->wcs + (int)pIVar17);\n          (*(code *)PTR_memmove_004bf3a4)();\n          uVar2 = pstr->mbs_allocated;\n        }\n        if (uVar2 == '\0') {\n          iVar7 = pstr->valid_len;\n        }\n        else {\n          prVar30 = (re_dfa_t *)(pstr->valid_len - (int)pIVar17);\n          prVar27 = (re_dfa_t *)(pstr->mbs + (int)pIVar17);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar7 = pstr->valid_len;\n        }\n        pstr->valid_len = iVar7 - (int)pIVar17;\n        pstr->valid_raw_len = pstr->valid_raw_len - (int)pIVar17;\n        goto LAB_00491360;\n      }" { (expression_statement "uVar19 = re_string_context_at(pstr,(Idx)((int)pIVar17 + -1),eflags);" (assignment_expression "uVar19 = re_string_context_at(pstr,(Idx)((int)pIVar17 + -1),eflags)" identifier = (call_expression "re_string_context_at(pstr,(Idx)((int)pIVar17 + -1),eflags)" identifier (argument_list "(pstr,(Idx)((int)pIVar17 + -1),eflags)" ( identifier , (call_expression "(Idx)((int)pIVar17 + -1)" (parenthesized_expression "(Idx)" ( identifier )) (argument_list "((int)pIVar17 + -1)" ( (binary_expression "(int)pIVar17 + -1" (cast_expression "(int)pIVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) , identifier )))) ;) (expression_statement "pstr->tip_context = uVar19;" (assignment_expression "pstr->tip_context = uVar19" (field_expression "pstr->tip_context" identifier -> field_identifier) = identifier) ;) (expression_statement "prVar27 = (re_dfa_t *)((int)pIVar17 * 4);" (assignment_expression "prVar27 = (re_dfa_t *)((int)pIVar17 * 4)" identifier = (cast_expression "(re_dfa_t *)((int)pIVar17 * 4)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pIVar17 * 4)" ( (binary_expression "(int)pIVar17 * 4" (cast_expression "(int)pIVar17" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (if_statement "if (pstr->mb_cur_max < 2) {\n          uVar2 = pstr->mbs_allocated;\n        }\n        else {\n          prVar30 = (re_dfa_t *)((pstr->valid_len - (int)pIVar17) * 4);\n          prVar27 = (re_dfa_t *)(pstr->wcs + (int)pIVar17);\n          (*(code *)PTR_memmove_004bf3a4)();\n          uVar2 = pstr->mbs_allocated;\n        }" if (parenthesized_expression "(pstr->mb_cur_max < 2)" ( (binary_expression "pstr->mb_cur_max < 2" (field_expression "pstr->mb_cur_max" identifier -> field_identifier) < number_literal) )) (compound_statement "{\n          uVar2 = pstr->mbs_allocated;\n        }" { (expression_statement "uVar2 = pstr->mbs_allocated;" (assignment_expression "uVar2 = pstr->mbs_allocated" identifier = (field_expression "pstr->mbs_allocated" identifier -> field_identifier)) ;) }) (else_clause "else {\n          prVar30 = (re_dfa_t *)((pstr->valid_len - (int)pIVar17) * 4);\n          prVar27 = (re_dfa_t *)(pstr->wcs + (int)pIVar17);\n          (*(code *)PTR_memmove_004bf3a4)();\n          uVar2 = pstr->mbs_allocated;\n        }" else (compound_statement "{\n          prVar30 = (re_dfa_t *)((pstr->valid_len - (int)pIVar17) * 4);\n          prVar27 = (re_dfa_t *)(pstr->wcs + (int)pIVar17);\n          (*(code *)PTR_memmove_004bf3a4)();\n          uVar2 = pstr->mbs_allocated;\n        }" { (expression_statement "prVar30 = (re_dfa_t *)((pstr->valid_len - (int)pIVar17) * 4);" (assignment_expression "prVar30 = (re_dfa_t *)((pstr->valid_len - (int)pIVar17) * 4)" identifier = (cast_expression "(re_dfa_t *)((pstr->valid_len - (int)pIVar17) * 4)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((pstr->valid_len - (int)pIVar17) * 4)" ( (binary_expression "(pstr->valid_len - (int)pIVar17) * 4" (parenthesized_expression "(pstr->valid_len - (int)pIVar17)" ( (binary_expression "pstr->valid_len - (int)pIVar17" (field_expression "pstr->valid_len" identifier -> field_identifier) - (cast_expression "(int)pIVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal) )))) ;) (expression_statement "prVar27 = (re_dfa_t *)(pstr->wcs + (int)pIVar17);" (assignment_expression "prVar27 = (re_dfa_t *)(pstr->wcs + (int)pIVar17)" identifier = (cast_expression "(re_dfa_t *)(pstr->wcs + (int)pIVar17)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pstr->wcs + (int)pIVar17)" ( (binary_expression "pstr->wcs + (int)pIVar17" (field_expression "pstr->wcs" identifier -> field_identifier) + (cast_expression "(int)pIVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "(*(code *)PTR_memmove_004bf3a4)();" (call_expression "(*(code *)PTR_memmove_004bf3a4)()" (parenthesized_expression "(*(code *)PTR_memmove_004bf3a4)" ( (pointer_expression "*(code *)PTR_memmove_004bf3a4" * (cast_expression "(code *)PTR_memmove_004bf3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar2 = pstr->mbs_allocated;" (assignment_expression "uVar2 = pstr->mbs_allocated" identifier = (field_expression "pstr->mbs_allocated" identifier -> field_identifier)) ;) }))) (if_statement "if (uVar2 == '\0') {\n          iVar7 = pstr->valid_len;\n        }\n        else {\n          prVar30 = (re_dfa_t *)(pstr->valid_len - (int)pIVar17);\n          prVar27 = (re_dfa_t *)(pstr->mbs + (int)pIVar17);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar7 = pstr->valid_len;\n        }" if (parenthesized_expression "(uVar2 == '\0')" ( (binary_expression "uVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          iVar7 = pstr->valid_len;\n        }" { (expression_statement "iVar7 = pstr->valid_len;" (assignment_expression "iVar7 = pstr->valid_len" identifier = (field_expression "pstr->valid_len" identifier -> field_identifier)) ;) }) (else_clause "else {\n          prVar30 = (re_dfa_t *)(pstr->valid_len - (int)pIVar17);\n          prVar27 = (re_dfa_t *)(pstr->mbs + (int)pIVar17);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar7 = pstr->valid_len;\n        }" else (compound_statement "{\n          prVar30 = (re_dfa_t *)(pstr->valid_len - (int)pIVar17);\n          prVar27 = (re_dfa_t *)(pstr->mbs + (int)pIVar17);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar7 = pstr->valid_len;\n        }" { (expression_statement "prVar30 = (re_dfa_t *)(pstr->valid_len - (int)pIVar17);" (assignment_expression "prVar30 = (re_dfa_t *)(pstr->valid_len - (int)pIVar17)" identifier = (cast_expression "(re_dfa_t *)(pstr->valid_len - (int)pIVar17)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pstr->valid_len - (int)pIVar17)" ( (binary_expression "pstr->valid_len - (int)pIVar17" (field_expression "pstr->valid_len" identifier -> field_identifier) - (cast_expression "(int)pIVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "prVar27 = (re_dfa_t *)(pstr->mbs + (int)pIVar17);" (assignment_expression "prVar27 = (re_dfa_t *)(pstr->mbs + (int)pIVar17)" identifier = (cast_expression "(re_dfa_t *)(pstr->mbs + (int)pIVar17)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pstr->mbs + (int)pIVar17)" ( (binary_expression "pstr->mbs + (int)pIVar17" (field_expression "pstr->mbs" identifier -> field_identifier) + (cast_expression "(int)pIVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "(*(code *)PTR_memmove_004bf3a4)();" (call_expression "(*(code *)PTR_memmove_004bf3a4)()" (parenthesized_expression "(*(code *)PTR_memmove_004bf3a4)" ( (pointer_expression "*(code *)PTR_memmove_004bf3a4" * (cast_expression "(code *)PTR_memmove_004bf3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar7 = pstr->valid_len;" (assignment_expression "iVar7 = pstr->valid_len" identifier = (field_expression "pstr->valid_len" identifier -> field_identifier)) ;) }))) (expression_statement "pstr->valid_len = iVar7 - (int)pIVar17;" (assignment_expression "pstr->valid_len = iVar7 - (int)pIVar17" (field_expression "pstr->valid_len" identifier -> field_identifier) = (binary_expression "iVar7 - (int)pIVar17" identifier - (cast_expression "(int)pIVar17" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pstr->valid_raw_len = pstr->valid_raw_len - (int)pIVar17;" (assignment_expression "pstr->valid_raw_len = pstr->valid_raw_len - (int)pIVar17" (field_expression "pstr->valid_raw_len" identifier -> field_identifier) = (binary_expression "pstr->valid_raw_len - (int)pIVar17" (field_expression "pstr->valid_raw_len" identifier -> field_identifier) - (cast_expression "(int)pIVar17" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (goto_statement "goto LAB_00491360;" goto statement_identifier ;) })) (expression_statement "unaff_s6 = (Idx *)pstr->valid_len;" (assignment_expression "unaff_s6 = (Idx *)pstr->valid_len" identifier = (cast_expression "(Idx *)pstr->valid_len" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pstr->valid_len" identifier -> field_identifier))) ;) (expression_statement "unaff_s5 = pstr->offsets;" (assignment_expression "unaff_s5 = pstr->offsets" identifier = (field_expression "pstr->offsets" identifier -> field_identifier)) ;) (expression_statement "puVar23 = (undefined1 *)0x0;" (assignment_expression "puVar23 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pIVar11 = unaff_s6;" (assignment_expression "pIVar11 = unaff_s6" identifier = identifier) ;) (do_statement "do {\n        unaff_s4 = (Idx *)((int)(puVar23 + (int)pIVar11) / 2);\n        iVar7 = unaff_s5[(int)unaff_s4];\n        bVar1 = (int)puVar23 < (int)unaff_s4;\n        pIVar20 = unaff_s4;\n        if (iVar7 <= (int)pIVar17) {\n          puVar23 = (undefined1 *)((int)unaff_s4 + 1);\n          if ((int)pIVar17 <= iVar7) goto LAB_0049145c;\n          bVar1 = (int)puVar23 < (int)pIVar11;\n          pIVar20 = pIVar11;\n        }\n        pIVar11 = pIVar20;\n      } while (bVar1);" do (compound_statement "{\n        unaff_s4 = (Idx *)((int)(puVar23 + (int)pIVar11) / 2);\n        iVar7 = unaff_s5[(int)unaff_s4];\n        bVar1 = (int)puVar23 < (int)unaff_s4;\n        pIVar20 = unaff_s4;\n        if (iVar7 <= (int)pIVar17) {\n          puVar23 = (undefined1 *)((int)unaff_s4 + 1);\n          if ((int)pIVar17 <= iVar7) goto LAB_0049145c;\n          bVar1 = (int)puVar23 < (int)pIVar11;\n          pIVar20 = pIVar11;\n        }\n        pIVar11 = pIVar20;\n      }" { (expression_statement "unaff_s4 = (Idx *)((int)(puVar23 + (int)pIVar11) / 2);" (assignment_expression "unaff_s4 = (Idx *)((int)(puVar23 + (int)pIVar11) / 2)" identifier = (cast_expression "(Idx *)((int)(puVar23 + (int)pIVar11) / 2)" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(puVar23 + (int)pIVar11) / 2)" ( (binary_expression "(int)(puVar23 + (int)pIVar11) / 2" (cast_expression "(int)(puVar23 + (int)pIVar11)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar23 + (int)pIVar11)" ( (binary_expression "puVar23 + (int)pIVar11" identifier + (cast_expression "(int)pIVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ))) / number_literal) )))) ;) (expression_statement "iVar7 = unaff_s5[(int)unaff_s4];" (assignment_expression "iVar7 = unaff_s5[(int)unaff_s4]" identifier = (subscript_expression "unaff_s5[(int)unaff_s4]" identifier [ (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) ])) ;) (expression_statement "bVar1 = (int)puVar23 < (int)unaff_s4;" (assignment_expression "bVar1 = (int)puVar23 < (int)unaff_s4" identifier = (binary_expression "(int)puVar23 < (int)unaff_s4" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pIVar20 = unaff_s4;" (assignment_expression "pIVar20 = unaff_s4" identifier = identifier) ;) (if_statement "if (iVar7 <= (int)pIVar17) {\n          puVar23 = (undefined1 *)((int)unaff_s4 + 1);\n          if ((int)pIVar17 <= iVar7) goto LAB_0049145c;\n          bVar1 = (int)puVar23 < (int)pIVar11;\n          pIVar20 = pIVar11;\n        }" if (parenthesized_expression "(iVar7 <= (int)pIVar17)" ( (binary_expression "iVar7 <= (int)pIVar17" identifier <= (cast_expression "(int)pIVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          puVar23 = (undefined1 *)((int)unaff_s4 + 1);\n          if ((int)pIVar17 <= iVar7) goto LAB_0049145c;\n          bVar1 = (int)puVar23 < (int)pIVar11;\n          pIVar20 = pIVar11;\n        }" { (expression_statement "puVar23 = (undefined1 *)((int)unaff_s4 + 1);" (assignment_expression "puVar23 = (undefined1 *)((int)unaff_s4 + 1)" identifier = (cast_expression "(undefined1 *)((int)unaff_s4 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 1)" ( (binary_expression "(int)unaff_s4 + 1" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((int)pIVar17 <= iVar7) goto LAB_0049145c;" if (parenthesized_expression "((int)pIVar17 <= iVar7)" ( (binary_expression "(int)pIVar17 <= iVar7" (cast_expression "(int)pIVar17" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier) )) (goto_statement "goto LAB_0049145c;" goto statement_identifier ;)) (expression_statement "bVar1 = (int)puVar23 < (int)pIVar11;" (assignment_expression "bVar1 = (int)puVar23 < (int)pIVar11" identifier = (binary_expression "(int)puVar23 < (int)pIVar11" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pIVar11" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pIVar20 = pIVar11;" (assignment_expression "pIVar20 = pIVar11" identifier = identifier) ;) })) (expression_statement "pIVar11 = pIVar20;" (assignment_expression "pIVar11 = pIVar20" identifier = identifier) ;) }) while (parenthesized_expression "(bVar1)" ( identifier )) ;) (if_statement "if (iVar7 < (int)pIVar17) {\n        unaff_s4 = (Idx *)((int)unaff_s4 + 1);\n      }" if (parenthesized_expression "(iVar7 < (int)pIVar17)" ( (binary_expression "iVar7 < (int)pIVar17" identifier < (cast_expression "(int)pIVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        unaff_s4 = (Idx *)((int)unaff_s4 + 1);\n      }" { (expression_statement "unaff_s4 = (Idx *)((int)unaff_s4 + 1);" (assignment_expression "unaff_s4 = (Idx *)((int)unaff_s4 + 1)" identifier = (cast_expression "(Idx *)((int)unaff_s4 + 1)" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 1)" ( (binary_expression "(int)unaff_s4 + 1" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (labeled_statement "LAB_0049145c:\n      prVar27 = (re_dfa_t *)((int)unaff_s4 + -1);" statement_identifier : (expression_statement "prVar27 = (re_dfa_t *)((int)unaff_s4 + -1);" (assignment_expression "prVar27 = (re_dfa_t *)((int)unaff_s4 + -1)" identifier = (cast_expression "(re_dfa_t *)((int)unaff_s4 + -1)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + -1)" ( (binary_expression "(int)unaff_s4 + -1" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) (expression_statement "uVar19 = re_string_context_at(pstr,(Idx)prVar27,eflags);" (assignment_expression "uVar19 = re_string_context_at(pstr,(Idx)prVar27,eflags)" identifier = (call_expression "re_string_context_at(pstr,(Idx)prVar27,eflags)" identifier (argument_list "(pstr,(Idx)prVar27,eflags)" ( identifier , (cast_expression "(Idx)prVar27" ( (type_descriptor "Idx" type_identifier) ) identifier) , identifier )))) ;) (expression_statement "pstr->tip_context = uVar19;" (assignment_expression "pstr->tip_context = uVar19" (field_expression "pstr->tip_context" identifier -> field_identifier) = identifier) ;) (if_statement "if ((((int)unaff_s6 <= (int)pIVar17) || (pIVar17 != unaff_s4)) ||\n         (eflags = (int)pIVar17 * 4, (Idx *)unaff_s5[(int)unaff_s4] != pIVar17)) {\n        pstr->len = (Idx)((int)pIVar17 + (pstr->raw_len - idx));\n        pstr->stop = (Idx)((int)pIVar17 + (pstr->raw_stop - idx));\n        pstr->offsets_needed = '\0';\n        if ((0 < (int)unaff_s4) && ((Idx *)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pIVar17))\n        {\n          pIVar11 = unaff_s5 + (int)(unaff_s4 + 0x10000000);\n          do {\n            unaff_s4 = (Idx *)((int)unaff_s4 + -1);\n            if (unaff_s4 == (Idx *)0x0) break;\n            pIVar20 = pIVar11 + -2;\n            pIVar11 = pIVar11 + -1;\n          } while ((Idx *)*pIVar20 == pIVar17);\n        }\n        if ((int)unaff_s4 < (int)unaff_s6) {\n          pwVar9 = pstr->wcs + (int)unaff_s4;\n          wVar26 = *pwVar9;\n          while (wVar26 == 0xffffffff) {\n            unaff_s4 = (Idx *)((int)unaff_s4 + 1);\n            pwVar9 = pwVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            wVar26 = *pwVar9;\n          }\nLAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;\n          prVar30 = (re_dfa_t *)(*unaff_s4 - (int)pIVar17);\n          pstr->valid_len = (Idx)prVar30;\n          if (prVar30 == (re_dfa_t *)0x0) goto LAB_00491650;\n          if (0 < (int)prVar30) {\n            iVar7 = 0;\n            do {\n              pstr->wcs[iVar7] = 0xffffffff;\n              iVar7 = iVar7 + 1;\n              prVar30 = (re_dfa_t *)pstr->valid_len;\n            } while (iVar7 < (int)prVar30);\n          }\n          prVar27 = (re_dfa_t *)0xff;\n          (*(code *)PTR_memset_004bf260)(pstr->mbs);\n          IVar10 = pstr->valid_len;\n        }\n        else {\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          pstr->valid_len = 0;\nLAB_00491650:\n          IVar10 = pstr->valid_len;\n        }\n        pstr->valid_raw_len = IVar10;\n        goto LAB_00491360;\n      }" if (parenthesized_expression "((((int)unaff_s6 <= (int)pIVar17) || (pIVar17 != unaff_s4)) ||\n         (eflags = (int)pIVar17 * 4, (Idx *)unaff_s5[(int)unaff_s4] != pIVar17))" ( (binary_expression "(((int)unaff_s6 <= (int)pIVar17) || (pIVar17 != unaff_s4)) ||\n         (eflags = (int)pIVar17 * 4, (Idx *)unaff_s5[(int)unaff_s4] != pIVar17)" (parenthesized_expression "(((int)unaff_s6 <= (int)pIVar17) || (pIVar17 != unaff_s4))" ( (binary_expression "((int)unaff_s6 <= (int)pIVar17) || (pIVar17 != unaff_s4)" (parenthesized_expression "((int)unaff_s6 <= (int)pIVar17)" ( (binary_expression "(int)unaff_s6 <= (int)pIVar17" (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pIVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "(pIVar17 != unaff_s4)" ( (binary_expression "pIVar17 != unaff_s4" identifier != identifier) ))) )) || (parenthesized_expression "(eflags = (int)pIVar17 * 4, (Idx *)unaff_s5[(int)unaff_s4] != pIVar17)" ( (comma_expression "eflags = (int)pIVar17 * 4, (Idx *)unaff_s5[(int)unaff_s4] != pIVar17" (assignment_expression "eflags = (int)pIVar17 * 4" identifier = (binary_expression "(int)pIVar17 * 4" (cast_expression "(int)pIVar17" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) , (binary_expression "(Idx *)unaff_s5[(int)unaff_s4] != pIVar17" (cast_expression "(Idx *)unaff_s5[(int)unaff_s4]" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "unaff_s5[(int)unaff_s4]" identifier [ (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) ])) != identifier)) ))) )) (compound_statement "{\n        pstr->len = (Idx)((int)pIVar17 + (pstr->raw_len - idx));\n        pstr->stop = (Idx)((int)pIVar17 + (pstr->raw_stop - idx));\n        pstr->offsets_needed = '\0';\n        if ((0 < (int)unaff_s4) && ((Idx *)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pIVar17))\n        {\n          pIVar11 = unaff_s5 + (int)(unaff_s4 + 0x10000000);\n          do {\n            unaff_s4 = (Idx *)((int)unaff_s4 + -1);\n            if (unaff_s4 == (Idx *)0x0) break;\n            pIVar20 = pIVar11 + -2;\n            pIVar11 = pIVar11 + -1;\n          } while ((Idx *)*pIVar20 == pIVar17);\n        }\n        if ((int)unaff_s4 < (int)unaff_s6) {\n          pwVar9 = pstr->wcs + (int)unaff_s4;\n          wVar26 = *pwVar9;\n          while (wVar26 == 0xffffffff) {\n            unaff_s4 = (Idx *)((int)unaff_s4 + 1);\n            pwVar9 = pwVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            wVar26 = *pwVar9;\n          }\nLAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;\n          prVar30 = (re_dfa_t *)(*unaff_s4 - (int)pIVar17);\n          pstr->valid_len = (Idx)prVar30;\n          if (prVar30 == (re_dfa_t *)0x0) goto LAB_00491650;\n          if (0 < (int)prVar30) {\n            iVar7 = 0;\n            do {\n              pstr->wcs[iVar7] = 0xffffffff;\n              iVar7 = iVar7 + 1;\n              prVar30 = (re_dfa_t *)pstr->valid_len;\n            } while (iVar7 < (int)prVar30);\n          }\n          prVar27 = (re_dfa_t *)0xff;\n          (*(code *)PTR_memset_004bf260)(pstr->mbs);\n          IVar10 = pstr->valid_len;\n        }\n        else {\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          pstr->valid_len = 0;\nLAB_00491650:\n          IVar10 = pstr->valid_len;\n        }\n        pstr->valid_raw_len = IVar10;\n        goto LAB_00491360;\n      }" { (expression_statement "pstr->len = (Idx)((int)pIVar17 + (pstr->raw_len - idx));" (assignment_expression "pstr->len = (Idx)((int)pIVar17 + (pstr->raw_len - idx))" (field_expression "pstr->len" identifier -> field_identifier) = (call_expression "(Idx)((int)pIVar17 + (pstr->raw_len - idx))" (parenthesized_expression "(Idx)" ( identifier )) (argument_list "((int)pIVar17 + (pstr->raw_len - idx))" ( (binary_expression "(int)pIVar17 + (pstr->raw_len - idx)" (cast_expression "(int)pIVar17" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(pstr->raw_len - idx)" ( (binary_expression "pstr->raw_len - idx" (field_expression "pstr->raw_len" identifier -> field_identifier) - identifier) ))) )))) ;) (expression_statement "pstr->stop = (Idx)((int)pIVar17 + (pstr->raw_stop - idx));" (assignment_expression "pstr->stop = (Idx)((int)pIVar17 + (pstr->raw_stop - idx))" (field_expression "pstr->stop" identifier -> field_identifier) = (call_expression "(Idx)((int)pIVar17 + (pstr->raw_stop - idx))" (parenthesized_expression "(Idx)" ( identifier )) (argument_list "((int)pIVar17 + (pstr->raw_stop - idx))" ( (binary_expression "(int)pIVar17 + (pstr->raw_stop - idx)" (cast_expression "(int)pIVar17" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(pstr->raw_stop - idx)" ( (binary_expression "pstr->raw_stop - idx" (field_expression "pstr->raw_stop" identifier -> field_identifier) - identifier) ))) )))) ;) (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 ')) ;) (if_statement "if ((0 < (int)unaff_s4) && ((Idx *)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pIVar17))\n        {\n          pIVar11 = unaff_s5 + (int)(unaff_s4 + 0x10000000);\n          do {\n            unaff_s4 = (Idx *)((int)unaff_s4 + -1);\n            if (unaff_s4 == (Idx *)0x0) break;\n            pIVar20 = pIVar11 + -2;\n            pIVar11 = pIVar11 + -1;\n          } while ((Idx *)*pIVar20 == pIVar17);\n        }" if (parenthesized_expression "((0 < (int)unaff_s4) && ((Idx *)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pIVar17))" ( (binary_expression "(0 < (int)unaff_s4) && ((Idx *)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pIVar17)" (parenthesized_expression "(0 < (int)unaff_s4)" ( (binary_expression "0 < (int)unaff_s4" number_literal < (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "((Idx *)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pIVar17)" ( (binary_expression "(Idx *)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pIVar17" (cast_expression "(Idx *)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)]" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)]" identifier [ (cast_expression "(int)((int)unaff_s4 + 0x3fffffff)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)unaff_s4 + 0x3fffffff)" ( (binary_expression "(int)unaff_s4 + 0x3fffffff" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ])) == identifier) ))) )) (compound_statement "{\n          pIVar11 = unaff_s5 + (int)(unaff_s4 + 0x10000000);\n          do {\n            unaff_s4 = (Idx *)((int)unaff_s4 + -1);\n            if (unaff_s4 == (Idx *)0x0) break;\n            pIVar20 = pIVar11 + -2;\n            pIVar11 = pIVar11 + -1;\n          } while ((Idx *)*pIVar20 == pIVar17);\n        }" { (expression_statement "pIVar11 = unaff_s5 + (int)(unaff_s4 + 0x10000000);" (assignment_expression "pIVar11 = unaff_s5 + (int)(unaff_s4 + 0x10000000)" identifier = (binary_expression "unaff_s5 + (int)(unaff_s4 + 0x10000000)" identifier + (cast_expression "(int)(unaff_s4 + 0x10000000)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(unaff_s4 + 0x10000000)" ( (binary_expression "unaff_s4 + 0x10000000" identifier + number_literal) ))))) ;) (do_statement "do {\n            unaff_s4 = (Idx *)((int)unaff_s4 + -1);\n            if (unaff_s4 == (Idx *)0x0) break;\n            pIVar20 = pIVar11 + -2;\n            pIVar11 = pIVar11 + -1;\n          } while ((Idx *)*pIVar20 == pIVar17);" do (compound_statement "{\n            unaff_s4 = (Idx *)((int)unaff_s4 + -1);\n            if (unaff_s4 == (Idx *)0x0) break;\n            pIVar20 = pIVar11 + -2;\n            pIVar11 = pIVar11 + -1;\n          }" { (expression_statement "unaff_s4 = (Idx *)((int)unaff_s4 + -1);" (assignment_expression "unaff_s4 = (Idx *)((int)unaff_s4 + -1)" identifier = (cast_expression "(Idx *)((int)unaff_s4 + -1)" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + -1)" ( (binary_expression "(int)unaff_s4 + -1" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (unaff_s4 == (Idx *)0x0) break;" if (parenthesized_expression "(unaff_s4 == (Idx *)0x0)" ( (binary_expression "unaff_s4 == (Idx *)0x0" identifier == (cast_expression "(Idx *)0x0" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "pIVar20 = pIVar11 + -2;" (assignment_expression "pIVar20 = pIVar11 + -2" identifier = (binary_expression "pIVar11 + -2" identifier + number_literal)) ;) (expression_statement "pIVar11 = pIVar11 + -1;" (assignment_expression "pIVar11 = pIVar11 + -1" identifier = (binary_expression "pIVar11 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "((Idx *)*pIVar20 == pIVar17)" ( (binary_expression "(Idx *)*pIVar20 == pIVar17" (cast_expression "(Idx *)*pIVar20" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*pIVar20" * identifier)) == identifier) )) ;) })) (if_statement "if ((int)unaff_s4 < (int)unaff_s6) {\n          pwVar9 = pstr->wcs + (int)unaff_s4;\n          wVar26 = *pwVar9;\n          while (wVar26 == 0xffffffff) {\n            unaff_s4 = (Idx *)((int)unaff_s4 + 1);\n            pwVar9 = pwVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            wVar26 = *pwVar9;\n          }\nLAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;\n          prVar30 = (re_dfa_t *)(*unaff_s4 - (int)pIVar17);\n          pstr->valid_len = (Idx)prVar30;\n          if (prVar30 == (re_dfa_t *)0x0) goto LAB_00491650;\n          if (0 < (int)prVar30) {\n            iVar7 = 0;\n            do {\n              pstr->wcs[iVar7] = 0xffffffff;\n              iVar7 = iVar7 + 1;\n              prVar30 = (re_dfa_t *)pstr->valid_len;\n            } while (iVar7 < (int)prVar30);\n          }\n          prVar27 = (re_dfa_t *)0xff;\n          (*(code *)PTR_memset_004bf260)(pstr->mbs);\n          IVar10 = pstr->valid_len;\n        }\n        else {\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          pstr->valid_len = 0;\nLAB_00491650:\n          IVar10 = pstr->valid_len;\n        }" if (parenthesized_expression "((int)unaff_s4 < (int)unaff_s6)" ( (binary_expression "(int)unaff_s4 < (int)unaff_s6" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          pwVar9 = pstr->wcs + (int)unaff_s4;\n          wVar26 = *pwVar9;\n          while (wVar26 == 0xffffffff) {\n            unaff_s4 = (Idx *)((int)unaff_s4 + 1);\n            pwVar9 = pwVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            wVar26 = *pwVar9;\n          }\nLAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;\n          prVar30 = (re_dfa_t *)(*unaff_s4 - (int)pIVar17);\n          pstr->valid_len = (Idx)prVar30;\n          if (prVar30 == (re_dfa_t *)0x0) goto LAB_00491650;\n          if (0 < (int)prVar30) {\n            iVar7 = 0;\n            do {\n              pstr->wcs[iVar7] = 0xffffffff;\n              iVar7 = iVar7 + 1;\n              prVar30 = (re_dfa_t *)pstr->valid_len;\n            } while (iVar7 < (int)prVar30);\n          }\n          prVar27 = (re_dfa_t *)0xff;\n          (*(code *)PTR_memset_004bf260)(pstr->mbs);\n          IVar10 = pstr->valid_len;\n        }" { (expression_statement "pwVar9 = pstr->wcs + (int)unaff_s4;" (assignment_expression "pwVar9 = pstr->wcs + (int)unaff_s4" identifier = (binary_expression "pstr->wcs + (int)unaff_s4" (field_expression "pstr->wcs" identifier -> field_identifier) + (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "wVar26 = *pwVar9;" (assignment_expression "wVar26 = *pwVar9" identifier = (pointer_expression "*pwVar9" * identifier)) ;) (while_statement "while (wVar26 == 0xffffffff) {\n            unaff_s4 = (Idx *)((int)unaff_s4 + 1);\n            pwVar9 = pwVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            wVar26 = *pwVar9;\n          }" while (parenthesized_expression "(wVar26 == 0xffffffff)" ( (binary_expression "wVar26 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n            unaff_s4 = (Idx *)((int)unaff_s4 + 1);\n            pwVar9 = pwVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            wVar26 = *pwVar9;\n          }" { (expression_statement "unaff_s4 = (Idx *)((int)unaff_s4 + 1);" (assignment_expression "unaff_s4 = (Idx *)((int)unaff_s4 + 1)" identifier = (cast_expression "(Idx *)((int)unaff_s4 + 1)" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 1)" ( (binary_expression "(int)unaff_s4 + 1" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pwVar9 = pwVar9 + 1;" (assignment_expression "pwVar9 = pwVar9 + 1" identifier = (binary_expression "pwVar9 + 1" identifier + number_literal)) ;) (if_statement "if (unaff_s6 == unaff_s4) goto LAB_0049164c;" if (parenthesized_expression "(unaff_s6 == unaff_s4)" ( (binary_expression "unaff_s6 == unaff_s4" identifier == identifier) )) (goto_statement "goto LAB_0049164c;" goto statement_identifier ;)) (expression_statement "wVar26 = *pwVar9;" (assignment_expression "wVar26 = *pwVar9" identifier = (pointer_expression "*pwVar9" * identifier)) ;) })) (labeled_statement "LAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;" statement_identifier : (expression_statement "unaff_s4 = unaff_s5 + (int)unaff_s4;" (assignment_expression "unaff_s4 = unaff_s5 + (int)unaff_s4" identifier = (binary_expression "unaff_s5 + (int)unaff_s4" identifier + (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (expression_statement "prVar30 = (re_dfa_t *)(*unaff_s4 - (int)pIVar17);" (assignment_expression "prVar30 = (re_dfa_t *)(*unaff_s4 - (int)pIVar17)" identifier = (cast_expression "(re_dfa_t *)(*unaff_s4 - (int)pIVar17)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*unaff_s4 - (int)pIVar17)" ( (binary_expression "*unaff_s4 - (int)pIVar17" (pointer_expression "*unaff_s4" * identifier) - (cast_expression "(int)pIVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pstr->valid_len = (Idx)prVar30;" (assignment_expression "pstr->valid_len = (Idx)prVar30" (field_expression "pstr->valid_len" identifier -> field_identifier) = (cast_expression "(Idx)prVar30" ( (type_descriptor "Idx" type_identifier) ) identifier)) ;) (if_statement "if (prVar30 == (re_dfa_t *)0x0) goto LAB_00491650;" if (parenthesized_expression "(prVar30 == (re_dfa_t *)0x0)" ( (binary_expression "prVar30 == (re_dfa_t *)0x0" identifier == (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00491650;" goto statement_identifier ;)) (if_statement "if (0 < (int)prVar30) {\n            iVar7 = 0;\n            do {\n              pstr->wcs[iVar7] = 0xffffffff;\n              iVar7 = iVar7 + 1;\n              prVar30 = (re_dfa_t *)pstr->valid_len;\n            } while (iVar7 < (int)prVar30);\n          }" if (parenthesized_expression "(0 < (int)prVar30)" ( (binary_expression "0 < (int)prVar30" number_literal < (cast_expression "(int)prVar30" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            iVar7 = 0;\n            do {\n              pstr->wcs[iVar7] = 0xffffffff;\n              iVar7 = iVar7 + 1;\n              prVar30 = (re_dfa_t *)pstr->valid_len;\n            } while (iVar7 < (int)prVar30);\n          }" { (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (do_statement "do {\n              pstr->wcs[iVar7] = 0xffffffff;\n              iVar7 = iVar7 + 1;\n              prVar30 = (re_dfa_t *)pstr->valid_len;\n            } while (iVar7 < (int)prVar30);" do (compound_statement "{\n              pstr->wcs[iVar7] = 0xffffffff;\n              iVar7 = iVar7 + 1;\n              prVar30 = (re_dfa_t *)pstr->valid_len;\n            }" { (expression_statement "pstr->wcs[iVar7] = 0xffffffff;" (assignment_expression "pstr->wcs[iVar7] = 0xffffffff" (subscript_expression "pstr->wcs[iVar7]" (field_expression "pstr->wcs" identifier -> field_identifier) [ identifier ]) = number_literal) ;) (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "prVar30 = (re_dfa_t *)pstr->valid_len;" (assignment_expression "prVar30 = (re_dfa_t *)pstr->valid_len" identifier = (cast_expression "(re_dfa_t *)pstr->valid_len" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pstr->valid_len" identifier -> field_identifier))) ;) }) while (parenthesized_expression "(iVar7 < (int)prVar30)" ( (binary_expression "iVar7 < (int)prVar30" identifier < (cast_expression "(int)prVar30" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "prVar27 = (re_dfa_t *)0xff;" (assignment_expression "prVar27 = (re_dfa_t *)0xff" identifier = (cast_expression "(re_dfa_t *)0xff" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*(code *)PTR_memset_004bf260)(pstr->mbs);" (call_expression "(*(code *)PTR_memset_004bf260)(pstr->mbs)" (parenthesized_expression "(*(code *)PTR_memset_004bf260)" ( (pointer_expression "*(code *)PTR_memset_004bf260" * (cast_expression "(code *)PTR_memset_004bf260" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pstr->mbs)" ( (field_expression "pstr->mbs" identifier -> field_identifier) ))) ;) (expression_statement "IVar10 = pstr->valid_len;" (assignment_expression "IVar10 = pstr->valid_len" identifier = (field_expression "pstr->valid_len" identifier -> field_identifier)) ;) }) (else_clause "else {\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          pstr->valid_len = 0;\nLAB_00491650:\n          IVar10 = pstr->valid_len;\n        }" else (compound_statement "{\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          pstr->valid_len = 0;\nLAB_00491650:\n          IVar10 = pstr->valid_len;\n        }" { (if_statement "if (unaff_s4 != unaff_s6) goto LAB_00491534;" if (parenthesized_expression "(unaff_s4 != unaff_s6)" ( (binary_expression "unaff_s4 != unaff_s6" identifier != identifier) )) (goto_statement "goto LAB_00491534;" goto statement_identifier ;)) (labeled_statement "LAB_0049164c:\n          pstr->valid_len = 0;" statement_identifier : (expression_statement "pstr->valid_len = 0;" (assignment_expression "pstr->valid_len = 0" (field_expression "pstr->valid_len" identifier -> field_identifier) = number_literal) ;)) (labeled_statement "LAB_00491650:\n          IVar10 = pstr->valid_len;" statement_identifier : (expression_statement "IVar10 = pstr->valid_len;" (assignment_expression "IVar10 = pstr->valid_len" identifier = (field_expression "pstr->valid_len" identifier -> field_identifier)) ;)) }))) (expression_statement "pstr->valid_raw_len = IVar10;" (assignment_expression "pstr->valid_raw_len = IVar10" (field_expression "pstr->valid_raw_len" identifier -> field_identifier) = identifier) ;) (goto_statement "goto LAB_00491360;" goto statement_identifier ;) })) (expression_statement "(*(code *)PTR_memmove_004bf3a4)\n                (pstr->wcs,pstr->wcs + (int)pIVar17,((int)unaff_s6 - (int)pIVar17) * 4);" (call_expression "(*(code *)PTR_memmove_004bf3a4)\n                (pstr->wcs,pstr->wcs + (int)pIVar17,((int)unaff_s6 - (int)pIVar17) * 4)" (parenthesized_expression "(*(code *)PTR_memmove_004bf3a4)" ( (pointer_expression "*(code *)PTR_memmove_004bf3a4" * (cast_expression "(code *)PTR_memmove_004bf3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pstr->wcs,pstr->wcs + (int)pIVar17,((int)unaff_s6 - (int)pIVar17) * 4)" ( (field_expression "pstr->wcs" identifier -> field_identifier) , (binary_expression "pstr->wcs + (int)pIVar17" (field_expression "pstr->wcs" identifier -> field_identifier) + (cast_expression "(int)pIVar17" ( (type_descriptor "int" primitive_type) ) identifier)) , (binary_expression "((int)unaff_s6 - (int)pIVar17) * 4" (parenthesized_expression "((int)unaff_s6 - (int)pIVar17)" ( (binary_expression "(int)unaff_s6 - (int)pIVar17" (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pIVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal) ))) ;) (expression_statement "prVar30 = (re_dfa_t *)(pstr->valid_len - (int)pIVar17);" (assignment_expression "prVar30 = (re_dfa_t *)(pstr->valid_len - (int)pIVar17)" identifier = (cast_expression "(re_dfa_t *)(pstr->valid_len - (int)pIVar17)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pstr->valid_len - (int)pIVar17)" ( (binary_expression "pstr->valid_len - (int)pIVar17" (field_expression "pstr->valid_len" identifier -> field_identifier) - (cast_expression "(int)pIVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "prVar27 = (re_dfa_t *)(pstr->mbs + (int)pIVar17);" (assignment_expression "prVar27 = (re_dfa_t *)(pstr->mbs + (int)pIVar17)" identifier = (cast_expression "(re_dfa_t *)(pstr->mbs + (int)pIVar17)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pstr->mbs + (int)pIVar17)" ( (binary_expression "pstr->mbs + (int)pIVar17" (field_expression "pstr->mbs" identifier -> field_identifier) + (cast_expression "(int)pIVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "(*(code *)PTR_memmove_004bf3a4)();" (call_expression "(*(code *)PTR_memmove_004bf3a4)()" (parenthesized_expression "(*(code *)PTR_memmove_004bf3a4)" ( (pointer_expression "*(code *)PTR_memmove_004bf3a4" * (cast_expression "(code *)PTR_memmove_004bf3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar7 = pstr->valid_len - (int)pIVar17;" (assignment_expression "iVar7 = pstr->valid_len - (int)pIVar17" identifier = (binary_expression "pstr->valid_len - (int)pIVar17" (field_expression "pstr->valid_len" identifier -> field_identifier) - (cast_expression "(int)pIVar17" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pstr->valid_len = iVar7;" (assignment_expression "pstr->valid_len = iVar7" (field_expression "pstr->valid_len" identifier -> field_identifier) = identifier) ;) (expression_statement "pstr->valid_raw_len = pstr->valid_raw_len - (int)pIVar17;" (assignment_expression "pstr->valid_raw_len = pstr->valid_raw_len - (int)pIVar17" (field_expression "pstr->valid_raw_len" identifier -> field_identifier) = (binary_expression "pstr->valid_raw_len - (int)pIVar17" (field_expression "pstr->valid_raw_len" identifier -> field_identifier) - (cast_expression "(int)pIVar17" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (iVar7 < 1) goto LAB_00491360;" if (parenthesized_expression "(iVar7 < 1)" ( (binary_expression "iVar7 < 1" identifier < number_literal) )) (goto_statement "goto LAB_00491360;" goto statement_identifier ;)) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (do_statement "do {\n        pstr->offsets[iVar7] = *(int *)((int)pstr->offsets + eflags) - (int)pIVar17;\n        iVar7 = iVar7 + 1;\n        eflags = eflags + 4;\n      } while (iVar7 < pstr->valid_len);" do (compound_statement "{\n        pstr->offsets[iVar7] = *(int *)((int)pstr->offsets + eflags) - (int)pIVar17;\n        iVar7 = iVar7 + 1;\n        eflags = eflags + 4;\n      }" { (expression_statement "pstr->offsets[iVar7] = *(int *)((int)pstr->offsets + eflags) - (int)pIVar17;" (assignment_expression "pstr->offsets[iVar7] = *(int *)((int)pstr->offsets + eflags) - (int)pIVar17" (subscript_expression "pstr->offsets[iVar7]" (field_expression "pstr->offsets" identifier -> field_identifier) [ identifier ]) = (binary_expression "*(int *)((int)pstr->offsets + eflags) - (int)pIVar17" (pointer_expression "*(int *)((int)pstr->offsets + eflags)" * (cast_expression "(int *)((int)pstr->offsets + eflags)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pstr->offsets + eflags)" ( (binary_expression "(int)pstr->offsets + eflags" (cast_expression "(int)pstr->offsets" ( (type_descriptor "int" primitive_type) ) (field_expression "pstr->offsets" identifier -> field_identifier)) + identifier) )))) - (cast_expression "(int)pIVar17" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "eflags = eflags + 4;" (assignment_expression "eflags = eflags + 4" identifier = (binary_expression "eflags + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar7 < pstr->valid_len)" ( (binary_expression "iVar7 < pstr->valid_len" identifier < (field_expression "pstr->valid_len" identifier -> field_identifier)) )) ;) (expression_statement "uVar2 = pstr->mbs_allocated;" (assignment_expression "uVar2 = pstr->mbs_allocated" identifier = (field_expression "pstr->mbs_allocated" identifier -> field_identifier)) ;) }) (else_clause "else {\n      unaff_s6 = (Idx *)pstr->valid_len;\n      if (pstr->offsets_needed != '\0') {\n        pstr->len = (Idx)((int)pIVar17 + (pstr->raw_len - idx));\n        pstr->stop = (Idx)((int)pIVar17 + (pstr->raw_stop - idx));\n        pstr->offsets_needed = '\0';\n      }\n      pstr->valid_len = 0;\n      if (pstr->mb_cur_max < 2) {\n        prVar27 = (re_dfa_t *)\n                  (uint)*(byte *)((int)pIVar17 + (int)(pstr->raw_mbs + pstr->raw_mbs_idx + -1));\n        pstr->valid_raw_len = 0;\n        if (pstr->trans != (uchar *)0x0) {\n          prVar27 = (re_dfa_t *)(uint)pstr->trans[(int)prVar27];\n        }\n        uVar19 = 1;\n        if ((pstr->word_char[(int)prVar27 >> 5] >> ((uint)prVar27 & 0x1f) & 1) == 0) {\n          uVar19 = 2;\n          if (prVar27 == (re_dfa_t *)&DAT_0000000a) {\n            if (pstr->newline_anchor == '\0') {\n              uVar19 = 0;\n            }\n          }\n          else {\n            uVar19 = 0;\n          }\n        }\n        pstr->tip_context = uVar19;\n        goto LAB_00491360;\n      }\n      if (pstr->is_utf8 == '\0') {\nLAB_0049179c:\n        iVar7 = pstr->raw_mbs_idx;\nLAB_004917a0:\n        pIVar11 = (Idx *)(iVar7 + pstr->valid_raw_len);\n        if ((int)pIVar11 < idx) {\n          unaff_s8 = &pstr->cur_state;\n          unaff_s7 = (re_dfa_t *)&wc2;\n          do {\n            unaff_s5 = pIVar11;\n            iVar32 = pstr->raw_len - (int)unaff_s5;\n            cur_state.__count = (pstr->cur_state).__count;\n            cur_state.__value = (pstr->cur_state).__value;\n            prVar27 = (re_dfa_t *)((int)unaff_s5 + (int)pstr->raw_mbs);\n            iVar7 = (*(code *)PTR_mbrtowc_004bf2ec)(unaff_s7,prVar27,iVar32,unaff_s8);\n            unaff_s4 = (Idx *)wc2;\n            if (0xfffffffc < iVar7 - 1U) {\n              if (iVar7 == 0) {\n                unaff_s4 = (Idx *)0x0;\n              }\n              else if (iVar32 == 0) {\n                unaff_s4 = (Idx *)0x0;\n              }\n              else {\n                unaff_s4 = (Idx *)(uint)*(byte *)((int)unaff_s5 + (int)pstr->raw_mbs);\n              }\n              (pstr->cur_state).__count = cur_state.__count;\n              (pstr->cur_state).__value = cur_state.__value;\n              iVar7 = 1;\n            }\n            pIVar11 = (Idx *)((int)unaff_s5 + iVar7);\n          } while ((int)pIVar11 < idx);\n          pstr->valid_len = (int)pIVar11 - idx;\n          if (unaff_s4 != (Idx *)0xffffffff) goto LAB_00491834;\n        }\n        else {\n          pstr->valid_len = (int)pIVar11 - idx;\n        }\n        prVar27 = (re_dfa_t *)((int)unaff_s6 + -1);\n        uVar19 = re_string_context_at(pstr,(Idx)prVar27,eflags);\n        pstr->tip_context = uVar19;\n      }\n      else {\n        prVar30 = (re_dfa_t *)pstr->raw_mbs;\n        unaff_s4 = (Idx *)((int)prVar30->word_char + pstr->raw_mbs_idx + -0x60);\n        prVar27 = (re_dfa_t *)((int)unaff_s4 + ((int)pIVar17 - pstr->mb_cur_max));\n        if (prVar27 <= prVar30) {\n          prVar27 = prVar30;\n        }\n        prVar30 = (re_dfa_t *)((int)unaff_s4 + (int)((int)pIVar17 + -1));\n        unaff_s5 = pIVar17;\n        if (prVar30 < prVar27) goto LAB_0049179c;\n        bVar4 = *(byte *)&prVar30->nodes;\n        unaff_s7 = prVar30;\n        while ((bVar4 & 0xc0) == 0x80) {\n          prVar22 = (re_dfa_t *)((int)&unaff_s7[-1].subexp_map + 3);\n          unaff_s7 = prVar30;\n          if (prVar22 < prVar27) goto LAB_0049179c;\n          unaff_s7 = prVar22;\n          bVar4 = *(byte *)&prVar22->nodes;\n        }\n        puVar21 = pstr->trans;\n        puVar23 = (undefined1 *)((int)unaff_s4 + (pstr->len - (int)unaff_s7));\n        prVar27 = unaff_s7;\n        if (puVar21 != (uchar *)0x0) {\n          puVar14 = (undefined1 *)0x6;\n          if ((int)puVar23 < 7) {\n            puVar14 = puVar23;\n          }\n          if ((int)(puVar14 + -1) < 0) {\n            prVar27 = (re_dfa_t *)buf;\n          }\n          else {\n            pbVar28 = (byte *)((int)unaff_s7->word_char + (int)(puVar14 + -0x61));\n            puVar12 = buf + (int)puVar14;\n            do {\n              puVar12[-1] = puVar21[*pbVar28];\n              puVar12 = puVar12 + -1;\n              pbVar28 = pbVar28 + -1;\n            } while (puVar12 != buf);\n            prVar27 = (re_dfa_t *)buf;\n          }\n        }\n        cur_state.__count = 0;\n        cur_state.__value.__wch = 0;\n        uVar19 = (*(code *)PTR_mbrtowc_004bf2ec)(&wc2);\n        uVar35 = (int)((int)unaff_s4 + (int)pIVar17) - (int)unaff_s7;\n        if ((uVar19 < uVar35) || (0xfffffffd < uVar19)) goto LAB_0049179c;\n        *(undefined1 *)&(pstr->cur_state).__count = 0;\n        *(undefined1 *)((int)&(pstr->cur_state).__count + 1) = 0;\n        *(undefined1 *)((int)&(pstr->cur_state).__count + 2) = 0;\n        *(undefined1 *)((int)&(pstr->cur_state).__count + 3) = 0;\n        (pstr->cur_state).__value.__wchb[0] = '\0';\n        (pstr->cur_state).__value.__wchb[1] = '\0';\n        (pstr->cur_state).__value.__wchb[2] = '\0';\n        (pstr->cur_state).__value.__wchb[3] = '\0';\n        pstr->valid_len = uVar19 - uVar35;\n        unaff_s4 = (Idx *)wc2;\n        if (wc2 == -1) {\n          iVar7 = pstr->raw_mbs_idx;\n          goto LAB_004917a0;\n        }\nLAB_00491834:\n        if (pstr->word_ops_used == '\0') {\nLAB_00491840:\n          uVar19 = 2;\n          if (unaff_s4 == (Idx *)&DAT_0000000a) {\n            if (pstr->newline_anchor == '\0') {\n              uVar19 = 0;\n            }\n          }\n          else {\n            uVar19 = 0;\n          }\n        }\n        else {\n          iVar7 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          uVar19 = 1;\n          if (iVar7 == 0) {\n            if (unaff_s4 == (Idx *)0x5f) {\n              pstr->tip_context = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }\n        pstr->tip_context = uVar19;\n      }\nLAB_00491854:\n      prVar30 = (re_dfa_t *)pstr->valid_len;\n      if (prVar30 == (re_dfa_t *)0x0) {\nLAB_00491860:\n        IVar10 = pstr->valid_len;\n      }\n      else {\n        iVar7 = 0;\n        if (0 < (int)prVar30) {\n          do {\n            pstr->wcs[iVar7] = 0xffffffff;\n            iVar7 = iVar7 + 1;\n            prVar30 = (re_dfa_t *)pstr->valid_len;\n          } while (iVar7 < (int)prVar30);\n        }\n        prVar27 = (re_dfa_t *)0xff;\n        if (pstr->mbs_allocated == '\0') goto LAB_00491860;\n        (*(code *)PTR_memset_004bf260)(pstr->mbs);\n        IVar10 = pstr->valid_len;\n      }\n      pstr->valid_raw_len = IVar10;\nLAB_00491360:\n      uVar2 = pstr->mbs_allocated;\n    }" else (compound_statement "{\n      unaff_s6 = (Idx *)pstr->valid_len;\n      if (pstr->offsets_needed != '\0') {\n        pstr->len = (Idx)((int)pIVar17 + (pstr->raw_len - idx));\n        pstr->stop = (Idx)((int)pIVar17 + (pstr->raw_stop - idx));\n        pstr->offsets_needed = '\0';\n      }\n      pstr->valid_len = 0;\n      if (pstr->mb_cur_max < 2) {\n        prVar27 = (re_dfa_t *)\n                  (uint)*(byte *)((int)pIVar17 + (int)(pstr->raw_mbs + pstr->raw_mbs_idx + -1));\n        pstr->valid_raw_len = 0;\n        if (pstr->trans != (uchar *)0x0) {\n          prVar27 = (re_dfa_t *)(uint)pstr->trans[(int)prVar27];\n        }\n        uVar19 = 1;\n        if ((pstr->word_char[(int)prVar27 >> 5] >> ((uint)prVar27 & 0x1f) & 1) == 0) {\n          uVar19 = 2;\n          if (prVar27 == (re_dfa_t *)&DAT_0000000a) {\n            if (pstr->newline_anchor == '\0') {\n              uVar19 = 0;\n            }\n          }\n          else {\n            uVar19 = 0;\n          }\n        }\n        pstr->tip_context = uVar19;\n        goto LAB_00491360;\n      }\n      if (pstr->is_utf8 == '\0') {\nLAB_0049179c:\n        iVar7 = pstr->raw_mbs_idx;\nLAB_004917a0:\n        pIVar11 = (Idx *)(iVar7 + pstr->valid_raw_len);\n        if ((int)pIVar11 < idx) {\n          unaff_s8 = &pstr->cur_state;\n          unaff_s7 = (re_dfa_t *)&wc2;\n          do {\n            unaff_s5 = pIVar11;\n            iVar32 = pstr->raw_len - (int)unaff_s5;\n            cur_state.__count = (pstr->cur_state).__count;\n            cur_state.__value = (pstr->cur_state).__value;\n            prVar27 = (re_dfa_t *)((int)unaff_s5 + (int)pstr->raw_mbs);\n            iVar7 = (*(code *)PTR_mbrtowc_004bf2ec)(unaff_s7,prVar27,iVar32,unaff_s8);\n            unaff_s4 = (Idx *)wc2;\n            if (0xfffffffc < iVar7 - 1U) {\n              if (iVar7 == 0) {\n                unaff_s4 = (Idx *)0x0;\n              }\n              else if (iVar32 == 0) {\n                unaff_s4 = (Idx *)0x0;\n              }\n              else {\n                unaff_s4 = (Idx *)(uint)*(byte *)((int)unaff_s5 + (int)pstr->raw_mbs);\n              }\n              (pstr->cur_state).__count = cur_state.__count;\n              (pstr->cur_state).__value = cur_state.__value;\n              iVar7 = 1;\n            }\n            pIVar11 = (Idx *)((int)unaff_s5 + iVar7);\n          } while ((int)pIVar11 < idx);\n          pstr->valid_len = (int)pIVar11 - idx;\n          if (unaff_s4 != (Idx *)0xffffffff) goto LAB_00491834;\n        }\n        else {\n          pstr->valid_len = (int)pIVar11 - idx;\n        }\n        prVar27 = (re_dfa_t *)((int)unaff_s6 + -1);\n        uVar19 = re_string_context_at(pstr,(Idx)prVar27,eflags);\n        pstr->tip_context = uVar19;\n      }\n      else {\n        prVar30 = (re_dfa_t *)pstr->raw_mbs;\n        unaff_s4 = (Idx *)((int)prVar30->word_char + pstr->raw_mbs_idx + -0x60);\n        prVar27 = (re_dfa_t *)((int)unaff_s4 + ((int)pIVar17 - pstr->mb_cur_max));\n        if (prVar27 <= prVar30) {\n          prVar27 = prVar30;\n        }\n        prVar30 = (re_dfa_t *)((int)unaff_s4 + (int)((int)pIVar17 + -1));\n        unaff_s5 = pIVar17;\n        if (prVar30 < prVar27) goto LAB_0049179c;\n        bVar4 = *(byte *)&prVar30->nodes;\n        unaff_s7 = prVar30;\n        while ((bVar4 & 0xc0) == 0x80) {\n          prVar22 = (re_dfa_t *)((int)&unaff_s7[-1].subexp_map + 3);\n          unaff_s7 = prVar30;\n          if (prVar22 < prVar27) goto LAB_0049179c;\n          unaff_s7 = prVar22;\n          bVar4 = *(byte *)&prVar22->nodes;\n        }\n        puVar21 = pstr->trans;\n        puVar23 = (undefined1 *)((int)unaff_s4 + (pstr->len - (int)unaff_s7));\n        prVar27 = unaff_s7;\n        if (puVar21 != (uchar *)0x0) {\n          puVar14 = (undefined1 *)0x6;\n          if ((int)puVar23 < 7) {\n            puVar14 = puVar23;\n          }\n          if ((int)(puVar14 + -1) < 0) {\n            prVar27 = (re_dfa_t *)buf;\n          }\n          else {\n            pbVar28 = (byte *)((int)unaff_s7->word_char + (int)(puVar14 + -0x61));\n            puVar12 = buf + (int)puVar14;\n            do {\n              puVar12[-1] = puVar21[*pbVar28];\n              puVar12 = puVar12 + -1;\n              pbVar28 = pbVar28 + -1;\n            } while (puVar12 != buf);\n            prVar27 = (re_dfa_t *)buf;\n          }\n        }\n        cur_state.__count = 0;\n        cur_state.__value.__wch = 0;\n        uVar19 = (*(code *)PTR_mbrtowc_004bf2ec)(&wc2);\n        uVar35 = (int)((int)unaff_s4 + (int)pIVar17) - (int)unaff_s7;\n        if ((uVar19 < uVar35) || (0xfffffffd < uVar19)) goto LAB_0049179c;\n        *(undefined1 *)&(pstr->cur_state).__count = 0;\n        *(undefined1 *)((int)&(pstr->cur_state).__count + 1) = 0;\n        *(undefined1 *)((int)&(pstr->cur_state).__count + 2) = 0;\n        *(undefined1 *)((int)&(pstr->cur_state).__count + 3) = 0;\n        (pstr->cur_state).__value.__wchb[0] = '\0';\n        (pstr->cur_state).__value.__wchb[1] = '\0';\n        (pstr->cur_state).__value.__wchb[2] = '\0';\n        (pstr->cur_state).__value.__wchb[3] = '\0';\n        pstr->valid_len = uVar19 - uVar35;\n        unaff_s4 = (Idx *)wc2;\n        if (wc2 == -1) {\n          iVar7 = pstr->raw_mbs_idx;\n          goto LAB_004917a0;\n        }\nLAB_00491834:\n        if (pstr->word_ops_used == '\0') {\nLAB_00491840:\n          uVar19 = 2;\n          if (unaff_s4 == (Idx *)&DAT_0000000a) {\n            if (pstr->newline_anchor == '\0') {\n              uVar19 = 0;\n            }\n          }\n          else {\n            uVar19 = 0;\n          }\n        }\n        else {\n          iVar7 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          uVar19 = 1;\n          if (iVar7 == 0) {\n            if (unaff_s4 == (Idx *)0x5f) {\n              pstr->tip_context = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }\n        pstr->tip_context = uVar19;\n      }\nLAB_00491854:\n      prVar30 = (re_dfa_t *)pstr->valid_len;\n      if (prVar30 == (re_dfa_t *)0x0) {\nLAB_00491860:\n        IVar10 = pstr->valid_len;\n      }\n      else {\n        iVar7 = 0;\n        if (0 < (int)prVar30) {\n          do {\n            pstr->wcs[iVar7] = 0xffffffff;\n            iVar7 = iVar7 + 1;\n            prVar30 = (re_dfa_t *)pstr->valid_len;\n          } while (iVar7 < (int)prVar30);\n        }\n        prVar27 = (re_dfa_t *)0xff;\n        if (pstr->mbs_allocated == '\0') goto LAB_00491860;\n        (*(code *)PTR_memset_004bf260)(pstr->mbs);\n        IVar10 = pstr->valid_len;\n      }\n      pstr->valid_raw_len = IVar10;\nLAB_00491360:\n      uVar2 = pstr->mbs_allocated;\n    }" { (expression_statement "unaff_s6 = (Idx *)pstr->valid_len;" (assignment_expression "unaff_s6 = (Idx *)pstr->valid_len" identifier = (cast_expression "(Idx *)pstr->valid_len" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pstr->valid_len" identifier -> field_identifier))) ;) (if_statement "if (pstr->offsets_needed != '\0') {\n        pstr->len = (Idx)((int)pIVar17 + (pstr->raw_len - idx));\n        pstr->stop = (Idx)((int)pIVar17 + (pstr->raw_stop - idx));\n        pstr->offsets_needed = '\0';\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->len = (Idx)((int)pIVar17 + (pstr->raw_len - idx));\n        pstr->stop = (Idx)((int)pIVar17 + (pstr->raw_stop - idx));\n        pstr->offsets_needed = '\0';\n      }" { (expression_statement "pstr->len = (Idx)((int)pIVar17 + (pstr->raw_len - idx));" (assignment_expression "pstr->len = (Idx)((int)pIVar17 + (pstr->raw_len - idx))" (field_expression "pstr->len" identifier -> field_identifier) = (call_expression "(Idx)((int)pIVar17 + (pstr->raw_len - idx))" (parenthesized_expression "(Idx)" ( identifier )) (argument_list "((int)pIVar17 + (pstr->raw_len - idx))" ( (binary_expression "(int)pIVar17 + (pstr->raw_len - idx)" (cast_expression "(int)pIVar17" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(pstr->raw_len - idx)" ( (binary_expression "pstr->raw_len - idx" (field_expression "pstr->raw_len" identifier -> field_identifier) - identifier) ))) )))) ;) (expression_statement "pstr->stop = (Idx)((int)pIVar17 + (pstr->raw_stop - idx));" (assignment_expression "pstr->stop = (Idx)((int)pIVar17 + (pstr->raw_stop - idx))" (field_expression "pstr->stop" identifier -> field_identifier) = (call_expression "(Idx)((int)pIVar17 + (pstr->raw_stop - idx))" (parenthesized_expression "(Idx)" ( identifier )) (argument_list "((int)pIVar17 + (pstr->raw_stop - idx))" ( (binary_expression "(int)pIVar17 + (pstr->raw_stop - idx)" (cast_expression "(int)pIVar17" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(pstr->raw_stop - idx)" ( (binary_expression "pstr->raw_stop - idx" (field_expression "pstr->raw_stop" identifier -> field_identifier) - identifier) ))) )))) ;) (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->valid_len = 0;" (assignment_expression "pstr->valid_len = 0" (field_expression "pstr->valid_len" identifier -> field_identifier) = number_literal) ;) (if_statement "if (pstr->mb_cur_max < 2) {\n        prVar27 = (re_dfa_t *)\n                  (uint)*(byte *)((int)pIVar17 + (int)(pstr->raw_mbs + pstr->raw_mbs_idx + -1));\n        pstr->valid_raw_len = 0;\n        if (pstr->trans != (uchar *)0x0) {\n          prVar27 = (re_dfa_t *)(uint)pstr->trans[(int)prVar27];\n        }\n        uVar19 = 1;\n        if ((pstr->word_char[(int)prVar27 >> 5] >> ((uint)prVar27 & 0x1f) & 1) == 0) {\n          uVar19 = 2;\n          if (prVar27 == (re_dfa_t *)&DAT_0000000a) {\n            if (pstr->newline_anchor == '\0') {\n              uVar19 = 0;\n            }\n          }\n          else {\n            uVar19 = 0;\n          }\n        }\n        pstr->tip_context = uVar19;\n        goto LAB_00491360;\n      }" if (parenthesized_expression "(pstr->mb_cur_max < 2)" ( (binary_expression "pstr->mb_cur_max < 2" (field_expression "pstr->mb_cur_max" identifier -> field_identifier) < number_literal) )) (compound_statement "{\n        prVar27 = (re_dfa_t *)\n                  (uint)*(byte *)((int)pIVar17 + (int)(pstr->raw_mbs + pstr->raw_mbs_idx + -1));\n        pstr->valid_raw_len = 0;\n        if (pstr->trans != (uchar *)0x0) {\n          prVar27 = (re_dfa_t *)(uint)pstr->trans[(int)prVar27];\n        }\n        uVar19 = 1;\n        if ((pstr->word_char[(int)prVar27 >> 5] >> ((uint)prVar27 & 0x1f) & 1) == 0) {\n          uVar19 = 2;\n          if (prVar27 == (re_dfa_t *)&DAT_0000000a) {\n            if (pstr->newline_anchor == '\0') {\n              uVar19 = 0;\n            }\n          }\n          else {\n            uVar19 = 0;\n          }\n        }\n        pstr->tip_context = uVar19;\n        goto LAB_00491360;\n      }" { (expression_statement "prVar27 = (re_dfa_t *)\n                  (uint)*(byte *)((int)pIVar17 + (int)(pstr->raw_mbs + pstr->raw_mbs_idx + -1));" (assignment_expression "prVar27 = (re_dfa_t *)\n                  (uint)*(byte *)((int)pIVar17 + (int)(pstr->raw_mbs + pstr->raw_mbs_idx + -1))" identifier = (binary_expression "(re_dfa_t *)\n                  (uint)*(byte *)((int)pIVar17 + (int)(pstr->raw_mbs + pstr->raw_mbs_idx + -1))" (cast_expression "(re_dfa_t *)\n                  (uint)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)((int)pIVar17 + (int)(pstr->raw_mbs + pstr->raw_mbs_idx + -1))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pIVar17 + (int)(pstr->raw_mbs + pstr->raw_mbs_idx + -1))" ( (binary_expression "(int)pIVar17 + (int)(pstr->raw_mbs + pstr->raw_mbs_idx + -1)" (cast_expression "(int)pIVar17" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(pstr->raw_mbs + pstr->raw_mbs_idx + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pstr->raw_mbs + pstr->raw_mbs_idx + -1)" ( (binary_expression "pstr->raw_mbs + pstr->raw_mbs_idx + -1" (binary_expression "pstr->raw_mbs + pstr->raw_mbs_idx" (field_expression "pstr->raw_mbs" identifier -> field_identifier) + (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) ;) (if_statement "if (pstr->trans != (uchar *)0x0) {\n          prVar27 = (re_dfa_t *)(uint)pstr->trans[(int)prVar27];\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          prVar27 = (re_dfa_t *)(uint)pstr->trans[(int)prVar27];\n        }" { (expression_statement "prVar27 = (re_dfa_t *)(uint)pstr->trans[(int)prVar27];" (assignment_expression "prVar27 = (re_dfa_t *)(uint)pstr->trans[(int)prVar27]" identifier = (cast_expression "(re_dfa_t *)(uint)pstr->trans[(int)prVar27]" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)pstr->trans[(int)prVar27]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pstr->trans[(int)prVar27]" (field_expression "pstr->trans" identifier -> field_identifier) [ (cast_expression "(int)prVar27" ( (type_descriptor "int" primitive_type) ) identifier) ])))) ;) })) (expression_statement "uVar19 = 1;" (assignment_expression "uVar19 = 1" identifier = number_literal) ;) (if_statement "if ((pstr->word_char[(int)prVar27 >> 5] >> ((uint)prVar27 & 0x1f) & 1) == 0) {\n          uVar19 = 2;\n          if (prVar27 == (re_dfa_t *)&DAT_0000000a) {\n            if (pstr->newline_anchor == '\0') {\n              uVar19 = 0;\n            }\n          }\n          else {\n            uVar19 = 0;\n          }\n        }" if (parenthesized_expression "((pstr->word_char[(int)prVar27 >> 5] >> ((uint)prVar27 & 0x1f) & 1) == 0)" ( (binary_expression "(pstr->word_char[(int)prVar27 >> 5] >> ((uint)prVar27 & 0x1f) & 1) == 0" (parenthesized_expression "(pstr->word_char[(int)prVar27 >> 5] >> ((uint)prVar27 & 0x1f) & 1)" ( (binary_expression "pstr->word_char[(int)prVar27 >> 5] >> ((uint)prVar27 & 0x1f) & 1" (binary_expression "pstr->word_char[(int)prVar27 >> 5] >> ((uint)prVar27 & 0x1f)" (subscript_expression "pstr->word_char[(int)prVar27 >> 5]" (field_expression "pstr->word_char" identifier -> field_identifier) [ (binary_expression "(int)prVar27 >> 5" (cast_expression "(int)prVar27" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ]) >> (parenthesized_expression "((uint)prVar27 & 0x1f)" ( (binary_expression "(uint)prVar27 & 0x1f" (cast_expression "(uint)prVar27" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) & number_literal) )) == number_literal) )) (compound_statement "{\n          uVar19 = 2;\n          if (prVar27 == (re_dfa_t *)&DAT_0000000a) {\n            if (pstr->newline_anchor == '\0') {\n              uVar19 = 0;\n            }\n          }\n          else {\n            uVar19 = 0;\n          }\n        }" { (expression_statement "uVar19 = 2;" (assignment_expression "uVar19 = 2" identifier = number_literal) ;) (if_statement "if (prVar27 == (re_dfa_t *)&DAT_0000000a) {\n            if (pstr->newline_anchor == '\0') {\n              uVar19 = 0;\n            }\n          }\n          else {\n            uVar19 = 0;\n          }" if (parenthesized_expression "(prVar27 == (re_dfa_t *)&DAT_0000000a)" ( (binary_expression "prVar27 == (re_dfa_t *)&DAT_0000000a" identifier == (cast_expression "(re_dfa_t *)&DAT_0000000a" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000000a" & identifier))) )) (compound_statement "{\n            if (pstr->newline_anchor == '\0') {\n              uVar19 = 0;\n            }\n          }" { (if_statement "if (pstr->newline_anchor == '\0') {\n              uVar19 = 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              uVar19 = 0;\n            }" { (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) })) }) (else_clause "else {\n            uVar19 = 0;\n          }" else (compound_statement "{\n            uVar19 = 0;\n          }" { (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) }))) })) (expression_statement "pstr->tip_context = uVar19;" (assignment_expression "pstr->tip_context = uVar19" (field_expression "pstr->tip_context" identifier -> field_identifier) = identifier) ;) (goto_statement "goto LAB_00491360;" goto statement_identifier ;) })) (if_statement "if (pstr->is_utf8 == '\0') {\nLAB_0049179c:\n        iVar7 = pstr->raw_mbs_idx;\nLAB_004917a0:\n        pIVar11 = (Idx *)(iVar7 + pstr->valid_raw_len);\n        if ((int)pIVar11 < idx) {\n          unaff_s8 = &pstr->cur_state;\n          unaff_s7 = (re_dfa_t *)&wc2;\n          do {\n            unaff_s5 = pIVar11;\n            iVar32 = pstr->raw_len - (int)unaff_s5;\n            cur_state.__count = (pstr->cur_state).__count;\n            cur_state.__value = (pstr->cur_state).__value;\n            prVar27 = (re_dfa_t *)((int)unaff_s5 + (int)pstr->raw_mbs);\n            iVar7 = (*(code *)PTR_mbrtowc_004bf2ec)(unaff_s7,prVar27,iVar32,unaff_s8);\n            unaff_s4 = (Idx *)wc2;\n            if (0xfffffffc < iVar7 - 1U) {\n              if (iVar7 == 0) {\n                unaff_s4 = (Idx *)0x0;\n              }\n              else if (iVar32 == 0) {\n                unaff_s4 = (Idx *)0x0;\n              }\n              else {\n                unaff_s4 = (Idx *)(uint)*(byte *)((int)unaff_s5 + (int)pstr->raw_mbs);\n              }\n              (pstr->cur_state).__count = cur_state.__count;\n              (pstr->cur_state).__value = cur_state.__value;\n              iVar7 = 1;\n            }\n            pIVar11 = (Idx *)((int)unaff_s5 + iVar7);\n          } while ((int)pIVar11 < idx);\n          pstr->valid_len = (int)pIVar11 - idx;\n          if (unaff_s4 != (Idx *)0xffffffff) goto LAB_00491834;\n        }\n        else {\n          pstr->valid_len = (int)pIVar11 - idx;\n        }\n        prVar27 = (re_dfa_t *)((int)unaff_s6 + -1);\n        uVar19 = re_string_context_at(pstr,(Idx)prVar27,eflags);\n        pstr->tip_context = uVar19;\n      }\n      else {\n        prVar30 = (re_dfa_t *)pstr->raw_mbs;\n        unaff_s4 = (Idx *)((int)prVar30->word_char + pstr->raw_mbs_idx + -0x60);\n        prVar27 = (re_dfa_t *)((int)unaff_s4 + ((int)pIVar17 - pstr->mb_cur_max));\n        if (prVar27 <= prVar30) {\n          prVar27 = prVar30;\n        }\n        prVar30 = (re_dfa_t *)((int)unaff_s4 + (int)((int)pIVar17 + -1));\n        unaff_s5 = pIVar17;\n        if (prVar30 < prVar27) goto LAB_0049179c;\n        bVar4 = *(byte *)&prVar30->nodes;\n        unaff_s7 = prVar30;\n        while ((bVar4 & 0xc0) == 0x80) {\n          prVar22 = (re_dfa_t *)((int)&unaff_s7[-1].subexp_map + 3);\n          unaff_s7 = prVar30;\n          if (prVar22 < prVar27) goto LAB_0049179c;\n          unaff_s7 = prVar22;\n          bVar4 = *(byte *)&prVar22->nodes;\n        }\n        puVar21 = pstr->trans;\n        puVar23 = (undefined1 *)((int)unaff_s4 + (pstr->len - (int)unaff_s7));\n        prVar27 = unaff_s7;\n        if (puVar21 != (uchar *)0x0) {\n          puVar14 = (undefined1 *)0x6;\n          if ((int)puVar23 < 7) {\n            puVar14 = puVar23;\n          }\n          if ((int)(puVar14 + -1) < 0) {\n            prVar27 = (re_dfa_t *)buf;\n          }\n          else {\n            pbVar28 = (byte *)((int)unaff_s7->word_char + (int)(puVar14 + -0x61));\n            puVar12 = buf + (int)puVar14;\n            do {\n              puVar12[-1] = puVar21[*pbVar28];\n              puVar12 = puVar12 + -1;\n              pbVar28 = pbVar28 + -1;\n            } while (puVar12 != buf);\n            prVar27 = (re_dfa_t *)buf;\n          }\n        }\n        cur_state.__count = 0;\n        cur_state.__value.__wch = 0;\n        uVar19 = (*(code *)PTR_mbrtowc_004bf2ec)(&wc2);\n        uVar35 = (int)((int)unaff_s4 + (int)pIVar17) - (int)unaff_s7;\n        if ((uVar19 < uVar35) || (0xfffffffd < uVar19)) goto LAB_0049179c;\n        *(undefined1 *)&(pstr->cur_state).__count = 0;\n        *(undefined1 *)((int)&(pstr->cur_state).__count + 1) = 0;\n        *(undefined1 *)((int)&(pstr->cur_state).__count + 2) = 0;\n        *(undefined1 *)((int)&(pstr->cur_state).__count + 3) = 0;\n        (pstr->cur_state).__value.__wchb[0] = '\0';\n        (pstr->cur_state).__value.__wchb[1] = '\0';\n        (pstr->cur_state).__value.__wchb[2] = '\0';\n        (pstr->cur_state).__value.__wchb[3] = '\0';\n        pstr->valid_len = uVar19 - uVar35;\n        unaff_s4 = (Idx *)wc2;\n        if (wc2 == -1) {\n          iVar7 = pstr->raw_mbs_idx;\n          goto LAB_004917a0;\n        }\nLAB_00491834:\n        if (pstr->word_ops_used == '\0') {\nLAB_00491840:\n          uVar19 = 2;\n          if (unaff_s4 == (Idx *)&DAT_0000000a) {\n            if (pstr->newline_anchor == '\0') {\n              uVar19 = 0;\n            }\n          }\n          else {\n            uVar19 = 0;\n          }\n        }\n        else {\n          iVar7 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          uVar19 = 1;\n          if (iVar7 == 0) {\n            if (unaff_s4 == (Idx *)0x5f) {\n              pstr->tip_context = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }\n        pstr->tip_context = uVar19;\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_0049179c:\n        iVar7 = pstr->raw_mbs_idx;\nLAB_004917a0:\n        pIVar11 = (Idx *)(iVar7 + pstr->valid_raw_len);\n        if ((int)pIVar11 < idx) {\n          unaff_s8 = &pstr->cur_state;\n          unaff_s7 = (re_dfa_t *)&wc2;\n          do {\n            unaff_s5 = pIVar11;\n            iVar32 = pstr->raw_len - (int)unaff_s5;\n            cur_state.__count = (pstr->cur_state).__count;\n            cur_state.__value = (pstr->cur_state).__value;\n            prVar27 = (re_dfa_t *)((int)unaff_s5 + (int)pstr->raw_mbs);\n            iVar7 = (*(code *)PTR_mbrtowc_004bf2ec)(unaff_s7,prVar27,iVar32,unaff_s8);\n            unaff_s4 = (Idx *)wc2;\n            if (0xfffffffc < iVar7 - 1U) {\n              if (iVar7 == 0) {\n                unaff_s4 = (Idx *)0x0;\n              }\n              else if (iVar32 == 0) {\n                unaff_s4 = (Idx *)0x0;\n              }\n              else {\n                unaff_s4 = (Idx *)(uint)*(byte *)((int)unaff_s5 + (int)pstr->raw_mbs);\n              }\n              (pstr->cur_state).__count = cur_state.__count;\n              (pstr->cur_state).__value = cur_state.__value;\n              iVar7 = 1;\n            }\n            pIVar11 = (Idx *)((int)unaff_s5 + iVar7);\n          } while ((int)pIVar11 < idx);\n          pstr->valid_len = (int)pIVar11 - idx;\n          if (unaff_s4 != (Idx *)0xffffffff) goto LAB_00491834;\n        }\n        else {\n          pstr->valid_len = (int)pIVar11 - idx;\n        }\n        prVar27 = (re_dfa_t *)((int)unaff_s6 + -1);\n        uVar19 = re_string_context_at(pstr,(Idx)prVar27,eflags);\n        pstr->tip_context = uVar19;\n      }" { (labeled_statement "LAB_0049179c:\n        iVar7 = pstr->raw_mbs_idx;" statement_identifier : (expression_statement "iVar7 = pstr->raw_mbs_idx;" (assignment_expression "iVar7 = pstr->raw_mbs_idx" identifier = (field_expression "pstr->raw_mbs_idx" identifier -> field_identifier)) ;)) (labeled_statement "LAB_004917a0:\n        pIVar11 = (Idx *)(iVar7 + pstr->valid_raw_len);" statement_identifier : (expression_statement "pIVar11 = (Idx *)(iVar7 + pstr->valid_raw_len);" (assignment_expression "pIVar11 = (Idx *)(iVar7 + pstr->valid_raw_len)" identifier = (cast_expression "(Idx *)(iVar7 + pstr->valid_raw_len)" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + pstr->valid_raw_len)" ( (binary_expression "iVar7 + pstr->valid_raw_len" identifier + (field_expression "pstr->valid_raw_len" identifier -> field_identifier)) )))) ;)) (if_statement "if ((int)pIVar11 < idx) {\n          unaff_s8 = &pstr->cur_state;\n          unaff_s7 = (re_dfa_t *)&wc2;\n          do {\n            unaff_s5 = pIVar11;\n            iVar32 = pstr->raw_len - (int)unaff_s5;\n            cur_state.__count = (pstr->cur_state).__count;\n            cur_state.__value = (pstr->cur_state).__value;\n            prVar27 = (re_dfa_t *)((int)unaff_s5 + (int)pstr->raw_mbs);\n            iVar7 = (*(code *)PTR_mbrtowc_004bf2ec)(unaff_s7,prVar27,iVar32,unaff_s8);\n            unaff_s4 = (Idx *)wc2;\n            if (0xfffffffc < iVar7 - 1U) {\n              if (iVar7 == 0) {\n                unaff_s4 = (Idx *)0x0;\n              }\n              else if (iVar32 == 0) {\n                unaff_s4 = (Idx *)0x0;\n              }\n              else {\n                unaff_s4 = (Idx *)(uint)*(byte *)((int)unaff_s5 + (int)pstr->raw_mbs);\n              }\n              (pstr->cur_state).__count = cur_state.__count;\n              (pstr->cur_state).__value = cur_state.__value;\n              iVar7 = 1;\n            }\n            pIVar11 = (Idx *)((int)unaff_s5 + iVar7);\n          } while ((int)pIVar11 < idx);\n          pstr->valid_len = (int)pIVar11 - idx;\n          if (unaff_s4 != (Idx *)0xffffffff) goto LAB_00491834;\n        }\n        else {\n          pstr->valid_len = (int)pIVar11 - idx;\n        }" if (parenthesized_expression "((int)pIVar11 < idx)" ( (binary_expression "(int)pIVar11 < idx" (cast_expression "(int)pIVar11" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) (compound_statement "{\n          unaff_s8 = &pstr->cur_state;\n          unaff_s7 = (re_dfa_t *)&wc2;\n          do {\n            unaff_s5 = pIVar11;\n            iVar32 = pstr->raw_len - (int)unaff_s5;\n            cur_state.__count = (pstr->cur_state).__count;\n            cur_state.__value = (pstr->cur_state).__value;\n            prVar27 = (re_dfa_t *)((int)unaff_s5 + (int)pstr->raw_mbs);\n            iVar7 = (*(code *)PTR_mbrtowc_004bf2ec)(unaff_s7,prVar27,iVar32,unaff_s8);\n            unaff_s4 = (Idx *)wc2;\n            if (0xfffffffc < iVar7 - 1U) {\n              if (iVar7 == 0) {\n                unaff_s4 = (Idx *)0x0;\n              }\n              else if (iVar32 == 0) {\n                unaff_s4 = (Idx *)0x0;\n              }\n              else {\n                unaff_s4 = (Idx *)(uint)*(byte *)((int)unaff_s5 + (int)pstr->raw_mbs);\n              }\n              (pstr->cur_state).__count = cur_state.__count;\n              (pstr->cur_state).__value = cur_state.__value;\n              iVar7 = 1;\n            }\n            pIVar11 = (Idx *)((int)unaff_s5 + iVar7);\n          } while ((int)pIVar11 < idx);\n          pstr->valid_len = (int)pIVar11 - idx;\n          if (unaff_s4 != (Idx *)0xffffffff) goto LAB_00491834;\n        }" { (expression_statement "unaff_s8 = &pstr->cur_state;" (assignment_expression "unaff_s8 = &pstr->cur_state" identifier = (pointer_expression "&pstr->cur_state" & (field_expression "pstr->cur_state" identifier -> field_identifier))) ;) (expression_statement "unaff_s7 = (re_dfa_t *)&wc2;" (assignment_expression "unaff_s7 = (re_dfa_t *)&wc2" identifier = (cast_expression "(re_dfa_t *)&wc2" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&wc2" & identifier))) ;) (do_statement "do {\n            unaff_s5 = pIVar11;\n            iVar32 = pstr->raw_len - (int)unaff_s5;\n            cur_state.__count = (pstr->cur_state).__count;\n            cur_state.__value = (pstr->cur_state).__value;\n            prVar27 = (re_dfa_t *)((int)unaff_s5 + (int)pstr->raw_mbs);\n            iVar7 = (*(code *)PTR_mbrtowc_004bf2ec)(unaff_s7,prVar27,iVar32,unaff_s8);\n            unaff_s4 = (Idx *)wc2;\n            if (0xfffffffc < iVar7 - 1U) {\n              if (iVar7 == 0) {\n                unaff_s4 = (Idx *)0x0;\n              }\n              else if (iVar32 == 0) {\n                unaff_s4 = (Idx *)0x0;\n              }\n              else {\n                unaff_s4 = (Idx *)(uint)*(byte *)((int)unaff_s5 + (int)pstr->raw_mbs);\n              }\n              (pstr->cur_state).__count = cur_state.__count;\n              (pstr->cur_state).__value = cur_state.__value;\n              iVar7 = 1;\n            }\n            pIVar11 = (Idx *)((int)unaff_s5 + iVar7);\n          } while ((int)pIVar11 < idx);" do (compound_statement "{\n            unaff_s5 = pIVar11;\n            iVar32 = pstr->raw_len - (int)unaff_s5;\n            cur_state.__count = (pstr->cur_state).__count;\n            cur_state.__value = (pstr->cur_state).__value;\n            prVar27 = (re_dfa_t *)((int)unaff_s5 + (int)pstr->raw_mbs);\n            iVar7 = (*(code *)PTR_mbrtowc_004bf2ec)(unaff_s7,prVar27,iVar32,unaff_s8);\n            unaff_s4 = (Idx *)wc2;\n            if (0xfffffffc < iVar7 - 1U) {\n              if (iVar7 == 0) {\n                unaff_s4 = (Idx *)0x0;\n              }\n              else if (iVar32 == 0) {\n                unaff_s4 = (Idx *)0x0;\n              }\n              else {\n                unaff_s4 = (Idx *)(uint)*(byte *)((int)unaff_s5 + (int)pstr->raw_mbs);\n              }\n              (pstr->cur_state).__count = cur_state.__count;\n              (pstr->cur_state).__value = cur_state.__value;\n              iVar7 = 1;\n            }\n            pIVar11 = (Idx *)((int)unaff_s5 + iVar7);\n          }" { (expression_statement "unaff_s5 = pIVar11;" (assignment_expression "unaff_s5 = pIVar11" identifier = identifier) ;) (expression_statement "iVar32 = pstr->raw_len - (int)unaff_s5;" (assignment_expression "iVar32 = pstr->raw_len - (int)unaff_s5" identifier = (binary_expression "pstr->raw_len - (int)unaff_s5" (field_expression "pstr->raw_len" identifier -> field_identifier) - (cast_expression "(int)unaff_s5" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (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 "prVar27 = (re_dfa_t *)((int)unaff_s5 + (int)pstr->raw_mbs);" (assignment_expression "prVar27 = (re_dfa_t *)((int)unaff_s5 + (int)pstr->raw_mbs)" identifier = (cast_expression "(re_dfa_t *)((int)unaff_s5 + (int)pstr->raw_mbs)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s5 + (int)pstr->raw_mbs)" ( (binary_expression "(int)unaff_s5 + (int)pstr->raw_mbs" (cast_expression "(int)unaff_s5" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pstr->raw_mbs" ( (type_descriptor "int" primitive_type) ) (field_expression "pstr->raw_mbs" identifier -> field_identifier))) )))) ;) (expression_statement "iVar7 = (*(code *)PTR_mbrtowc_004bf2ec)(unaff_s7,prVar27,iVar32,unaff_s8);" (assignment_expression "iVar7 = (*(code *)PTR_mbrtowc_004bf2ec)(unaff_s7,prVar27,iVar32,unaff_s8)" identifier = (call_expression "(*(code *)PTR_mbrtowc_004bf2ec)(unaff_s7,prVar27,iVar32,unaff_s8)" (parenthesized_expression "(*(code *)PTR_mbrtowc_004bf2ec)" ( (pointer_expression "*(code *)PTR_mbrtowc_004bf2ec" * (cast_expression "(code *)PTR_mbrtowc_004bf2ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s7,prVar27,iVar32,unaff_s8)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "unaff_s4 = (Idx *)wc2;" (assignment_expression "unaff_s4 = (Idx *)wc2" identifier = (cast_expression "(Idx *)wc2" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (0xfffffffc < iVar7 - 1U) {\n              if (iVar7 == 0) {\n                unaff_s4 = (Idx *)0x0;\n              }\n              else if (iVar32 == 0) {\n                unaff_s4 = (Idx *)0x0;\n              }\n              else {\n                unaff_s4 = (Idx *)(uint)*(byte *)((int)unaff_s5 + (int)pstr->raw_mbs);\n              }\n              (pstr->cur_state).__count = cur_state.__count;\n              (pstr->cur_state).__value = cur_state.__value;\n              iVar7 = 1;\n            }" if (parenthesized_expression "(0xfffffffc < iVar7 - 1U)" ( (binary_expression "0xfffffffc < iVar7 - 1U" number_literal < (binary_expression "iVar7 - 1U" identifier - number_literal)) )) (compound_statement "{\n              if (iVar7 == 0) {\n                unaff_s4 = (Idx *)0x0;\n              }\n              else if (iVar32 == 0) {\n                unaff_s4 = (Idx *)0x0;\n              }\n              else {\n                unaff_s4 = (Idx *)(uint)*(byte *)((int)unaff_s5 + (int)pstr->raw_mbs);\n              }\n              (pstr->cur_state).__count = cur_state.__count;\n              (pstr->cur_state).__value = cur_state.__value;\n              iVar7 = 1;\n            }" { (if_statement "if (iVar7 == 0) {\n                unaff_s4 = (Idx *)0x0;\n              }\n              else if (iVar32 == 0) {\n                unaff_s4 = (Idx *)0x0;\n              }\n              else {\n                unaff_s4 = (Idx *)(uint)*(byte *)((int)unaff_s5 + (int)pstr->raw_mbs);\n              }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n                unaff_s4 = (Idx *)0x0;\n              }" { (expression_statement "unaff_s4 = (Idx *)0x0;" (assignment_expression "unaff_s4 = (Idx *)0x0" identifier = (cast_expression "(Idx *)0x0" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else if (iVar32 == 0) {\n                unaff_s4 = (Idx *)0x0;\n              }\n              else {\n                unaff_s4 = (Idx *)(uint)*(byte *)((int)unaff_s5 + (int)pstr->raw_mbs);\n              }" else (if_statement "if (iVar32 == 0) {\n                unaff_s4 = (Idx *)0x0;\n              }\n              else {\n                unaff_s4 = (Idx *)(uint)*(byte *)((int)unaff_s5 + (int)pstr->raw_mbs);\n              }" if (parenthesized_expression "(iVar32 == 0)" ( (binary_expression "iVar32 == 0" identifier == number_literal) )) (compound_statement "{\n                unaff_s4 = (Idx *)0x0;\n              }" { (expression_statement "unaff_s4 = (Idx *)0x0;" (assignment_expression "unaff_s4 = (Idx *)0x0" identifier = (cast_expression "(Idx *)0x0" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n                unaff_s4 = (Idx *)(uint)*(byte *)((int)unaff_s5 + (int)pstr->raw_mbs);\n              }" else (compound_statement "{\n                unaff_s4 = (Idx *)(uint)*(byte *)((int)unaff_s5 + (int)pstr->raw_mbs);\n              }" { (expression_statement "unaff_s4 = (Idx *)(uint)*(byte *)((int)unaff_s5 + (int)pstr->raw_mbs);" (assignment_expression "unaff_s4 = (Idx *)(uint)*(byte *)((int)unaff_s5 + (int)pstr->raw_mbs)" identifier = (binary_expression "(Idx *)(uint)*(byte *)((int)unaff_s5 + (int)pstr->raw_mbs)" (cast_expression "(Idx *)(uint)" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)((int)unaff_s5 + (int)pstr->raw_mbs)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s5 + (int)pstr->raw_mbs)" ( (binary_expression "(int)unaff_s5 + (int)pstr->raw_mbs" (cast_expression "(int)unaff_s5" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pstr->raw_mbs" ( (type_descriptor "int" primitive_type) ) (field_expression "pstr->raw_mbs" identifier -> field_identifier))) ))))) ;) }))))) (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 "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) })) (expression_statement "pIVar11 = (Idx *)((int)unaff_s5 + iVar7);" (assignment_expression "pIVar11 = (Idx *)((int)unaff_s5 + iVar7)" identifier = (cast_expression "(Idx *)((int)unaff_s5 + iVar7)" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s5 + iVar7)" ( (binary_expression "(int)unaff_s5 + iVar7" (cast_expression "(int)unaff_s5" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) }) while (parenthesized_expression "((int)pIVar11 < idx)" ( (binary_expression "(int)pIVar11 < idx" (cast_expression "(int)pIVar11" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) ;) (expression_statement "pstr->valid_len = (int)pIVar11 - idx;" (assignment_expression "pstr->valid_len = (int)pIVar11 - idx" (field_expression "pstr->valid_len" identifier -> field_identifier) = (binary_expression "(int)pIVar11 - idx" (cast_expression "(int)pIVar11" ( (type_descriptor "int" primitive_type) ) identifier) - identifier)) ;) (if_statement "if (unaff_s4 != (Idx *)0xffffffff) goto LAB_00491834;" if (parenthesized_expression "(unaff_s4 != (Idx *)0xffffffff)" ( (binary_expression "unaff_s4 != (Idx *)0xffffffff" identifier != (cast_expression "(Idx *)0xffffffff" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00491834;" goto statement_identifier ;)) }) (else_clause "else {\n          pstr->valid_len = (int)pIVar11 - idx;\n        }" else (compound_statement "{\n          pstr->valid_len = (int)pIVar11 - idx;\n        }" { (expression_statement "pstr->valid_len = (int)pIVar11 - idx;" (assignment_expression "pstr->valid_len = (int)pIVar11 - idx" (field_expression "pstr->valid_len" identifier -> field_identifier) = (binary_expression "(int)pIVar11 - idx" (cast_expression "(int)pIVar11" ( (type_descriptor "int" primitive_type) ) identifier) - identifier)) ;) }))) (expression_statement "prVar27 = (re_dfa_t *)((int)unaff_s6 + -1);" (assignment_expression "prVar27 = (re_dfa_t *)((int)unaff_s6 + -1)" identifier = (cast_expression "(re_dfa_t *)((int)unaff_s6 + -1)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s6 + -1)" ( (binary_expression "(int)unaff_s6 + -1" (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar19 = re_string_context_at(pstr,(Idx)prVar27,eflags);" (assignment_expression "uVar19 = re_string_context_at(pstr,(Idx)prVar27,eflags)" identifier = (call_expression "re_string_context_at(pstr,(Idx)prVar27,eflags)" identifier (argument_list "(pstr,(Idx)prVar27,eflags)" ( identifier , (cast_expression "(Idx)prVar27" ( (type_descriptor "Idx" type_identifier) ) identifier) , identifier )))) ;) (expression_statement "pstr->tip_context = uVar19;" (assignment_expression "pstr->tip_context = uVar19" (field_expression "pstr->tip_context" identifier -> field_identifier) = identifier) ;) }) (else_clause "else {\n        prVar30 = (re_dfa_t *)pstr->raw_mbs;\n        unaff_s4 = (Idx *)((int)prVar30->word_char + pstr->raw_mbs_idx + -0x60);\n        prVar27 = (re_dfa_t *)((int)unaff_s4 + ((int)pIVar17 - pstr->mb_cur_max));\n        if (prVar27 <= prVar30) {\n          prVar27 = prVar30;\n        }\n        prVar30 = (re_dfa_t *)((int)unaff_s4 + (int)((int)pIVar17 + -1));\n        unaff_s5 = pIVar17;\n        if (prVar30 < prVar27) goto LAB_0049179c;\n        bVar4 = *(byte *)&prVar30->nodes;\n        unaff_s7 = prVar30;\n        while ((bVar4 & 0xc0) == 0x80) {\n          prVar22 = (re_dfa_t *)((int)&unaff_s7[-1].subexp_map + 3);\n          unaff_s7 = prVar30;\n          if (prVar22 < prVar27) goto LAB_0049179c;\n          unaff_s7 = prVar22;\n          bVar4 = *(byte *)&prVar22->nodes;\n        }\n        puVar21 = pstr->trans;\n        puVar23 = (undefined1 *)((int)unaff_s4 + (pstr->len - (int)unaff_s7));\n        prVar27 = unaff_s7;\n        if (puVar21 != (uchar *)0x0) {\n          puVar14 = (undefined1 *)0x6;\n          if ((int)puVar23 < 7) {\n            puVar14 = puVar23;\n          }\n          if ((int)(puVar14 + -1) < 0) {\n            prVar27 = (re_dfa_t *)buf;\n          }\n          else {\n            pbVar28 = (byte *)((int)unaff_s7->word_char + (int)(puVar14 + -0x61));\n            puVar12 = buf + (int)puVar14;\n            do {\n              puVar12[-1] = puVar21[*pbVar28];\n              puVar12 = puVar12 + -1;\n              pbVar28 = pbVar28 + -1;\n            } while (puVar12 != buf);\n            prVar27 = (re_dfa_t *)buf;\n          }\n        }\n        cur_state.__count = 0;\n        cur_state.__value.__wch = 0;\n        uVar19 = (*(code *)PTR_mbrtowc_004bf2ec)(&wc2);\n        uVar35 = (int)((int)unaff_s4 + (int)pIVar17) - (int)unaff_s7;\n        if ((uVar19 < uVar35) || (0xfffffffd < uVar19)) goto LAB_0049179c;\n        *(undefined1 *)&(pstr->cur_state).__count = 0;\n        *(undefined1 *)((int)&(pstr->cur_state).__count + 1) = 0;\n        *(undefined1 *)((int)&(pstr->cur_state).__count + 2) = 0;\n        *(undefined1 *)((int)&(pstr->cur_state).__count + 3) = 0;\n        (pstr->cur_state).__value.__wchb[0] = '\0';\n        (pstr->cur_state).__value.__wchb[1] = '\0';\n        (pstr->cur_state).__value.__wchb[2] = '\0';\n        (pstr->cur_state).__value.__wchb[3] = '\0';\n        pstr->valid_len = uVar19 - uVar35;\n        unaff_s4 = (Idx *)wc2;\n        if (wc2 == -1) {\n          iVar7 = pstr->raw_mbs_idx;\n          goto LAB_004917a0;\n        }\nLAB_00491834:\n        if (pstr->word_ops_used == '\0') {\nLAB_00491840:\n          uVar19 = 2;\n          if (unaff_s4 == (Idx *)&DAT_0000000a) {\n            if (pstr->newline_anchor == '\0') {\n              uVar19 = 0;\n            }\n          }\n          else {\n            uVar19 = 0;\n          }\n        }\n        else {\n          iVar7 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          uVar19 = 1;\n          if (iVar7 == 0) {\n            if (unaff_s4 == (Idx *)0x5f) {\n              pstr->tip_context = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }\n        pstr->tip_context = uVar19;\n      }" else (compound_statement "{\n        prVar30 = (re_dfa_t *)pstr->raw_mbs;\n        unaff_s4 = (Idx *)((int)prVar30->word_char + pstr->raw_mbs_idx + -0x60);\n        prVar27 = (re_dfa_t *)((int)unaff_s4 + ((int)pIVar17 - pstr->mb_cur_max));\n        if (prVar27 <= prVar30) {\n          prVar27 = prVar30;\n        }\n        prVar30 = (re_dfa_t *)((int)unaff_s4 + (int)((int)pIVar17 + -1));\n        unaff_s5 = pIVar17;\n        if (prVar30 < prVar27) goto LAB_0049179c;\n        bVar4 = *(byte *)&prVar30->nodes;\n        unaff_s7 = prVar30;\n        while ((bVar4 & 0xc0) == 0x80) {\n          prVar22 = (re_dfa_t *)((int)&unaff_s7[-1].subexp_map + 3);\n          unaff_s7 = prVar30;\n          if (prVar22 < prVar27) goto LAB_0049179c;\n          unaff_s7 = prVar22;\n          bVar4 = *(byte *)&prVar22->nodes;\n        }\n        puVar21 = pstr->trans;\n        puVar23 = (undefined1 *)((int)unaff_s4 + (pstr->len - (int)unaff_s7));\n        prVar27 = unaff_s7;\n        if (puVar21 != (uchar *)0x0) {\n          puVar14 = (undefined1 *)0x6;\n          if ((int)puVar23 < 7) {\n            puVar14 = puVar23;\n          }\n          if ((int)(puVar14 + -1) < 0) {\n            prVar27 = (re_dfa_t *)buf;\n          }\n          else {\n            pbVar28 = (byte *)((int)unaff_s7->word_char + (int)(puVar14 + -0x61));\n            puVar12 = buf + (int)puVar14;\n            do {\n              puVar12[-1] = puVar21[*pbVar28];\n              puVar12 = puVar12 + -1;\n              pbVar28 = pbVar28 + -1;\n            } while (puVar12 != buf);\n            prVar27 = (re_dfa_t *)buf;\n          }\n        }\n        cur_state.__count = 0;\n        cur_state.__value.__wch = 0;\n        uVar19 = (*(code *)PTR_mbrtowc_004bf2ec)(&wc2);\n        uVar35 = (int)((int)unaff_s4 + (int)pIVar17) - (int)unaff_s7;\n        if ((uVar19 < uVar35) || (0xfffffffd < uVar19)) goto LAB_0049179c;\n        *(undefined1 *)&(pstr->cur_state).__count = 0;\n        *(undefined1 *)((int)&(pstr->cur_state).__count + 1) = 0;\n        *(undefined1 *)((int)&(pstr->cur_state).__count + 2) = 0;\n        *(undefined1 *)((int)&(pstr->cur_state).__count + 3) = 0;\n        (pstr->cur_state).__value.__wchb[0] = '\0';\n        (pstr->cur_state).__value.__wchb[1] = '\0';\n        (pstr->cur_state).__value.__wchb[2] = '\0';\n        (pstr->cur_state).__value.__wchb[3] = '\0';\n        pstr->valid_len = uVar19 - uVar35;\n        unaff_s4 = (Idx *)wc2;\n        if (wc2 == -1) {\n          iVar7 = pstr->raw_mbs_idx;\n          goto LAB_004917a0;\n        }\nLAB_00491834:\n        if (pstr->word_ops_used == '\0') {\nLAB_00491840:\n          uVar19 = 2;\n          if (unaff_s4 == (Idx *)&DAT_0000000a) {\n            if (pstr->newline_anchor == '\0') {\n              uVar19 = 0;\n            }\n          }\n          else {\n            uVar19 = 0;\n          }\n        }\n        else {\n          iVar7 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          uVar19 = 1;\n          if (iVar7 == 0) {\n            if (unaff_s4 == (Idx *)0x5f) {\n              pstr->tip_context = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }\n        pstr->tip_context = uVar19;\n      }" { (expression_statement "prVar30 = (re_dfa_t *)pstr->raw_mbs;" (assignment_expression "prVar30 = (re_dfa_t *)pstr->raw_mbs" identifier = (cast_expression "(re_dfa_t *)pstr->raw_mbs" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pstr->raw_mbs" identifier -> field_identifier))) ;) (expression_statement "unaff_s4 = (Idx *)((int)prVar30->word_char + pstr->raw_mbs_idx + -0x60);" (assignment_expression "unaff_s4 = (Idx *)((int)prVar30->word_char + pstr->raw_mbs_idx + -0x60)" identifier = (cast_expression "(Idx *)((int)prVar30->word_char + pstr->raw_mbs_idx + -0x60)" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)prVar30->word_char + pstr->raw_mbs_idx + -0x60)" ( (binary_expression "(int)prVar30->word_char + pstr->raw_mbs_idx + -0x60" (binary_expression "(int)prVar30->word_char + pstr->raw_mbs_idx" (cast_expression "(int)prVar30->word_char" ( (type_descriptor "int" primitive_type) ) (field_expression "prVar30->word_char" identifier -> field_identifier)) + (field_expression "pstr->raw_mbs_idx" identifier -> field_identifier)) + number_literal) )))) ;) (expression_statement "prVar27 = (re_dfa_t *)((int)unaff_s4 + ((int)pIVar17 - pstr->mb_cur_max));" (assignment_expression "prVar27 = (re_dfa_t *)((int)unaff_s4 + ((int)pIVar17 - pstr->mb_cur_max))" identifier = (cast_expression "(re_dfa_t *)((int)unaff_s4 + ((int)pIVar17 - pstr->mb_cur_max))" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + ((int)pIVar17 - pstr->mb_cur_max))" ( (binary_expression "(int)unaff_s4 + ((int)pIVar17 - pstr->mb_cur_max)" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((int)pIVar17 - pstr->mb_cur_max)" ( (binary_expression "(int)pIVar17 - pstr->mb_cur_max" (cast_expression "(int)pIVar17" ( (type_descriptor "int" primitive_type) ) identifier) - (field_expression "pstr->mb_cur_max" identifier -> field_identifier)) ))) )))) ;) (if_statement "if (prVar27 <= prVar30) {\n          prVar27 = prVar30;\n        }" if (parenthesized_expression "(prVar27 <= prVar30)" ( (binary_expression "prVar27 <= prVar30" identifier <= identifier) )) (compound_statement "{\n          prVar27 = prVar30;\n        }" { (expression_statement "prVar27 = prVar30;" (assignment_expression "prVar27 = prVar30" identifier = identifier) ;) })) (expression_statement "prVar30 = (re_dfa_t *)((int)unaff_s4 + (int)((int)pIVar17 + -1));" (assignment_expression "prVar30 = (re_dfa_t *)((int)unaff_s4 + (int)((int)pIVar17 + -1))" identifier = (cast_expression "(re_dfa_t *)((int)unaff_s4 + (int)((int)pIVar17 + -1))" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + (int)((int)pIVar17 + -1))" ( (binary_expression "(int)unaff_s4 + (int)((int)pIVar17 + -1)" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)((int)pIVar17 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)pIVar17 + -1)" ( (binary_expression "(int)pIVar17 + -1" (cast_expression "(int)pIVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (expression_statement "unaff_s5 = pIVar17;" (assignment_expression "unaff_s5 = pIVar17" identifier = identifier) ;) (if_statement "if (prVar30 < prVar27) goto LAB_0049179c;" if (parenthesized_expression "(prVar30 < prVar27)" ( (binary_expression "prVar30 < prVar27" identifier < identifier) )) (goto_statement "goto LAB_0049179c;" goto statement_identifier ;)) (expression_statement "bVar4 = *(byte *)&prVar30->nodes;" (assignment_expression "bVar4 = *(byte *)&prVar30->nodes" identifier = (pointer_expression "*(byte *)&prVar30->nodes" * (cast_expression "(byte *)&prVar30->nodes" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar30->nodes" & (field_expression "prVar30->nodes" identifier -> field_identifier))))) ;) (expression_statement "unaff_s7 = prVar30;" (assignment_expression "unaff_s7 = prVar30" identifier = identifier) ;) (while_statement "while ((bVar4 & 0xc0) == 0x80) {\n          prVar22 = (re_dfa_t *)((int)&unaff_s7[-1].subexp_map + 3);\n          unaff_s7 = prVar30;\n          if (prVar22 < prVar27) goto LAB_0049179c;\n          unaff_s7 = prVar22;\n          bVar4 = *(byte *)&prVar22->nodes;\n        }" while (parenthesized_expression "((bVar4 & 0xc0) == 0x80)" ( (binary_expression "(bVar4 & 0xc0) == 0x80" (parenthesized_expression "(bVar4 & 0xc0)" ( (binary_expression "bVar4 & 0xc0" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          prVar22 = (re_dfa_t *)((int)&unaff_s7[-1].subexp_map + 3);\n          unaff_s7 = prVar30;\n          if (prVar22 < prVar27) goto LAB_0049179c;\n          unaff_s7 = prVar22;\n          bVar4 = *(byte *)&prVar22->nodes;\n        }" { (expression_statement "prVar22 = (re_dfa_t *)((int)&unaff_s7[-1].subexp_map + 3);" (assignment_expression "prVar22 = (re_dfa_t *)((int)&unaff_s7[-1].subexp_map + 3)" identifier = (cast_expression "(re_dfa_t *)((int)&unaff_s7[-1].subexp_map + 3)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&unaff_s7[-1].subexp_map + 3)" ( (binary_expression "(int)&unaff_s7[-1].subexp_map + 3" (cast_expression "(int)&unaff_s7[-1].subexp_map" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s7[-1].subexp_map" & (field_expression "unaff_s7[-1].subexp_map" (subscript_expression "unaff_s7[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "unaff_s7 = prVar30;" (assignment_expression "unaff_s7 = prVar30" identifier = identifier) ;) (if_statement "if (prVar22 < prVar27) goto LAB_0049179c;" if (parenthesized_expression "(prVar22 < prVar27)" ( (binary_expression "prVar22 < prVar27" identifier < identifier) )) (goto_statement "goto LAB_0049179c;" goto statement_identifier ;)) (expression_statement "unaff_s7 = prVar22;" (assignment_expression "unaff_s7 = prVar22" identifier = identifier) ;) (expression_statement "bVar4 = *(byte *)&prVar22->nodes;" (assignment_expression "bVar4 = *(byte *)&prVar22->nodes" identifier = (pointer_expression "*(byte *)&prVar22->nodes" * (cast_expression "(byte *)&prVar22->nodes" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar22->nodes" & (field_expression "prVar22->nodes" identifier -> field_identifier))))) ;) })) (expression_statement "puVar21 = pstr->trans;" (assignment_expression "puVar21 = pstr->trans" identifier = (field_expression "pstr->trans" identifier -> field_identifier)) ;) (expression_statement "puVar23 = (undefined1 *)((int)unaff_s4 + (pstr->len - (int)unaff_s7));" (assignment_expression "puVar23 = (undefined1 *)((int)unaff_s4 + (pstr->len - (int)unaff_s7))" identifier = (cast_expression "(undefined1 *)((int)unaff_s4 + (pstr->len - (int)unaff_s7))" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + (pstr->len - (int)unaff_s7))" ( (binary_expression "(int)unaff_s4 + (pstr->len - (int)unaff_s7)" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(pstr->len - (int)unaff_s7)" ( (binary_expression "pstr->len - (int)unaff_s7" (field_expression "pstr->len" identifier -> field_identifier) - (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "prVar27 = unaff_s7;" (assignment_expression "prVar27 = unaff_s7" identifier = identifier) ;) (if_statement "if (puVar21 != (uchar *)0x0) {\n          puVar14 = (undefined1 *)0x6;\n          if ((int)puVar23 < 7) {\n            puVar14 = puVar23;\n          }\n          if ((int)(puVar14 + -1) < 0) {\n            prVar27 = (re_dfa_t *)buf;\n          }\n          else {\n            pbVar28 = (byte *)((int)unaff_s7->word_char + (int)(puVar14 + -0x61));\n            puVar12 = buf + (int)puVar14;\n            do {\n              puVar12[-1] = puVar21[*pbVar28];\n              puVar12 = puVar12 + -1;\n              pbVar28 = pbVar28 + -1;\n            } while (puVar12 != buf);\n            prVar27 = (re_dfa_t *)buf;\n          }\n        }" if (parenthesized_expression "(puVar21 != (uchar *)0x0)" ( (binary_expression "puVar21 != (uchar *)0x0" identifier != (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          puVar14 = (undefined1 *)0x6;\n          if ((int)puVar23 < 7) {\n            puVar14 = puVar23;\n          }\n          if ((int)(puVar14 + -1) < 0) {\n            prVar27 = (re_dfa_t *)buf;\n          }\n          else {\n            pbVar28 = (byte *)((int)unaff_s7->word_char + (int)(puVar14 + -0x61));\n            puVar12 = buf + (int)puVar14;\n            do {\n              puVar12[-1] = puVar21[*pbVar28];\n              puVar12 = puVar12 + -1;\n              pbVar28 = pbVar28 + -1;\n            } while (puVar12 != buf);\n            prVar27 = (re_dfa_t *)buf;\n          }\n        }" { (expression_statement "puVar14 = (undefined1 *)0x6;" (assignment_expression "puVar14 = (undefined1 *)0x6" identifier = (cast_expression "(undefined1 *)0x6" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((int)puVar23 < 7) {\n            puVar14 = puVar23;\n          }" if (parenthesized_expression "((int)puVar23 < 7)" ( (binary_expression "(int)puVar23 < 7" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            puVar14 = puVar23;\n          }" { (expression_statement "puVar14 = puVar23;" (assignment_expression "puVar14 = puVar23" identifier = identifier) ;) })) (if_statement "if ((int)(puVar14 + -1) < 0) {\n            prVar27 = (re_dfa_t *)buf;\n          }\n          else {\n            pbVar28 = (byte *)((int)unaff_s7->word_char + (int)(puVar14 + -0x61));\n            puVar12 = buf + (int)puVar14;\n            do {\n              puVar12[-1] = puVar21[*pbVar28];\n              puVar12 = puVar12 + -1;\n              pbVar28 = pbVar28 + -1;\n            } while (puVar12 != buf);\n            prVar27 = (re_dfa_t *)buf;\n          }" if (parenthesized_expression "((int)(puVar14 + -1) < 0)" ( (binary_expression "(int)(puVar14 + -1) < 0" (cast_expression "(int)(puVar14 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar14 + -1)" ( (binary_expression "puVar14 + -1" identifier + number_literal) ))) < number_literal) )) (compound_statement "{\n            prVar27 = (re_dfa_t *)buf;\n          }" { (expression_statement "prVar27 = (re_dfa_t *)buf;" (assignment_expression "prVar27 = (re_dfa_t *)buf" identifier = (cast_expression "(re_dfa_t *)buf" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) (else_clause "else {\n            pbVar28 = (byte *)((int)unaff_s7->word_char + (int)(puVar14 + -0x61));\n            puVar12 = buf + (int)puVar14;\n            do {\n              puVar12[-1] = puVar21[*pbVar28];\n              puVar12 = puVar12 + -1;\n              pbVar28 = pbVar28 + -1;\n            } while (puVar12 != buf);\n            prVar27 = (re_dfa_t *)buf;\n          }" else (compound_statement "{\n            pbVar28 = (byte *)((int)unaff_s7->word_char + (int)(puVar14 + -0x61));\n            puVar12 = buf + (int)puVar14;\n            do {\n              puVar12[-1] = puVar21[*pbVar28];\n              puVar12 = puVar12 + -1;\n              pbVar28 = pbVar28 + -1;\n            } while (puVar12 != buf);\n            prVar27 = (re_dfa_t *)buf;\n          }" { (expression_statement "pbVar28 = (byte *)((int)unaff_s7->word_char + (int)(puVar14 + -0x61));" (assignment_expression "pbVar28 = (byte *)((int)unaff_s7->word_char + (int)(puVar14 + -0x61))" identifier = (cast_expression "(byte *)((int)unaff_s7->word_char + (int)(puVar14 + -0x61))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s7->word_char + (int)(puVar14 + -0x61))" ( (binary_expression "(int)unaff_s7->word_char + (int)(puVar14 + -0x61)" (cast_expression "(int)unaff_s7->word_char" ( (type_descriptor "int" primitive_type) ) (field_expression "unaff_s7->word_char" identifier -> field_identifier)) + (cast_expression "(int)(puVar14 + -0x61)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar14 + -0x61)" ( (binary_expression "puVar14 + -0x61" identifier + number_literal) )))) )))) ;) (expression_statement "puVar12 = buf + (int)puVar14;" (assignment_expression "puVar12 = buf + (int)puVar14" identifier = (binary_expression "buf + (int)puVar14" identifier + (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (do_statement "do {\n              puVar12[-1] = puVar21[*pbVar28];\n              puVar12 = puVar12 + -1;\n              pbVar28 = pbVar28 + -1;\n            } while (puVar12 != buf);" do (compound_statement "{\n              puVar12[-1] = puVar21[*pbVar28];\n              puVar12 = puVar12 + -1;\n              pbVar28 = pbVar28 + -1;\n            }" { (expression_statement "puVar12[-1] = puVar21[*pbVar28];" (assignment_expression "puVar12[-1] = puVar21[*pbVar28]" (subscript_expression "puVar12[-1]" identifier [ number_literal ]) = (subscript_expression "puVar21[*pbVar28]" identifier [ (pointer_expression "*pbVar28" * identifier) ])) ;) (expression_statement "puVar12 = puVar12 + -1;" (assignment_expression "puVar12 = puVar12 + -1" identifier = (binary_expression "puVar12 + -1" identifier + number_literal)) ;) (expression_statement "pbVar28 = pbVar28 + -1;" (assignment_expression "pbVar28 = pbVar28 + -1" identifier = (binary_expression "pbVar28 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar12 != buf)" ( (binary_expression "puVar12 != buf" identifier != identifier) )) ;) (expression_statement "prVar27 = (re_dfa_t *)buf;" (assignment_expression "prVar27 = (re_dfa_t *)buf" identifier = (cast_expression "(re_dfa_t *)buf" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) 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 "uVar19 = (*(code *)PTR_mbrtowc_004bf2ec)(&wc2);" (assignment_expression "uVar19 = (*(code *)PTR_mbrtowc_004bf2ec)(&wc2)" identifier = (call_expression "(*(code *)PTR_mbrtowc_004bf2ec)(&wc2)" (parenthesized_expression "(*(code *)PTR_mbrtowc_004bf2ec)" ( (pointer_expression "*(code *)PTR_mbrtowc_004bf2ec" * (cast_expression "(code *)PTR_mbrtowc_004bf2ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&wc2)" ( (pointer_expression "&wc2" & identifier) )))) ;) (expression_statement "uVar35 = (int)((int)unaff_s4 + (int)pIVar17) - (int)unaff_s7;" (assignment_expression "uVar35 = (int)((int)unaff_s4 + (int)pIVar17) - (int)unaff_s7" identifier = (binary_expression "(int)((int)unaff_s4 + (int)pIVar17) - (int)unaff_s7" (cast_expression "(int)((int)unaff_s4 + (int)pIVar17)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)unaff_s4 + (int)pIVar17)" ( (binary_expression "(int)unaff_s4 + (int)pIVar17" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pIVar17" ( (type_descriptor "int" primitive_type) ) identifier)) ))) - (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((uVar19 < uVar35) || (0xfffffffd < uVar19)) goto LAB_0049179c;" if (parenthesized_expression "((uVar19 < uVar35) || (0xfffffffd < uVar19))" ( (binary_expression "(uVar19 < uVar35) || (0xfffffffd < uVar19)" (parenthesized_expression "(uVar19 < uVar35)" ( (binary_expression "uVar19 < uVar35" identifier < identifier) )) || (parenthesized_expression "(0xfffffffd < uVar19)" ( (binary_expression "0xfffffffd < uVar19" number_literal < identifier) ))) )) (goto_statement "goto LAB_0049179c;" goto statement_identifier ;)) (expression_statement "*(undefined1 *)&(pstr->cur_state).__count = 0;" (assignment_expression "*(undefined1 *)&(pstr->cur_state).__count = 0" (pointer_expression "*(undefined1 *)&(pstr->cur_state).__count" * (cast_expression "(undefined1 *)&(pstr->cur_state).__count" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pstr->cur_state).__count" & (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 "*(undefined1 *)((int)&(pstr->cur_state).__count + 1) = 0;" (assignment_expression "*(undefined1 *)((int)&(pstr->cur_state).__count + 1) = 0" (pointer_expression "*(undefined1 *)((int)&(pstr->cur_state).__count + 1)" * (cast_expression "(undefined1 *)((int)&(pstr->cur_state).__count + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pstr->cur_state).__count + 1)" ( (binary_expression "(int)&(pstr->cur_state).__count + 1" (cast_expression "(int)&(pstr->cur_state).__count" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pstr->cur_state).__count" & (field_expression "(pstr->cur_state).__count" (parenthesized_expression "(pstr->cur_state)" ( (field_expression "pstr->cur_state" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)&(pstr->cur_state).__count + 2) = 0;" (assignment_expression "*(undefined1 *)((int)&(pstr->cur_state).__count + 2) = 0" (pointer_expression "*(undefined1 *)((int)&(pstr->cur_state).__count + 2)" * (cast_expression "(undefined1 *)((int)&(pstr->cur_state).__count + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pstr->cur_state).__count + 2)" ( (binary_expression "(int)&(pstr->cur_state).__count + 2" (cast_expression "(int)&(pstr->cur_state).__count" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pstr->cur_state).__count" & (field_expression "(pstr->cur_state).__count" (parenthesized_expression "(pstr->cur_state)" ( (field_expression "pstr->cur_state" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)&(pstr->cur_state).__count + 3) = 0;" (assignment_expression "*(undefined1 *)((int)&(pstr->cur_state).__count + 3) = 0" (pointer_expression "*(undefined1 *)((int)&(pstr->cur_state).__count + 3)" * (cast_expression "(undefined1 *)((int)&(pstr->cur_state).__count + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pstr->cur_state).__count + 3)" ( (binary_expression "(int)&(pstr->cur_state).__count + 3" (cast_expression "(int)&(pstr->cur_state).__count" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pstr->cur_state).__count" & (field_expression "(pstr->cur_state).__count" (parenthesized_expression "(pstr->cur_state)" ( (field_expression "pstr->cur_state" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "(pstr->cur_state).__value.__wchb[0] = '\0';" (assignment_expression "(pstr->cur_state).__value.__wchb[0] = '\0'" (subscript_expression "(pstr->cur_state).__value.__wchb[0]" (field_expression "(pstr->cur_state).__value.__wchb" (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 ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(pstr->cur_state).__value.__wchb[1] = '\0';" (assignment_expression "(pstr->cur_state).__value.__wchb[1] = '\0'" (subscript_expression "(pstr->cur_state).__value.__wchb[1]" (field_expression "(pstr->cur_state).__value.__wchb" (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 ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(pstr->cur_state).__value.__wchb[2] = '\0';" (assignment_expression "(pstr->cur_state).__value.__wchb[2] = '\0'" (subscript_expression "(pstr->cur_state).__value.__wchb[2]" (field_expression "(pstr->cur_state).__value.__wchb" (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 ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(pstr->cur_state).__value.__wchb[3] = '\0';" (assignment_expression "(pstr->cur_state).__value.__wchb[3] = '\0'" (subscript_expression "(pstr->cur_state).__value.__wchb[3]" (field_expression "(pstr->cur_state).__value.__wchb" (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 ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pstr->valid_len = uVar19 - uVar35;" (assignment_expression "pstr->valid_len = uVar19 - uVar35" (field_expression "pstr->valid_len" identifier -> field_identifier) = (binary_expression "uVar19 - uVar35" identifier - identifier)) ;) (expression_statement "unaff_s4 = (Idx *)wc2;" (assignment_expression "unaff_s4 = (Idx *)wc2" identifier = (cast_expression "(Idx *)wc2" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (wc2 == -1) {\n          iVar7 = pstr->raw_mbs_idx;\n          goto LAB_004917a0;\n        }" if (parenthesized_expression "(wc2 == -1)" ( (binary_expression "wc2 == -1" identifier == number_literal) )) (compound_statement "{\n          iVar7 = pstr->raw_mbs_idx;\n          goto LAB_004917a0;\n        }" { (expression_statement "iVar7 = pstr->raw_mbs_idx;" (assignment_expression "iVar7 = pstr->raw_mbs_idx" identifier = (field_expression "pstr->raw_mbs_idx" identifier -> field_identifier)) ;) (goto_statement "goto LAB_004917a0;" goto statement_identifier ;) })) (labeled_statement "LAB_00491834:\n        if (pstr->word_ops_used == '\0') {\nLAB_00491840:\n          uVar19 = 2;\n          if (unaff_s4 == (Idx *)&DAT_0000000a) {\n            if (pstr->newline_anchor == '\0') {\n              uVar19 = 0;\n            }\n          }\n          else {\n            uVar19 = 0;\n          }\n        }\n        else {\n          iVar7 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          uVar19 = 1;\n          if (iVar7 == 0) {\n            if (unaff_s4 == (Idx *)0x5f) {\n              pstr->tip_context = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }" statement_identifier : (if_statement "if (pstr->word_ops_used == '\0') {\nLAB_00491840:\n          uVar19 = 2;\n          if (unaff_s4 == (Idx *)&DAT_0000000a) {\n            if (pstr->newline_anchor == '\0') {\n              uVar19 = 0;\n            }\n          }\n          else {\n            uVar19 = 0;\n          }\n        }\n        else {\n          iVar7 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          uVar19 = 1;\n          if (iVar7 == 0) {\n            if (unaff_s4 == (Idx *)0x5f) {\n              pstr->tip_context = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }" if (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 ')) )) (compound_statement "{\nLAB_00491840:\n          uVar19 = 2;\n          if (unaff_s4 == (Idx *)&DAT_0000000a) {\n            if (pstr->newline_anchor == '\0') {\n              uVar19 = 0;\n            }\n          }\n          else {\n            uVar19 = 0;\n          }\n        }" { (labeled_statement "LAB_00491840:\n          uVar19 = 2;" statement_identifier : (expression_statement "uVar19 = 2;" (assignment_expression "uVar19 = 2" identifier = number_literal) ;)) (if_statement "if (unaff_s4 == (Idx *)&DAT_0000000a) {\n            if (pstr->newline_anchor == '\0') {\n              uVar19 = 0;\n            }\n          }\n          else {\n            uVar19 = 0;\n          }" if (parenthesized_expression "(unaff_s4 == (Idx *)&DAT_0000000a)" ( (binary_expression "unaff_s4 == (Idx *)&DAT_0000000a" identifier == (cast_expression "(Idx *)&DAT_0000000a" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000000a" & identifier))) )) (compound_statement "{\n            if (pstr->newline_anchor == '\0') {\n              uVar19 = 0;\n            }\n          }" { (if_statement "if (pstr->newline_anchor == '\0') {\n              uVar19 = 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              uVar19 = 0;\n            }" { (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) })) }) (else_clause "else {\n            uVar19 = 0;\n          }" else (compound_statement "{\n            uVar19 = 0;\n          }" { (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n          iVar7 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          uVar19 = 1;\n          if (iVar7 == 0) {\n            if (unaff_s4 == (Idx *)0x5f) {\n              pstr->tip_context = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }" else (compound_statement "{\n          iVar7 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          uVar19 = 1;\n          if (iVar7 == 0) {\n            if (unaff_s4 == (Idx *)0x5f) {\n              pstr->tip_context = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }" { (expression_statement "iVar7 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);" (assignment_expression "iVar7 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4)" identifier = (call_expression "(*(code *)PTR_iswalnum_004bf25c)(unaff_s4)" (parenthesized_expression "(*(code *)PTR_iswalnum_004bf25c)" ( (pointer_expression "*(code *)PTR_iswalnum_004bf25c" * (cast_expression "(code *)PTR_iswalnum_004bf25c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s4)" ( identifier )))) ;) (expression_statement "uVar19 = 1;" (assignment_expression "uVar19 = 1" identifier = number_literal) ;) (if_statement "if (iVar7 == 0) {\n            if (unaff_s4 == (Idx *)0x5f) {\n              pstr->tip_context = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n            if (unaff_s4 == (Idx *)0x5f) {\n              pstr->tip_context = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }" { (if_statement "if (unaff_s4 == (Idx *)0x5f) {\n              pstr->tip_context = 1;\n              goto LAB_00491854;\n            }" if (parenthesized_expression "(unaff_s4 == (Idx *)0x5f)" ( (binary_expression "unaff_s4 == (Idx *)0x5f" identifier == (cast_expression "(Idx *)0x5f" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pstr->tip_context = 1;\n              goto LAB_00491854;\n            }" { (expression_statement "pstr->tip_context = 1;" (assignment_expression "pstr->tip_context = 1" (field_expression "pstr->tip_context" identifier -> field_identifier) = number_literal) ;) (goto_statement "goto LAB_00491854;" goto statement_identifier ;) })) (goto_statement "goto LAB_00491840;" goto statement_identifier ;) })) })))) (expression_statement "pstr->tip_context = uVar19;" (assignment_expression "pstr->tip_context = uVar19" (field_expression "pstr->tip_context" identifier -> field_identifier) = identifier) ;) }))) (labeled_statement "LAB_00491854:\n      prVar30 = (re_dfa_t *)pstr->valid_len;" statement_identifier : (expression_statement "prVar30 = (re_dfa_t *)pstr->valid_len;" (assignment_expression "prVar30 = (re_dfa_t *)pstr->valid_len" identifier = (cast_expression "(re_dfa_t *)pstr->valid_len" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pstr->valid_len" identifier -> field_identifier))) ;)) (if_statement "if (prVar30 == (re_dfa_t *)0x0) {\nLAB_00491860:\n        IVar10 = pstr->valid_len;\n      }\n      else {\n        iVar7 = 0;\n        if (0 < (int)prVar30) {\n          do {\n            pstr->wcs[iVar7] = 0xffffffff;\n            iVar7 = iVar7 + 1;\n            prVar30 = (re_dfa_t *)pstr->valid_len;\n          } while (iVar7 < (int)prVar30);\n        }\n        prVar27 = (re_dfa_t *)0xff;\n        if (pstr->mbs_allocated == '\0') goto LAB_00491860;\n        (*(code *)PTR_memset_004bf260)(pstr->mbs);\n        IVar10 = pstr->valid_len;\n      }" if (parenthesized_expression "(prVar30 == (re_dfa_t *)0x0)" ( (binary_expression "prVar30 == (re_dfa_t *)0x0" identifier == (cast_expression "(re_dfa_t *)0x0" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00491860:\n        IVar10 = pstr->valid_len;\n      }" { (labeled_statement "LAB_00491860:\n        IVar10 = pstr->valid_len;" statement_identifier : (expression_statement "IVar10 = pstr->valid_len;" (assignment_expression "IVar10 = pstr->valid_len" identifier = (field_expression "pstr->valid_len" identifier -> field_identifier)) ;)) }) (else_clause "else {\n        iVar7 = 0;\n        if (0 < (int)prVar30) {\n          do {\n            pstr->wcs[iVar7] = 0xffffffff;\n            iVar7 = iVar7 + 1;\n            prVar30 = (re_dfa_t *)pstr->valid_len;\n          } while (iVar7 < (int)prVar30);\n        }\n        prVar27 = (re_dfa_t *)0xff;\n        if (pstr->mbs_allocated == '\0') goto LAB_00491860;\n        (*(code *)PTR_memset_004bf260)(pstr->mbs);\n        IVar10 = pstr->valid_len;\n      }" else (compound_statement "{\n        iVar7 = 0;\n        if (0 < (int)prVar30) {\n          do {\n            pstr->wcs[iVar7] = 0xffffffff;\n            iVar7 = iVar7 + 1;\n            prVar30 = (re_dfa_t *)pstr->valid_len;\n          } while (iVar7 < (int)prVar30);\n        }\n        prVar27 = (re_dfa_t *)0xff;\n        if (pstr->mbs_allocated == '\0') goto LAB_00491860;\n        (*(code *)PTR_memset_004bf260)(pstr->mbs);\n        IVar10 = pstr->valid_len;\n      }" { (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)prVar30) {\n          do {\n            pstr->wcs[iVar7] = 0xffffffff;\n            iVar7 = iVar7 + 1;\n            prVar30 = (re_dfa_t *)pstr->valid_len;\n          } while (iVar7 < (int)prVar30);\n        }" if (parenthesized_expression "(0 < (int)prVar30)" ( (binary_expression "0 < (int)prVar30" number_literal < (cast_expression "(int)prVar30" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          do {\n            pstr->wcs[iVar7] = 0xffffffff;\n            iVar7 = iVar7 + 1;\n            prVar30 = (re_dfa_t *)pstr->valid_len;\n          } while (iVar7 < (int)prVar30);\n        }" { (do_statement "do {\n            pstr->wcs[iVar7] = 0xffffffff;\n            iVar7 = iVar7 + 1;\n            prVar30 = (re_dfa_t *)pstr->valid_len;\n          } while (iVar7 < (int)prVar30);" do (compound_statement "{\n            pstr->wcs[iVar7] = 0xffffffff;\n            iVar7 = iVar7 + 1;\n            prVar30 = (re_dfa_t *)pstr->valid_len;\n          }" { (expression_statement "pstr->wcs[iVar7] = 0xffffffff;" (assignment_expression "pstr->wcs[iVar7] = 0xffffffff" (subscript_expression "pstr->wcs[iVar7]" (field_expression "pstr->wcs" identifier -> field_identifier) [ identifier ]) = number_literal) ;) (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "prVar30 = (re_dfa_t *)pstr->valid_len;" (assignment_expression "prVar30 = (re_dfa_t *)pstr->valid_len" identifier = (cast_expression "(re_dfa_t *)pstr->valid_len" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pstr->valid_len" identifier -> field_identifier))) ;) }) while (parenthesized_expression "(iVar7 < (int)prVar30)" ( (binary_expression "iVar7 < (int)prVar30" identifier < (cast_expression "(int)prVar30" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "prVar27 = (re_dfa_t *)0xff;" (assignment_expression "prVar27 = (re_dfa_t *)0xff" identifier = (cast_expression "(re_dfa_t *)0xff" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pstr->mbs_allocated == '\0') goto LAB_00491860;" 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 ')) )) (goto_statement "goto LAB_00491860;" goto statement_identifier ;)) (expression_statement "(*(code *)PTR_memset_004bf260)(pstr->mbs);" (call_expression "(*(code *)PTR_memset_004bf260)(pstr->mbs)" (parenthesized_expression "(*(code *)PTR_memset_004bf260)" ( (pointer_expression "*(code *)PTR_memset_004bf260" * (cast_expression "(code *)PTR_memset_004bf260" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pstr->mbs)" ( (field_expression "pstr->mbs" identifier -> field_identifier) ))) ;) (expression_statement "IVar10 = pstr->valid_len;" (assignment_expression "IVar10 = pstr->valid_len" identifier = (field_expression "pstr->valid_len" identifier -> field_identifier)) ;) }))) (expression_statement "pstr->valid_raw_len = IVar10;" (assignment_expression "pstr->valid_raw_len = IVar10" (field_expression "pstr->valid_raw_len" identifier -> field_identifier) = identifier) ;) (labeled_statement "LAB_00491360:\n      uVar2 = pstr->mbs_allocated;" statement_identifier : (expression_statement "uVar2 = pstr->mbs_allocated;" (assignment_expression "uVar2 = pstr->mbs_allocated" identifier = (field_expression "pstr->mbs_allocated" identifier -> field_identifier)) ;)) }))) (if_statement "if (uVar2 == '\0') {\n      pstr->mbs = pstr->mbs + (int)pIVar17;\n    }" if (parenthesized_expression "(uVar2 == '\0')" ( (binary_expression "uVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pstr->mbs = pstr->mbs + (int)pIVar17;\n    }" { (expression_statement "pstr->mbs = pstr->mbs + (int)pIVar17;" (assignment_expression "pstr->mbs = pstr->mbs + (int)pIVar17" (field_expression "pstr->mbs" identifier -> field_identifier) = (binary_expression "pstr->mbs + (int)pIVar17" (field_expression "pstr->mbs" identifier -> field_identifier) + (cast_expression "(int)pIVar17" ( (type_descriptor "int" primitive_type) ) 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 "iVar7 = pstr->len - (int)pIVar17;" (assignment_expression "iVar7 = pstr->len - (int)pIVar17" identifier = (binary_expression "pstr->len - (int)pIVar17" (field_expression "pstr->len" identifier -> field_identifier) - (cast_expression "(int)pIVar17" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pstr->len = iVar7;" (assignment_expression "pstr->len = iVar7" (field_expression "pstr->len" identifier -> field_identifier) = identifier) ;) (expression_statement "iVar32 = pstr->stop - (int)pIVar17;" (assignment_expression "iVar32 = pstr->stop - (int)pIVar17" identifier = (binary_expression "pstr->stop - (int)pIVar17" (field_expression "pstr->stop" identifier -> field_identifier) - (cast_expression "(int)pIVar17" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pstr->stop = iVar32;" (assignment_expression "pstr->stop = iVar32" (field_expression "pstr->stop" identifier -> field_identifier) = identifier) ;) (if_statement "if (pstr->mb_cur_max < 2) {\n    if (pstr->mbs_allocated == '\0') {\n      pstr->valid_len = iVar7;\n      goto LAB_00491aa8;\n    }\n    if (pstr->icase == '\0') {\n      if (pstr->trans == (uchar *)0x0) goto LAB_00491aa8;\n      re_string_translate_buffer(pstr);\n      pstr->cur_idx = 0;\n    }\n    else {\n      build_upper_buffer(pstr);\n      pstr->cur_idx = 0;\n    }\n  }\n  else {\n    if (pstr->icase == '\0') {\n      build_wcs_buffer(pstr);\n      pstr->cur_idx = 0;\n      goto LAB_00491aac;\n    }\n    rVar8 = build_wcs_upper_buffer(pstr);\n    if (rVar8 != _REG_NOERROR) goto LAB_00491ab0;\nLAB_00491aa8:\n    pstr->cur_idx = 0;\n  }" if (parenthesized_expression "(pstr->mb_cur_max < 2)" ( (binary_expression "pstr->mb_cur_max < 2" (field_expression "pstr->mb_cur_max" identifier -> field_identifier) < number_literal) )) (compound_statement "{\n    if (pstr->mbs_allocated == '\0') {\n      pstr->valid_len = iVar7;\n      goto LAB_00491aa8;\n    }\n    if (pstr->icase == '\0') {\n      if (pstr->trans == (uchar *)0x0) goto LAB_00491aa8;\n      re_string_translate_buffer(pstr);\n      pstr->cur_idx = 0;\n    }\n    else {\n      build_upper_buffer(pstr);\n      pstr->cur_idx = 0;\n    }\n  }" { (if_statement "if (pstr->mbs_allocated == '\0') {\n      pstr->valid_len = iVar7;\n      goto LAB_00491aa8;\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->valid_len = iVar7;\n      goto LAB_00491aa8;\n    }" { (expression_statement "pstr->valid_len = iVar7;" (assignment_expression "pstr->valid_len = iVar7" (field_expression "pstr->valid_len" identifier -> field_identifier) = identifier) ;) (goto_statement "goto LAB_00491aa8;" goto statement_identifier ;) })) (if_statement "if (pstr->icase == '\0') {\n      if (pstr->trans == (uchar *)0x0) goto LAB_00491aa8;\n      re_string_translate_buffer(pstr);\n      pstr->cur_idx = 0;\n    }\n    else {\n      build_upper_buffer(pstr);\n      pstr->cur_idx = 0;\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      if (pstr->trans == (uchar *)0x0) goto LAB_00491aa8;\n      re_string_translate_buffer(pstr);\n      pstr->cur_idx = 0;\n    }" { (if_statement "if (pstr->trans == (uchar *)0x0) goto LAB_00491aa8;" 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)) )) (goto_statement "goto LAB_00491aa8;" goto statement_identifier ;)) (expression_statement "re_string_translate_buffer(pstr);" (call_expression "re_string_translate_buffer(pstr)" identifier (argument_list "(pstr)" ( 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 {\n      build_upper_buffer(pstr);\n      pstr->cur_idx = 0;\n    }" else (compound_statement "{\n      build_upper_buffer(pstr);\n      pstr->cur_idx = 0;\n    }" { (expression_statement "build_upper_buffer(pstr);" (call_expression "build_upper_buffer(pstr)" identifier (argument_list "(pstr)" ( 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 {\n    if (pstr->icase == '\0') {\n      build_wcs_buffer(pstr);\n      pstr->cur_idx = 0;\n      goto LAB_00491aac;\n    }\n    rVar8 = build_wcs_upper_buffer(pstr);\n    if (rVar8 != _REG_NOERROR) goto LAB_00491ab0;\nLAB_00491aa8:\n    pstr->cur_idx = 0;\n  }" else (compound_statement "{\n    if (pstr->icase == '\0') {\n      build_wcs_buffer(pstr);\n      pstr->cur_idx = 0;\n      goto LAB_00491aac;\n    }\n    rVar8 = build_wcs_upper_buffer(pstr);\n    if (rVar8 != _REG_NOERROR) goto LAB_00491ab0;\nLAB_00491aa8:\n    pstr->cur_idx = 0;\n  }" { (if_statement "if (pstr->icase == '\0') {\n      build_wcs_buffer(pstr);\n      pstr->cur_idx = 0;\n      goto LAB_00491aac;\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      pstr->cur_idx = 0;\n      goto LAB_00491aac;\n    }" { (expression_statement "build_wcs_buffer(pstr);" (call_expression "build_wcs_buffer(pstr)" identifier (argument_list "(pstr)" ( identifier ))) ;) (expression_statement "pstr->cur_idx = 0;" (assignment_expression "pstr->cur_idx = 0" (field_expression "pstr->cur_idx" identifier -> field_identifier) = number_literal) ;) (goto_statement "goto LAB_00491aac;" goto statement_identifier ;) })) (expression_statement "rVar8 = build_wcs_upper_buffer(pstr);" (assignment_expression "rVar8 = build_wcs_upper_buffer(pstr)" identifier = (call_expression "build_wcs_upper_buffer(pstr)" identifier (argument_list "(pstr)" ( identifier )))) ;) (if_statement "if (rVar8 != _REG_NOERROR) goto LAB_00491ab0;" if (parenthesized_expression "(rVar8 != _REG_NOERROR)" ( (binary_expression "rVar8 != _REG_NOERROR" identifier != identifier) )) (goto_statement "goto LAB_00491ab0;" goto statement_identifier ;)) (labeled_statement "LAB_00491aa8:\n    pstr->cur_idx = 0;" statement_identifier : (expression_statement "pstr->cur_idx = 0;" (assignment_expression "pstr->cur_idx = 0" (field_expression "pstr->cur_idx" identifier -> field_identifier) = number_literal) ;)) }))) (labeled_statement "LAB_00491aac:\n  rVar8 = _REG_NOERROR;" statement_identifier : (expression_statement "rVar8 = _REG_NOERROR;" (assignment_expression "rVar8 = _REG_NOERROR" identifier = identifier) ;)) (labeled_statement "LAB_00491ab0:\n  if (prVar6 == *(re_dfa_t **)PTR___stack_chk_guard_004bf38c) {\n    return rVar8;\n  }" statement_identifier : (if_statement "if (prVar6 == *(re_dfa_t **)PTR___stack_chk_guard_004bf38c) {\n    return rVar8;\n  }" if (parenthesized_expression "(prVar6 == *(re_dfa_t **)PTR___stack_chk_guard_004bf38c)" ( (binary_expression "prVar6 == *(re_dfa_t **)PTR___stack_chk_guard_004bf38c" identifier == (pointer_expression "*(re_dfa_t **)PTR___stack_chk_guard_004bf38c" * (cast_expression "(re_dfa_t **)PTR___stack_chk_guard_004bf38c" ( (type_descriptor "re_dfa_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return rVar8;\n  }" { (return_statement "return rVar8;" return identifier ;) }))) (expression_statement "pcVar37 = re_compile_fastmap_iter;" (assignment_expression "pcVar37 = re_compile_fastmap_iter" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_004bf34c)();" (call_expression "(*(code *)PTR___stack_chk_fail_004bf34c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_004bf34c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_004bf34c" * (cast_expression "(code *)PTR___stack_chk_fail_004bf34c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "rStack_84 = *(reg_errcode_t *)PTR___stack_chk_guard_004bf38c;" (assignment_expression "rStack_84 = *(reg_errcode_t *)PTR___stack_chk_guard_004bf38c" identifier = (pointer_expression "*(reg_errcode_t *)PTR___stack_chk_guard_004bf38c" * (cast_expression "(reg_errcode_t *)PTR___stack_chk_guard_004bf38c" ( (type_descriptor "reg_errcode_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "prVar36 = prVar6->nodes;" (assignment_expression "prVar36 = prVar6->nodes" identifier = (field_expression "prVar6->nodes" identifier -> field_identifier)) ;) (if_statement "if (*(int *)&prVar36[0xb].field_0x4 == 1) {\n    uVar19 = (uint)((int)prVar6->nexts << 9) >> 0x1f;\n  }\n  else {\n    uVar19 = 0;\n  }" if (parenthesized_expression "(*(int *)&prVar36[0xb].field_0x4 == 1)" ( (binary_expression "*(int *)&prVar36[0xb].field_0x4 == 1" (pointer_expression "*(int *)&prVar36[0xb].field_0x4" * (cast_expression "(int *)&prVar36[0xb].field_0x4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar36[0xb].field_0x4" & (field_expression "prVar36[0xb].field_0x4" (subscript_expression "prVar36[0xb]" identifier [ number_literal ]) . field_identifier)))) == number_literal) )) (compound_statement "{\n    uVar19 = (uint)((int)prVar6->nexts << 9) >> 0x1f;\n  }" { (expression_statement "uVar19 = (uint)((int)prVar6->nexts << 9) >> 0x1f;" (assignment_expression "uVar19 = (uint)((int)prVar6->nexts << 9) >> 0x1f" identifier = (binary_expression "(uint)((int)prVar6->nexts << 9) >> 0x1f" (call_expression "(uint)((int)prVar6->nexts << 9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)prVar6->nexts << 9)" ( (binary_expression "(int)prVar6->nexts << 9" (cast_expression "(int)prVar6->nexts" ( (type_descriptor "int" primitive_type) ) (field_expression "prVar6->nexts" identifier -> field_identifier)) << number_literal) ))) >> number_literal)) ;) }) (else_clause "else {\n    uVar19 = 0;\n  }" else (compound_statement "{\n    uVar19 = 0;\n  }" { (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) }))) (expression_statement "prVar22 = prVar6;" (assignment_expression "prVar22 = prVar6" identifier = identifier) ;) (expression_statement "dfa = prVar27;" (assignment_expression "dfa = prVar27" identifier = identifier) ;) (expression_statement "set2 = prVar30;" (assignment_expression "set2 = prVar30" identifier = identifier) ;) (expression_statement "prStack_80 = pstr;" (assignment_expression "prStack_80 = pstr" identifier = identifier) ;) (expression_statement "iStack_7c = iVar32;" (assignment_expression "iStack_7c = iVar32" identifier = identifier) ;) (expression_statement "IStack_78 = idx;" (assignment_expression "IStack_78 = idx" identifier = identifier) ;) (expression_statement "iStack_74 = eflags;" (assignment_expression "iStack_74 = eflags" identifier = identifier) ;) (expression_statement "pIStack_70 = unaff_s4;" (assignment_expression "pIStack_70 = unaff_s4" identifier = identifier) ;) (expression_statement "pIStack_6c = unaff_s5;" (assignment_expression "pIStack_6c = unaff_s5" identifier = identifier) ;) (expression_statement "pIStack_68 = unaff_s6;" (assignment_expression "pIStack_68 = unaff_s6" identifier = identifier) ;) (expression_statement "prStack_64 = unaff_s7;" (assignment_expression "prStack_64 = unaff_s7" identifier = identifier) ;) (expression_statement "pmStack_60 = unaff_s8;" (assignment_expression "pmStack_60 = unaff_s8" identifier = identifier) ;) (expression_statement "pcStack_5c = pcVar37;" (assignment_expression "pcStack_5c = pcVar37" identifier = identifier) ;) (if_statement "if (0 < (int)prVar27->nodes_len) {\n    iStack_1a8 = 0;\n    do {\n      iVar7 = prVar27->nexts[iStack_1a8];\n      prVar13 = (re_dfa_t *)(iVar7 * 8);\n      pbVar28 = (byte *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset);\n      prVar22 = (re_dfa_t *)(uint)pbVar28[4];\n      dfa = (re_dfa_t *)&DAT_00000001;\n      if (prVar22 == (re_dfa_t *)&DAT_00000001) {\n        uVar35 = (uint)*pbVar28;\n        *(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;\n        if (uVar19 != 0) {\n          if (uVar35 + 0x80 < 0x180) {\n            piVar25 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar35 = *(uint *)(*piVar25 + uVar35 * 4);\n          }\n          *(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;\n        }\n        if (((int)prVar6->nexts << 9 < 0) &&\n           (prVar22 = prVar13, 1 < *(int *)&prVar36[0xb].field_0x4)) {\n          rStack_184.nodes._0_1_ = *(byte *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset);\n          if ((re_bitset_ptr_t)(iVar7 + 1U) < prVar36[1].opr.sbcset) {\n            puVar14 = (undefined1 *)((int)&prVar13->nodes_len + (int)(prVar36->opr).sbcset);\n            pprVar29 = (re_node_set **)&prVar13->org_indices;\n            if ((*(uint *)(puVar14 + 4) & 0xff000400) == 0x1000400) {\n              puVar24 = (undefined1 *)((int)&rStack_184.nodes + 1);\n              do {\n                puVar23 = puVar24 + 1;\n                *puVar24 = *puVar14;\n                if (prVar36[1].opr.sbcset <= puVar23 + (iVar7 - (int)&rStack_184)) break;\n                puVar14 = (undefined1 *)((int)(prVar36->opr).sbcset + (int)pprVar29);\n                pprVar29 = pprVar29 + 2;\n                puVar24 = puVar23;\n              } while ((*(uint *)(puVar14 + 4) & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar23 = (undefined1 *)((int)&rStack_184.nodes + 1);\n            }\n          }\n          else {\n            puVar23 = (undefined1 *)((int)&rStack_184.nodes + 1);\n          }\n          auStack_190._4_4_ = 0;\n          sStack_188 = 0;\n          dfa = &rStack_184;\n          iVar7 = -(int)dfa;\n          prVar22 = (re_dfa_t *)auStack_190;\n          set2 = (re_dfa_t *)(puVar23 + iVar7);\n          prVar13 = (re_dfa_t *)(*(code *)PTR_mbrtowc_004bf2ec)();\n          if ((re_dfa_t *)(puVar23 + iVar7) == prVar13) {\n            dfa = (re_dfa_t *)(*(code *)PTR_towlower_004bf37c)(auStack_190._0_4_);\n            set2 = (re_dfa_t *)(auStack_190 + 4);\n            prVar22 = &rStack_184;\n            iVar7 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar7 != -1) {\n              *(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_) = 1;\n            }\n          }\n        }\n      }\n      else {\n        dfa = (re_dfa_t *)&DAT_00000006;\n        if (prVar22 == (re_dfa_t *)0x3) {\n          iStack_1ac = 0;\n          iVar7 = 0;\n          do {\n            uVar34 = *(uint *)(*(int *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset) +\n                              iStack_1ac);\n            uVar35 = 0;\n            iVar32 = iVar7;\n            do {\n              if (((uVar34 >> (uVar35 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)&prVar30->nodes + iVar32) = 1, uVar19 != 0)) {\n                iVar15 = iVar32;\n                if (iVar32 + 0x80U < 0x180) {\n                  piVar25 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar15 = *(int *)(*piVar25 + (uVar35 + iVar7) * 4);\n                }\n                *(undefined1 *)((int)&prVar30->nodes + iVar15) = 1;\n              }\n              uVar35 = uVar35 + 1;\n              iVar32 = iVar32 + 1;\n            } while (uVar35 != 0x20);\n            iVar7 = iVar7 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar7 != 0x100);\n        }\n        else if (prVar22 == (re_dfa_t *)&DAT_00000006) {\n          piVar25 = *(int **)pbVar28;\n          if ((*(int *)&prVar36[0xb].field_0x4 < 2) ||\n             (((piVar25[9] == 0 && (-1 < *(char *)(piVar25 + 4))) && (piVar25[8] == 0)))) {\n            iVar7 = 0;\n            if (0 < piVar25[5]) {\n              do {\n                auStack_190._4_4_ = 0;\n                sStack_188 = 0;\n                dfa = *(re_dfa_t **)(*piVar25 + iVar7 * 4);\n                prVar22 = &rStack_184;\n                set2 = (re_dfa_t *)(auStack_190 + 4);\n                iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar35 = (uint)rStack_184.nodes._0_1_;\n                if ((iVar32 != -1) &&\n                   (*(undefined1 *)((int)&prVar30->nodes + uVar35) = 1, uVar19 != 0)) {\n                  if (uVar35 + 0x80 < 0x180) {\n                    piVar16 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar35 = *(uint *)(*piVar16 + uVar35 * 4);\n                  }\n                  *(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;\n                }\n                if ((((uint)prVar6->nexts & 0x400000) != 0) && (1 < *(int *)&prVar36[0xb].field_0x4)\n                   ) {\n                  dfa = (re_dfa_t *)\n                        (*(code *)PTR_towlower_004bf37c)(*(undefined4 *)(*piVar25 + iVar7 * 4));\n                  prVar22 = &rStack_184;\n                  set2 = (re_dfa_t *)(auStack_190 + 4);\n                  iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar32 != -1) {\n                    *(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_) = 1;\n                  }\n                }\n                iVar7 = iVar7 + 1;\n              } while (iVar7 < piVar25[5]);\n            }\n          }\n          else {\n            auStack_190._0_4_ = auStack_190._0_4_ & 0xffffff;\n            do {\n              auStack_190._4_4_ = 0;\n              sStack_188 = 0;\n              set2 = (re_dfa_t *)&DAT_00000001;\n              prVar22 = (re_dfa_t *)0x0;\n              dfa = (re_dfa_t *)auStack_190;\n              iVar7 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar7 == -2) {\n                *(undefined1 *)((int)&prVar30->nodes + (uint)auStack_190[0]) = 1;\n              }\n              bVar1 = auStack_190[0] != 0xff;\n              auStack_190[0] = auStack_190[0] + 1;\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)prVar22 & 0xfd) == 5) {\n            set2 = (re_dfa_t *)0x100;\n            dfa = (re_dfa_t *)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            prVar22 = prVar30;\n            break;\n          }\n          if (prVar22 == (re_dfa_t *)0x2) {\n            set2 = (re_dfa_t *)0x100;\n            dfa = (re_dfa_t *)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(prVar30);\n            *(byte *)&prVar6->inveclosures = *(byte *)&prVar6->inveclosures & 0x7f | 0x80;\n            prVar22 = prVar6;\n            break;\n          }\n        }\n      }\n      iStack_1a8 = iStack_1a8 + 1;\n    } while (iStack_1a8 < (int)prVar27->nodes_len);\n  }" if (parenthesized_expression "(0 < (int)prVar27->nodes_len)" ( (binary_expression "0 < (int)prVar27->nodes_len" number_literal < (cast_expression "(int)prVar27->nodes_len" ( (type_descriptor "int" primitive_type) ) (field_expression "prVar27->nodes_len" identifier -> field_identifier))) )) (compound_statement "{\n    iStack_1a8 = 0;\n    do {\n      iVar7 = prVar27->nexts[iStack_1a8];\n      prVar13 = (re_dfa_t *)(iVar7 * 8);\n      pbVar28 = (byte *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset);\n      prVar22 = (re_dfa_t *)(uint)pbVar28[4];\n      dfa = (re_dfa_t *)&DAT_00000001;\n      if (prVar22 == (re_dfa_t *)&DAT_00000001) {\n        uVar35 = (uint)*pbVar28;\n        *(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;\n        if (uVar19 != 0) {\n          if (uVar35 + 0x80 < 0x180) {\n            piVar25 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar35 = *(uint *)(*piVar25 + uVar35 * 4);\n          }\n          *(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;\n        }\n        if (((int)prVar6->nexts << 9 < 0) &&\n           (prVar22 = prVar13, 1 < *(int *)&prVar36[0xb].field_0x4)) {\n          rStack_184.nodes._0_1_ = *(byte *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset);\n          if ((re_bitset_ptr_t)(iVar7 + 1U) < prVar36[1].opr.sbcset) {\n            puVar14 = (undefined1 *)((int)&prVar13->nodes_len + (int)(prVar36->opr).sbcset);\n            pprVar29 = (re_node_set **)&prVar13->org_indices;\n            if ((*(uint *)(puVar14 + 4) & 0xff000400) == 0x1000400) {\n              puVar24 = (undefined1 *)((int)&rStack_184.nodes + 1);\n              do {\n                puVar23 = puVar24 + 1;\n                *puVar24 = *puVar14;\n                if (prVar36[1].opr.sbcset <= puVar23 + (iVar7 - (int)&rStack_184)) break;\n                puVar14 = (undefined1 *)((int)(prVar36->opr).sbcset + (int)pprVar29);\n                pprVar29 = pprVar29 + 2;\n                puVar24 = puVar23;\n              } while ((*(uint *)(puVar14 + 4) & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar23 = (undefined1 *)((int)&rStack_184.nodes + 1);\n            }\n          }\n          else {\n            puVar23 = (undefined1 *)((int)&rStack_184.nodes + 1);\n          }\n          auStack_190._4_4_ = 0;\n          sStack_188 = 0;\n          dfa = &rStack_184;\n          iVar7 = -(int)dfa;\n          prVar22 = (re_dfa_t *)auStack_190;\n          set2 = (re_dfa_t *)(puVar23 + iVar7);\n          prVar13 = (re_dfa_t *)(*(code *)PTR_mbrtowc_004bf2ec)();\n          if ((re_dfa_t *)(puVar23 + iVar7) == prVar13) {\n            dfa = (re_dfa_t *)(*(code *)PTR_towlower_004bf37c)(auStack_190._0_4_);\n            set2 = (re_dfa_t *)(auStack_190 + 4);\n            prVar22 = &rStack_184;\n            iVar7 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar7 != -1) {\n              *(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_) = 1;\n            }\n          }\n        }\n      }\n      else {\n        dfa = (re_dfa_t *)&DAT_00000006;\n        if (prVar22 == (re_dfa_t *)0x3) {\n          iStack_1ac = 0;\n          iVar7 = 0;\n          do {\n            uVar34 = *(uint *)(*(int *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset) +\n                              iStack_1ac);\n            uVar35 = 0;\n            iVar32 = iVar7;\n            do {\n              if (((uVar34 >> (uVar35 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)&prVar30->nodes + iVar32) = 1, uVar19 != 0)) {\n                iVar15 = iVar32;\n                if (iVar32 + 0x80U < 0x180) {\n                  piVar25 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar15 = *(int *)(*piVar25 + (uVar35 + iVar7) * 4);\n                }\n                *(undefined1 *)((int)&prVar30->nodes + iVar15) = 1;\n              }\n              uVar35 = uVar35 + 1;\n              iVar32 = iVar32 + 1;\n            } while (uVar35 != 0x20);\n            iVar7 = iVar7 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar7 != 0x100);\n        }\n        else if (prVar22 == (re_dfa_t *)&DAT_00000006) {\n          piVar25 = *(int **)pbVar28;\n          if ((*(int *)&prVar36[0xb].field_0x4 < 2) ||\n             (((piVar25[9] == 0 && (-1 < *(char *)(piVar25 + 4))) && (piVar25[8] == 0)))) {\n            iVar7 = 0;\n            if (0 < piVar25[5]) {\n              do {\n                auStack_190._4_4_ = 0;\n                sStack_188 = 0;\n                dfa = *(re_dfa_t **)(*piVar25 + iVar7 * 4);\n                prVar22 = &rStack_184;\n                set2 = (re_dfa_t *)(auStack_190 + 4);\n                iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar35 = (uint)rStack_184.nodes._0_1_;\n                if ((iVar32 != -1) &&\n                   (*(undefined1 *)((int)&prVar30->nodes + uVar35) = 1, uVar19 != 0)) {\n                  if (uVar35 + 0x80 < 0x180) {\n                    piVar16 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar35 = *(uint *)(*piVar16 + uVar35 * 4);\n                  }\n                  *(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;\n                }\n                if ((((uint)prVar6->nexts & 0x400000) != 0) && (1 < *(int *)&prVar36[0xb].field_0x4)\n                   ) {\n                  dfa = (re_dfa_t *)\n                        (*(code *)PTR_towlower_004bf37c)(*(undefined4 *)(*piVar25 + iVar7 * 4));\n                  prVar22 = &rStack_184;\n                  set2 = (re_dfa_t *)(auStack_190 + 4);\n                  iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar32 != -1) {\n                    *(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_) = 1;\n                  }\n                }\n                iVar7 = iVar7 + 1;\n              } while (iVar7 < piVar25[5]);\n            }\n          }\n          else {\n            auStack_190._0_4_ = auStack_190._0_4_ & 0xffffff;\n            do {\n              auStack_190._4_4_ = 0;\n              sStack_188 = 0;\n              set2 = (re_dfa_t *)&DAT_00000001;\n              prVar22 = (re_dfa_t *)0x0;\n              dfa = (re_dfa_t *)auStack_190;\n              iVar7 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar7 == -2) {\n                *(undefined1 *)((int)&prVar30->nodes + (uint)auStack_190[0]) = 1;\n              }\n              bVar1 = auStack_190[0] != 0xff;\n              auStack_190[0] = auStack_190[0] + 1;\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)prVar22 & 0xfd) == 5) {\n            set2 = (re_dfa_t *)0x100;\n            dfa = (re_dfa_t *)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            prVar22 = prVar30;\n            break;\n          }\n          if (prVar22 == (re_dfa_t *)0x2) {\n            set2 = (re_dfa_t *)0x100;\n            dfa = (re_dfa_t *)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(prVar30);\n            *(byte *)&prVar6->inveclosures = *(byte *)&prVar6->inveclosures & 0x7f | 0x80;\n            prVar22 = prVar6;\n            break;\n          }\n        }\n      }\n      iStack_1a8 = iStack_1a8 + 1;\n    } while (iStack_1a8 < (int)prVar27->nodes_len);\n  }" { (expression_statement "iStack_1a8 = 0;" (assignment_expression "iStack_1a8 = 0" identifier = number_literal) ;) (do_statement "do {\n      iVar7 = prVar27->nexts[iStack_1a8];\n      prVar13 = (re_dfa_t *)(iVar7 * 8);\n      pbVar28 = (byte *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset);\n      prVar22 = (re_dfa_t *)(uint)pbVar28[4];\n      dfa = (re_dfa_t *)&DAT_00000001;\n      if (prVar22 == (re_dfa_t *)&DAT_00000001) {\n        uVar35 = (uint)*pbVar28;\n        *(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;\n        if (uVar19 != 0) {\n          if (uVar35 + 0x80 < 0x180) {\n            piVar25 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar35 = *(uint *)(*piVar25 + uVar35 * 4);\n          }\n          *(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;\n        }\n        if (((int)prVar6->nexts << 9 < 0) &&\n           (prVar22 = prVar13, 1 < *(int *)&prVar36[0xb].field_0x4)) {\n          rStack_184.nodes._0_1_ = *(byte *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset);\n          if ((re_bitset_ptr_t)(iVar7 + 1U) < prVar36[1].opr.sbcset) {\n            puVar14 = (undefined1 *)((int)&prVar13->nodes_len + (int)(prVar36->opr).sbcset);\n            pprVar29 = (re_node_set **)&prVar13->org_indices;\n            if ((*(uint *)(puVar14 + 4) & 0xff000400) == 0x1000400) {\n              puVar24 = (undefined1 *)((int)&rStack_184.nodes + 1);\n              do {\n                puVar23 = puVar24 + 1;\n                *puVar24 = *puVar14;\n                if (prVar36[1].opr.sbcset <= puVar23 + (iVar7 - (int)&rStack_184)) break;\n                puVar14 = (undefined1 *)((int)(prVar36->opr).sbcset + (int)pprVar29);\n                pprVar29 = pprVar29 + 2;\n                puVar24 = puVar23;\n              } while ((*(uint *)(puVar14 + 4) & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar23 = (undefined1 *)((int)&rStack_184.nodes + 1);\n            }\n          }\n          else {\n            puVar23 = (undefined1 *)((int)&rStack_184.nodes + 1);\n          }\n          auStack_190._4_4_ = 0;\n          sStack_188 = 0;\n          dfa = &rStack_184;\n          iVar7 = -(int)dfa;\n          prVar22 = (re_dfa_t *)auStack_190;\n          set2 = (re_dfa_t *)(puVar23 + iVar7);\n          prVar13 = (re_dfa_t *)(*(code *)PTR_mbrtowc_004bf2ec)();\n          if ((re_dfa_t *)(puVar23 + iVar7) == prVar13) {\n            dfa = (re_dfa_t *)(*(code *)PTR_towlower_004bf37c)(auStack_190._0_4_);\n            set2 = (re_dfa_t *)(auStack_190 + 4);\n            prVar22 = &rStack_184;\n            iVar7 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar7 != -1) {\n              *(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_) = 1;\n            }\n          }\n        }\n      }\n      else {\n        dfa = (re_dfa_t *)&DAT_00000006;\n        if (prVar22 == (re_dfa_t *)0x3) {\n          iStack_1ac = 0;\n          iVar7 = 0;\n          do {\n            uVar34 = *(uint *)(*(int *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset) +\n                              iStack_1ac);\n            uVar35 = 0;\n            iVar32 = iVar7;\n            do {\n              if (((uVar34 >> (uVar35 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)&prVar30->nodes + iVar32) = 1, uVar19 != 0)) {\n                iVar15 = iVar32;\n                if (iVar32 + 0x80U < 0x180) {\n                  piVar25 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar15 = *(int *)(*piVar25 + (uVar35 + iVar7) * 4);\n                }\n                *(undefined1 *)((int)&prVar30->nodes + iVar15) = 1;\n              }\n              uVar35 = uVar35 + 1;\n              iVar32 = iVar32 + 1;\n            } while (uVar35 != 0x20);\n            iVar7 = iVar7 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar7 != 0x100);\n        }\n        else if (prVar22 == (re_dfa_t *)&DAT_00000006) {\n          piVar25 = *(int **)pbVar28;\n          if ((*(int *)&prVar36[0xb].field_0x4 < 2) ||\n             (((piVar25[9] == 0 && (-1 < *(char *)(piVar25 + 4))) && (piVar25[8] == 0)))) {\n            iVar7 = 0;\n            if (0 < piVar25[5]) {\n              do {\n                auStack_190._4_4_ = 0;\n                sStack_188 = 0;\n                dfa = *(re_dfa_t **)(*piVar25 + iVar7 * 4);\n                prVar22 = &rStack_184;\n                set2 = (re_dfa_t *)(auStack_190 + 4);\n                iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar35 = (uint)rStack_184.nodes._0_1_;\n                if ((iVar32 != -1) &&\n                   (*(undefined1 *)((int)&prVar30->nodes + uVar35) = 1, uVar19 != 0)) {\n                  if (uVar35 + 0x80 < 0x180) {\n                    piVar16 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar35 = *(uint *)(*piVar16 + uVar35 * 4);\n                  }\n                  *(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;\n                }\n                if ((((uint)prVar6->nexts & 0x400000) != 0) && (1 < *(int *)&prVar36[0xb].field_0x4)\n                   ) {\n                  dfa = (re_dfa_t *)\n                        (*(code *)PTR_towlower_004bf37c)(*(undefined4 *)(*piVar25 + iVar7 * 4));\n                  prVar22 = &rStack_184;\n                  set2 = (re_dfa_t *)(auStack_190 + 4);\n                  iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar32 != -1) {\n                    *(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_) = 1;\n                  }\n                }\n                iVar7 = iVar7 + 1;\n              } while (iVar7 < piVar25[5]);\n            }\n          }\n          else {\n            auStack_190._0_4_ = auStack_190._0_4_ & 0xffffff;\n            do {\n              auStack_190._4_4_ = 0;\n              sStack_188 = 0;\n              set2 = (re_dfa_t *)&DAT_00000001;\n              prVar22 = (re_dfa_t *)0x0;\n              dfa = (re_dfa_t *)auStack_190;\n              iVar7 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar7 == -2) {\n                *(undefined1 *)((int)&prVar30->nodes + (uint)auStack_190[0]) = 1;\n              }\n              bVar1 = auStack_190[0] != 0xff;\n              auStack_190[0] = auStack_190[0] + 1;\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)prVar22 & 0xfd) == 5) {\n            set2 = (re_dfa_t *)0x100;\n            dfa = (re_dfa_t *)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            prVar22 = prVar30;\n            break;\n          }\n          if (prVar22 == (re_dfa_t *)0x2) {\n            set2 = (re_dfa_t *)0x100;\n            dfa = (re_dfa_t *)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(prVar30);\n            *(byte *)&prVar6->inveclosures = *(byte *)&prVar6->inveclosures & 0x7f | 0x80;\n            prVar22 = prVar6;\n            break;\n          }\n        }\n      }\n      iStack_1a8 = iStack_1a8 + 1;\n    } while (iStack_1a8 < (int)prVar27->nodes_len);" do (compound_statement "{\n      iVar7 = prVar27->nexts[iStack_1a8];\n      prVar13 = (re_dfa_t *)(iVar7 * 8);\n      pbVar28 = (byte *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset);\n      prVar22 = (re_dfa_t *)(uint)pbVar28[4];\n      dfa = (re_dfa_t *)&DAT_00000001;\n      if (prVar22 == (re_dfa_t *)&DAT_00000001) {\n        uVar35 = (uint)*pbVar28;\n        *(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;\n        if (uVar19 != 0) {\n          if (uVar35 + 0x80 < 0x180) {\n            piVar25 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar35 = *(uint *)(*piVar25 + uVar35 * 4);\n          }\n          *(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;\n        }\n        if (((int)prVar6->nexts << 9 < 0) &&\n           (prVar22 = prVar13, 1 < *(int *)&prVar36[0xb].field_0x4)) {\n          rStack_184.nodes._0_1_ = *(byte *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset);\n          if ((re_bitset_ptr_t)(iVar7 + 1U) < prVar36[1].opr.sbcset) {\n            puVar14 = (undefined1 *)((int)&prVar13->nodes_len + (int)(prVar36->opr).sbcset);\n            pprVar29 = (re_node_set **)&prVar13->org_indices;\n            if ((*(uint *)(puVar14 + 4) & 0xff000400) == 0x1000400) {\n              puVar24 = (undefined1 *)((int)&rStack_184.nodes + 1);\n              do {\n                puVar23 = puVar24 + 1;\n                *puVar24 = *puVar14;\n                if (prVar36[1].opr.sbcset <= puVar23 + (iVar7 - (int)&rStack_184)) break;\n                puVar14 = (undefined1 *)((int)(prVar36->opr).sbcset + (int)pprVar29);\n                pprVar29 = pprVar29 + 2;\n                puVar24 = puVar23;\n              } while ((*(uint *)(puVar14 + 4) & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar23 = (undefined1 *)((int)&rStack_184.nodes + 1);\n            }\n          }\n          else {\n            puVar23 = (undefined1 *)((int)&rStack_184.nodes + 1);\n          }\n          auStack_190._4_4_ = 0;\n          sStack_188 = 0;\n          dfa = &rStack_184;\n          iVar7 = -(int)dfa;\n          prVar22 = (re_dfa_t *)auStack_190;\n          set2 = (re_dfa_t *)(puVar23 + iVar7);\n          prVar13 = (re_dfa_t *)(*(code *)PTR_mbrtowc_004bf2ec)();\n          if ((re_dfa_t *)(puVar23 + iVar7) == prVar13) {\n            dfa = (re_dfa_t *)(*(code *)PTR_towlower_004bf37c)(auStack_190._0_4_);\n            set2 = (re_dfa_t *)(auStack_190 + 4);\n            prVar22 = &rStack_184;\n            iVar7 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar7 != -1) {\n              *(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_) = 1;\n            }\n          }\n        }\n      }\n      else {\n        dfa = (re_dfa_t *)&DAT_00000006;\n        if (prVar22 == (re_dfa_t *)0x3) {\n          iStack_1ac = 0;\n          iVar7 = 0;\n          do {\n            uVar34 = *(uint *)(*(int *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset) +\n                              iStack_1ac);\n            uVar35 = 0;\n            iVar32 = iVar7;\n            do {\n              if (((uVar34 >> (uVar35 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)&prVar30->nodes + iVar32) = 1, uVar19 != 0)) {\n                iVar15 = iVar32;\n                if (iVar32 + 0x80U < 0x180) {\n                  piVar25 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar15 = *(int *)(*piVar25 + (uVar35 + iVar7) * 4);\n                }\n                *(undefined1 *)((int)&prVar30->nodes + iVar15) = 1;\n              }\n              uVar35 = uVar35 + 1;\n              iVar32 = iVar32 + 1;\n            } while (uVar35 != 0x20);\n            iVar7 = iVar7 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar7 != 0x100);\n        }\n        else if (prVar22 == (re_dfa_t *)&DAT_00000006) {\n          piVar25 = *(int **)pbVar28;\n          if ((*(int *)&prVar36[0xb].field_0x4 < 2) ||\n             (((piVar25[9] == 0 && (-1 < *(char *)(piVar25 + 4))) && (piVar25[8] == 0)))) {\n            iVar7 = 0;\n            if (0 < piVar25[5]) {\n              do {\n                auStack_190._4_4_ = 0;\n                sStack_188 = 0;\n                dfa = *(re_dfa_t **)(*piVar25 + iVar7 * 4);\n                prVar22 = &rStack_184;\n                set2 = (re_dfa_t *)(auStack_190 + 4);\n                iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar35 = (uint)rStack_184.nodes._0_1_;\n                if ((iVar32 != -1) &&\n                   (*(undefined1 *)((int)&prVar30->nodes + uVar35) = 1, uVar19 != 0)) {\n                  if (uVar35 + 0x80 < 0x180) {\n                    piVar16 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar35 = *(uint *)(*piVar16 + uVar35 * 4);\n                  }\n                  *(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;\n                }\n                if ((((uint)prVar6->nexts & 0x400000) != 0) && (1 < *(int *)&prVar36[0xb].field_0x4)\n                   ) {\n                  dfa = (re_dfa_t *)\n                        (*(code *)PTR_towlower_004bf37c)(*(undefined4 *)(*piVar25 + iVar7 * 4));\n                  prVar22 = &rStack_184;\n                  set2 = (re_dfa_t *)(auStack_190 + 4);\n                  iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar32 != -1) {\n                    *(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_) = 1;\n                  }\n                }\n                iVar7 = iVar7 + 1;\n              } while (iVar7 < piVar25[5]);\n            }\n          }\n          else {\n            auStack_190._0_4_ = auStack_190._0_4_ & 0xffffff;\n            do {\n              auStack_190._4_4_ = 0;\n              sStack_188 = 0;\n              set2 = (re_dfa_t *)&DAT_00000001;\n              prVar22 = (re_dfa_t *)0x0;\n              dfa = (re_dfa_t *)auStack_190;\n              iVar7 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar7 == -2) {\n                *(undefined1 *)((int)&prVar30->nodes + (uint)auStack_190[0]) = 1;\n              }\n              bVar1 = auStack_190[0] != 0xff;\n              auStack_190[0] = auStack_190[0] + 1;\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)prVar22 & 0xfd) == 5) {\n            set2 = (re_dfa_t *)0x100;\n            dfa = (re_dfa_t *)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            prVar22 = prVar30;\n            break;\n          }\n          if (prVar22 == (re_dfa_t *)0x2) {\n            set2 = (re_dfa_t *)0x100;\n            dfa = (re_dfa_t *)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(prVar30);\n            *(byte *)&prVar6->inveclosures = *(byte *)&prVar6->inveclosures & 0x7f | 0x80;\n            prVar22 = prVar6;\n            break;\n          }\n        }\n      }\n      iStack_1a8 = iStack_1a8 + 1;\n    }" { (expression_statement "iVar7 = prVar27->nexts[iStack_1a8];" (assignment_expression "iVar7 = prVar27->nexts[iStack_1a8]" identifier = (subscript_expression "prVar27->nexts[iStack_1a8]" (field_expression "prVar27->nexts" identifier -> field_identifier) [ identifier ])) ;) (expression_statement "prVar13 = (re_dfa_t *)(iVar7 * 8);" (assignment_expression "prVar13 = (re_dfa_t *)(iVar7 * 8)" identifier = (cast_expression "(re_dfa_t *)(iVar7 * 8)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 * 8)" ( (binary_expression "iVar7 * 8" identifier * number_literal) )))) ;) (expression_statement "pbVar28 = (byte *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset);" (assignment_expression "pbVar28 = (byte *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset)" identifier = (cast_expression "(byte *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar13->nodes + (int)(prVar36->opr).sbcset)" ( (binary_expression "(int)&prVar13->nodes + (int)(prVar36->opr).sbcset" (cast_expression "(int)&prVar13->nodes" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar13->nodes" & (field_expression "prVar13->nodes" identifier -> field_identifier))) + (cast_expression "(int)(prVar36->opr).sbcset" ( (type_descriptor "int" primitive_type) ) (field_expression "(prVar36->opr).sbcset" (parenthesized_expression "(prVar36->opr)" ( (field_expression "prVar36->opr" identifier -> field_identifier) )) . field_identifier))) )))) ;) (expression_statement "prVar22 = (re_dfa_t *)(uint)pbVar28[4];" (assignment_expression "prVar22 = (re_dfa_t *)(uint)pbVar28[4]" identifier = (cast_expression "(re_dfa_t *)(uint)pbVar28[4]" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)pbVar28[4]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar28[4]" identifier [ number_literal ])))) ;) (expression_statement "dfa = (re_dfa_t *)&DAT_00000001;" (assignment_expression "dfa = (re_dfa_t *)&DAT_00000001" identifier = (cast_expression "(re_dfa_t *)&DAT_00000001" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000001" & identifier))) ;) (if_statement "if (prVar22 == (re_dfa_t *)&DAT_00000001) {\n        uVar35 = (uint)*pbVar28;\n        *(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;\n        if (uVar19 != 0) {\n          if (uVar35 + 0x80 < 0x180) {\n            piVar25 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar35 = *(uint *)(*piVar25 + uVar35 * 4);\n          }\n          *(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;\n        }\n        if (((int)prVar6->nexts << 9 < 0) &&\n           (prVar22 = prVar13, 1 < *(int *)&prVar36[0xb].field_0x4)) {\n          rStack_184.nodes._0_1_ = *(byte *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset);\n          if ((re_bitset_ptr_t)(iVar7 + 1U) < prVar36[1].opr.sbcset) {\n            puVar14 = (undefined1 *)((int)&prVar13->nodes_len + (int)(prVar36->opr).sbcset);\n            pprVar29 = (re_node_set **)&prVar13->org_indices;\n            if ((*(uint *)(puVar14 + 4) & 0xff000400) == 0x1000400) {\n              puVar24 = (undefined1 *)((int)&rStack_184.nodes + 1);\n              do {\n                puVar23 = puVar24 + 1;\n                *puVar24 = *puVar14;\n                if (prVar36[1].opr.sbcset <= puVar23 + (iVar7 - (int)&rStack_184)) break;\n                puVar14 = (undefined1 *)((int)(prVar36->opr).sbcset + (int)pprVar29);\n                pprVar29 = pprVar29 + 2;\n                puVar24 = puVar23;\n              } while ((*(uint *)(puVar14 + 4) & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar23 = (undefined1 *)((int)&rStack_184.nodes + 1);\n            }\n          }\n          else {\n            puVar23 = (undefined1 *)((int)&rStack_184.nodes + 1);\n          }\n          auStack_190._4_4_ = 0;\n          sStack_188 = 0;\n          dfa = &rStack_184;\n          iVar7 = -(int)dfa;\n          prVar22 = (re_dfa_t *)auStack_190;\n          set2 = (re_dfa_t *)(puVar23 + iVar7);\n          prVar13 = (re_dfa_t *)(*(code *)PTR_mbrtowc_004bf2ec)();\n          if ((re_dfa_t *)(puVar23 + iVar7) == prVar13) {\n            dfa = (re_dfa_t *)(*(code *)PTR_towlower_004bf37c)(auStack_190._0_4_);\n            set2 = (re_dfa_t *)(auStack_190 + 4);\n            prVar22 = &rStack_184;\n            iVar7 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar7 != -1) {\n              *(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_) = 1;\n            }\n          }\n        }\n      }\n      else {\n        dfa = (re_dfa_t *)&DAT_00000006;\n        if (prVar22 == (re_dfa_t *)0x3) {\n          iStack_1ac = 0;\n          iVar7 = 0;\n          do {\n            uVar34 = *(uint *)(*(int *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset) +\n                              iStack_1ac);\n            uVar35 = 0;\n            iVar32 = iVar7;\n            do {\n              if (((uVar34 >> (uVar35 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)&prVar30->nodes + iVar32) = 1, uVar19 != 0)) {\n                iVar15 = iVar32;\n                if (iVar32 + 0x80U < 0x180) {\n                  piVar25 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar15 = *(int *)(*piVar25 + (uVar35 + iVar7) * 4);\n                }\n                *(undefined1 *)((int)&prVar30->nodes + iVar15) = 1;\n              }\n              uVar35 = uVar35 + 1;\n              iVar32 = iVar32 + 1;\n            } while (uVar35 != 0x20);\n            iVar7 = iVar7 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar7 != 0x100);\n        }\n        else if (prVar22 == (re_dfa_t *)&DAT_00000006) {\n          piVar25 = *(int **)pbVar28;\n          if ((*(int *)&prVar36[0xb].field_0x4 < 2) ||\n             (((piVar25[9] == 0 && (-1 < *(char *)(piVar25 + 4))) && (piVar25[8] == 0)))) {\n            iVar7 = 0;\n            if (0 < piVar25[5]) {\n              do {\n                auStack_190._4_4_ = 0;\n                sStack_188 = 0;\n                dfa = *(re_dfa_t **)(*piVar25 + iVar7 * 4);\n                prVar22 = &rStack_184;\n                set2 = (re_dfa_t *)(auStack_190 + 4);\n                iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar35 = (uint)rStack_184.nodes._0_1_;\n                if ((iVar32 != -1) &&\n                   (*(undefined1 *)((int)&prVar30->nodes + uVar35) = 1, uVar19 != 0)) {\n                  if (uVar35 + 0x80 < 0x180) {\n                    piVar16 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar35 = *(uint *)(*piVar16 + uVar35 * 4);\n                  }\n                  *(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;\n                }\n                if ((((uint)prVar6->nexts & 0x400000) != 0) && (1 < *(int *)&prVar36[0xb].field_0x4)\n                   ) {\n                  dfa = (re_dfa_t *)\n                        (*(code *)PTR_towlower_004bf37c)(*(undefined4 *)(*piVar25 + iVar7 * 4));\n                  prVar22 = &rStack_184;\n                  set2 = (re_dfa_t *)(auStack_190 + 4);\n                  iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar32 != -1) {\n                    *(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_) = 1;\n                  }\n                }\n                iVar7 = iVar7 + 1;\n              } while (iVar7 < piVar25[5]);\n            }\n          }\n          else {\n            auStack_190._0_4_ = auStack_190._0_4_ & 0xffffff;\n            do {\n              auStack_190._4_4_ = 0;\n              sStack_188 = 0;\n              set2 = (re_dfa_t *)&DAT_00000001;\n              prVar22 = (re_dfa_t *)0x0;\n              dfa = (re_dfa_t *)auStack_190;\n              iVar7 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar7 == -2) {\n                *(undefined1 *)((int)&prVar30->nodes + (uint)auStack_190[0]) = 1;\n              }\n              bVar1 = auStack_190[0] != 0xff;\n              auStack_190[0] = auStack_190[0] + 1;\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)prVar22 & 0xfd) == 5) {\n            set2 = (re_dfa_t *)0x100;\n            dfa = (re_dfa_t *)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            prVar22 = prVar30;\n            break;\n          }\n          if (prVar22 == (re_dfa_t *)0x2) {\n            set2 = (re_dfa_t *)0x100;\n            dfa = (re_dfa_t *)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(prVar30);\n            *(byte *)&prVar6->inveclosures = *(byte *)&prVar6->inveclosures & 0x7f | 0x80;\n            prVar22 = prVar6;\n            break;\n          }\n        }\n      }" if (parenthesized_expression "(prVar22 == (re_dfa_t *)&DAT_00000001)" ( (binary_expression "prVar22 == (re_dfa_t *)&DAT_00000001" identifier == (cast_expression "(re_dfa_t *)&DAT_00000001" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000001" & identifier))) )) (compound_statement "{\n        uVar35 = (uint)*pbVar28;\n        *(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;\n        if (uVar19 != 0) {\n          if (uVar35 + 0x80 < 0x180) {\n            piVar25 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar35 = *(uint *)(*piVar25 + uVar35 * 4);\n          }\n          *(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;\n        }\n        if (((int)prVar6->nexts << 9 < 0) &&\n           (prVar22 = prVar13, 1 < *(int *)&prVar36[0xb].field_0x4)) {\n          rStack_184.nodes._0_1_ = *(byte *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset);\n          if ((re_bitset_ptr_t)(iVar7 + 1U) < prVar36[1].opr.sbcset) {\n            puVar14 = (undefined1 *)((int)&prVar13->nodes_len + (int)(prVar36->opr).sbcset);\n            pprVar29 = (re_node_set **)&prVar13->org_indices;\n            if ((*(uint *)(puVar14 + 4) & 0xff000400) == 0x1000400) {\n              puVar24 = (undefined1 *)((int)&rStack_184.nodes + 1);\n              do {\n                puVar23 = puVar24 + 1;\n                *puVar24 = *puVar14;\n                if (prVar36[1].opr.sbcset <= puVar23 + (iVar7 - (int)&rStack_184)) break;\n                puVar14 = (undefined1 *)((int)(prVar36->opr).sbcset + (int)pprVar29);\n                pprVar29 = pprVar29 + 2;\n                puVar24 = puVar23;\n              } while ((*(uint *)(puVar14 + 4) & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar23 = (undefined1 *)((int)&rStack_184.nodes + 1);\n            }\n          }\n          else {\n            puVar23 = (undefined1 *)((int)&rStack_184.nodes + 1);\n          }\n          auStack_190._4_4_ = 0;\n          sStack_188 = 0;\n          dfa = &rStack_184;\n          iVar7 = -(int)dfa;\n          prVar22 = (re_dfa_t *)auStack_190;\n          set2 = (re_dfa_t *)(puVar23 + iVar7);\n          prVar13 = (re_dfa_t *)(*(code *)PTR_mbrtowc_004bf2ec)();\n          if ((re_dfa_t *)(puVar23 + iVar7) == prVar13) {\n            dfa = (re_dfa_t *)(*(code *)PTR_towlower_004bf37c)(auStack_190._0_4_);\n            set2 = (re_dfa_t *)(auStack_190 + 4);\n            prVar22 = &rStack_184;\n            iVar7 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar7 != -1) {\n              *(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_) = 1;\n            }\n          }\n        }\n      }" { (expression_statement "uVar35 = (uint)*pbVar28;" (assignment_expression "uVar35 = (uint)*pbVar28" identifier = (binary_expression "(uint)*pbVar28" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "*(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;" (assignment_expression "*(undefined1 *)((int)&prVar30->nodes + uVar35) = 1" (pointer_expression "*(undefined1 *)((int)&prVar30->nodes + uVar35)" * (cast_expression "(undefined1 *)((int)&prVar30->nodes + uVar35)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar30->nodes + uVar35)" ( (binary_expression "(int)&prVar30->nodes + uVar35" (cast_expression "(int)&prVar30->nodes" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar30->nodes" & (field_expression "prVar30->nodes" identifier -> field_identifier))) + identifier) )))) = number_literal) ;) (if_statement "if (uVar19 != 0) {\n          if (uVar35 + 0x80 < 0x180) {\n            piVar25 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar35 = *(uint *)(*piVar25 + uVar35 * 4);\n          }\n          *(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;\n        }" if (parenthesized_expression "(uVar19 != 0)" ( (binary_expression "uVar19 != 0" identifier != number_literal) )) (compound_statement "{\n          if (uVar35 + 0x80 < 0x180) {\n            piVar25 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar35 = *(uint *)(*piVar25 + uVar35 * 4);\n          }\n          *(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;\n        }" { (if_statement "if (uVar35 + 0x80 < 0x180) {\n            piVar25 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar35 = *(uint *)(*piVar25 + uVar35 * 4);\n          }" if (parenthesized_expression "(uVar35 + 0x80 < 0x180)" ( (binary_expression "uVar35 + 0x80 < 0x180" (binary_expression "uVar35 + 0x80" identifier + number_literal) < number_literal) )) (compound_statement "{\n            piVar25 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar35 = *(uint *)(*piVar25 + uVar35 * 4);\n          }" { (expression_statement "piVar25 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();" (assignment_expression "piVar25 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_tolower_loc_004bf16c)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_004bf16c)" ( (pointer_expression "*(code *)PTR___ctype_tolower_loc_004bf16c" * (cast_expression "(code *)PTR___ctype_tolower_loc_004bf16c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar35 = *(uint *)(*piVar25 + uVar35 * 4);" (assignment_expression "uVar35 = *(uint *)(*piVar25 + uVar35 * 4)" identifier = (pointer_expression "*(uint *)(*piVar25 + uVar35 * 4)" * (cast_expression "(uint *)(*piVar25 + uVar35 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar25 + uVar35 * 4)" ( (binary_expression "*piVar25 + uVar35 * 4" (pointer_expression "*piVar25" * identifier) + (binary_expression "uVar35 * 4" identifier * number_literal)) ))))) ;) })) (expression_statement "*(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;" (assignment_expression "*(undefined1 *)((int)&prVar30->nodes + uVar35) = 1" (pointer_expression "*(undefined1 *)((int)&prVar30->nodes + uVar35)" * (cast_expression "(undefined1 *)((int)&prVar30->nodes + uVar35)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar30->nodes + uVar35)" ( (binary_expression "(int)&prVar30->nodes + uVar35" (cast_expression "(int)&prVar30->nodes" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar30->nodes" & (field_expression "prVar30->nodes" identifier -> field_identifier))) + identifier) )))) = number_literal) ;) })) (if_statement "if (((int)prVar6->nexts << 9 < 0) &&\n           (prVar22 = prVar13, 1 < *(int *)&prVar36[0xb].field_0x4)) {\n          rStack_184.nodes._0_1_ = *(byte *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset);\n          if ((re_bitset_ptr_t)(iVar7 + 1U) < prVar36[1].opr.sbcset) {\n            puVar14 = (undefined1 *)((int)&prVar13->nodes_len + (int)(prVar36->opr).sbcset);\n            pprVar29 = (re_node_set **)&prVar13->org_indices;\n            if ((*(uint *)(puVar14 + 4) & 0xff000400) == 0x1000400) {\n              puVar24 = (undefined1 *)((int)&rStack_184.nodes + 1);\n              do {\n                puVar23 = puVar24 + 1;\n                *puVar24 = *puVar14;\n                if (prVar36[1].opr.sbcset <= puVar23 + (iVar7 - (int)&rStack_184)) break;\n                puVar14 = (undefined1 *)((int)(prVar36->opr).sbcset + (int)pprVar29);\n                pprVar29 = pprVar29 + 2;\n                puVar24 = puVar23;\n              } while ((*(uint *)(puVar14 + 4) & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar23 = (undefined1 *)((int)&rStack_184.nodes + 1);\n            }\n          }\n          else {\n            puVar23 = (undefined1 *)((int)&rStack_184.nodes + 1);\n          }\n          auStack_190._4_4_ = 0;\n          sStack_188 = 0;\n          dfa = &rStack_184;\n          iVar7 = -(int)dfa;\n          prVar22 = (re_dfa_t *)auStack_190;\n          set2 = (re_dfa_t *)(puVar23 + iVar7);\n          prVar13 = (re_dfa_t *)(*(code *)PTR_mbrtowc_004bf2ec)();\n          if ((re_dfa_t *)(puVar23 + iVar7) == prVar13) {\n            dfa = (re_dfa_t *)(*(code *)PTR_towlower_004bf37c)(auStack_190._0_4_);\n            set2 = (re_dfa_t *)(auStack_190 + 4);\n            prVar22 = &rStack_184;\n            iVar7 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar7 != -1) {\n              *(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_) = 1;\n            }\n          }\n        }" if (parenthesized_expression "(((int)prVar6->nexts << 9 < 0) &&\n           (prVar22 = prVar13, 1 < *(int *)&prVar36[0xb].field_0x4))" ( (binary_expression "((int)prVar6->nexts << 9 < 0) &&\n           (prVar22 = prVar13, 1 < *(int *)&prVar36[0xb].field_0x4)" (parenthesized_expression "((int)prVar6->nexts << 9 < 0)" ( (binary_expression "(int)prVar6->nexts << 9 < 0" (binary_expression "(int)prVar6->nexts << 9" (cast_expression "(int)prVar6->nexts" ( (type_descriptor "int" primitive_type) ) (field_expression "prVar6->nexts" identifier -> field_identifier)) << number_literal) < number_literal) )) && (parenthesized_expression "(prVar22 = prVar13, 1 < *(int *)&prVar36[0xb].field_0x4)" ( (comma_expression "prVar22 = prVar13, 1 < *(int *)&prVar36[0xb].field_0x4" (assignment_expression "prVar22 = prVar13" identifier = identifier) , (binary_expression "1 < *(int *)&prVar36[0xb].field_0x4" number_literal < (pointer_expression "*(int *)&prVar36[0xb].field_0x4" * (cast_expression "(int *)&prVar36[0xb].field_0x4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar36[0xb].field_0x4" & (field_expression "prVar36[0xb].field_0x4" (subscript_expression "prVar36[0xb]" identifier [ number_literal ]) . field_identifier)))))) ))) )) (compound_statement "{\n          rStack_184.nodes._0_1_ = *(byte *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset);\n          if ((re_bitset_ptr_t)(iVar7 + 1U) < prVar36[1].opr.sbcset) {\n            puVar14 = (undefined1 *)((int)&prVar13->nodes_len + (int)(prVar36->opr).sbcset);\n            pprVar29 = (re_node_set **)&prVar13->org_indices;\n            if ((*(uint *)(puVar14 + 4) & 0xff000400) == 0x1000400) {\n              puVar24 = (undefined1 *)((int)&rStack_184.nodes + 1);\n              do {\n                puVar23 = puVar24 + 1;\n                *puVar24 = *puVar14;\n                if (prVar36[1].opr.sbcset <= puVar23 + (iVar7 - (int)&rStack_184)) break;\n                puVar14 = (undefined1 *)((int)(prVar36->opr).sbcset + (int)pprVar29);\n                pprVar29 = pprVar29 + 2;\n                puVar24 = puVar23;\n              } while ((*(uint *)(puVar14 + 4) & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar23 = (undefined1 *)((int)&rStack_184.nodes + 1);\n            }\n          }\n          else {\n            puVar23 = (undefined1 *)((int)&rStack_184.nodes + 1);\n          }\n          auStack_190._4_4_ = 0;\n          sStack_188 = 0;\n          dfa = &rStack_184;\n          iVar7 = -(int)dfa;\n          prVar22 = (re_dfa_t *)auStack_190;\n          set2 = (re_dfa_t *)(puVar23 + iVar7);\n          prVar13 = (re_dfa_t *)(*(code *)PTR_mbrtowc_004bf2ec)();\n          if ((re_dfa_t *)(puVar23 + iVar7) == prVar13) {\n            dfa = (re_dfa_t *)(*(code *)PTR_towlower_004bf37c)(auStack_190._0_4_);\n            set2 = (re_dfa_t *)(auStack_190 + 4);\n            prVar22 = &rStack_184;\n            iVar7 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar7 != -1) {\n              *(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_) = 1;\n            }\n          }\n        }" { (expression_statement "rStack_184.nodes._0_1_ = *(byte *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset);" (assignment_expression "rStack_184.nodes._0_1_ = *(byte *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset)" (field_expression "rStack_184.nodes._0_1_" (field_expression "rStack_184.nodes" identifier . field_identifier) . field_identifier) = (pointer_expression "*(byte *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset)" * (cast_expression "(byte *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar13->nodes + (int)(prVar36->opr).sbcset)" ( (binary_expression "(int)&prVar13->nodes + (int)(prVar36->opr).sbcset" (cast_expression "(int)&prVar13->nodes" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar13->nodes" & (field_expression "prVar13->nodes" identifier -> field_identifier))) + (cast_expression "(int)(prVar36->opr).sbcset" ( (type_descriptor "int" primitive_type) ) (field_expression "(prVar36->opr).sbcset" (parenthesized_expression "(prVar36->opr)" ( (field_expression "prVar36->opr" identifier -> field_identifier) )) . field_identifier))) ))))) ;) (if_statement "if ((re_bitset_ptr_t)(iVar7 + 1U) < prVar36[1].opr.sbcset) {\n            puVar14 = (undefined1 *)((int)&prVar13->nodes_len + (int)(prVar36->opr).sbcset);\n            pprVar29 = (re_node_set **)&prVar13->org_indices;\n            if ((*(uint *)(puVar14 + 4) & 0xff000400) == 0x1000400) {\n              puVar24 = (undefined1 *)((int)&rStack_184.nodes + 1);\n              do {\n                puVar23 = puVar24 + 1;\n                *puVar24 = *puVar14;\n                if (prVar36[1].opr.sbcset <= puVar23 + (iVar7 - (int)&rStack_184)) break;\n                puVar14 = (undefined1 *)((int)(prVar36->opr).sbcset + (int)pprVar29);\n                pprVar29 = pprVar29 + 2;\n                puVar24 = puVar23;\n              } while ((*(uint *)(puVar14 + 4) & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar23 = (undefined1 *)((int)&rStack_184.nodes + 1);\n            }\n          }\n          else {\n            puVar23 = (undefined1 *)((int)&rStack_184.nodes + 1);\n          }" if (parenthesized_expression "((re_bitset_ptr_t)(iVar7 + 1U) < prVar36[1].opr.sbcset)" ( (binary_expression "(re_bitset_ptr_t)(iVar7 + 1U) < prVar36[1].opr.sbcset" (call_expression "(re_bitset_ptr_t)(iVar7 + 1U)" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) (argument_list "(iVar7 + 1U)" ( (binary_expression "iVar7 + 1U" identifier + number_literal) ))) < (field_expression "prVar36[1].opr.sbcset" (field_expression "prVar36[1].opr" (subscript_expression "prVar36[1]" identifier [ number_literal ]) . field_identifier) . field_identifier)) )) (compound_statement "{\n            puVar14 = (undefined1 *)((int)&prVar13->nodes_len + (int)(prVar36->opr).sbcset);\n            pprVar29 = (re_node_set **)&prVar13->org_indices;\n            if ((*(uint *)(puVar14 + 4) & 0xff000400) == 0x1000400) {\n              puVar24 = (undefined1 *)((int)&rStack_184.nodes + 1);\n              do {\n                puVar23 = puVar24 + 1;\n                *puVar24 = *puVar14;\n                if (prVar36[1].opr.sbcset <= puVar23 + (iVar7 - (int)&rStack_184)) break;\n                puVar14 = (undefined1 *)((int)(prVar36->opr).sbcset + (int)pprVar29);\n                pprVar29 = pprVar29 + 2;\n                puVar24 = puVar23;\n              } while ((*(uint *)(puVar14 + 4) & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar23 = (undefined1 *)((int)&rStack_184.nodes + 1);\n            }\n          }" { (expression_statement "puVar14 = (undefined1 *)((int)&prVar13->nodes_len + (int)(prVar36->opr).sbcset);" (assignment_expression "puVar14 = (undefined1 *)((int)&prVar13->nodes_len + (int)(prVar36->opr).sbcset)" identifier = (cast_expression "(undefined1 *)((int)&prVar13->nodes_len + (int)(prVar36->opr).sbcset)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar13->nodes_len + (int)(prVar36->opr).sbcset)" ( (binary_expression "(int)&prVar13->nodes_len + (int)(prVar36->opr).sbcset" (cast_expression "(int)&prVar13->nodes_len" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar13->nodes_len" & (field_expression "prVar13->nodes_len" identifier -> field_identifier))) + (cast_expression "(int)(prVar36->opr).sbcset" ( (type_descriptor "int" primitive_type) ) (field_expression "(prVar36->opr).sbcset" (parenthesized_expression "(prVar36->opr)" ( (field_expression "prVar36->opr" identifier -> field_identifier) )) . field_identifier))) )))) ;) (expression_statement "pprVar29 = (re_node_set **)&prVar13->org_indices;" (assignment_expression "pprVar29 = (re_node_set **)&prVar13->org_indices" identifier = (cast_expression "(re_node_set **)&prVar13->org_indices" ( (type_descriptor "re_node_set **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&prVar13->org_indices" & (field_expression "prVar13->org_indices" identifier -> field_identifier)))) ;) (if_statement "if ((*(uint *)(puVar14 + 4) & 0xff000400) == 0x1000400) {\n              puVar24 = (undefined1 *)((int)&rStack_184.nodes + 1);\n              do {\n                puVar23 = puVar24 + 1;\n                *puVar24 = *puVar14;\n                if (prVar36[1].opr.sbcset <= puVar23 + (iVar7 - (int)&rStack_184)) break;\n                puVar14 = (undefined1 *)((int)(prVar36->opr).sbcset + (int)pprVar29);\n                pprVar29 = pprVar29 + 2;\n                puVar24 = puVar23;\n              } while ((*(uint *)(puVar14 + 4) & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar23 = (undefined1 *)((int)&rStack_184.nodes + 1);\n            }" if (parenthesized_expression "((*(uint *)(puVar14 + 4) & 0xff000400) == 0x1000400)" ( (binary_expression "(*(uint *)(puVar14 + 4) & 0xff000400) == 0x1000400" (parenthesized_expression "(*(uint *)(puVar14 + 4) & 0xff000400)" ( (binary_expression "*(uint *)(puVar14 + 4) & 0xff000400" (pointer_expression "*(uint *)(puVar14 + 4)" * (cast_expression "(uint *)(puVar14 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 4)" ( (binary_expression "puVar14 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n              puVar24 = (undefined1 *)((int)&rStack_184.nodes + 1);\n              do {\n                puVar23 = puVar24 + 1;\n                *puVar24 = *puVar14;\n                if (prVar36[1].opr.sbcset <= puVar23 + (iVar7 - (int)&rStack_184)) break;\n                puVar14 = (undefined1 *)((int)(prVar36->opr).sbcset + (int)pprVar29);\n                pprVar29 = pprVar29 + 2;\n                puVar24 = puVar23;\n              } while ((*(uint *)(puVar14 + 4) & 0xff000400) == 0x1000400);\n            }" { (expression_statement "puVar24 = (undefined1 *)((int)&rStack_184.nodes + 1);" (assignment_expression "puVar24 = (undefined1 *)((int)&rStack_184.nodes + 1)" identifier = (cast_expression "(undefined1 *)((int)&rStack_184.nodes + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&rStack_184.nodes + 1)" ( (binary_expression "(int)&rStack_184.nodes + 1" (cast_expression "(int)&rStack_184.nodes" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&rStack_184.nodes" & (field_expression "rStack_184.nodes" identifier . field_identifier))) + number_literal) )))) ;) (do_statement "do {\n                puVar23 = puVar24 + 1;\n                *puVar24 = *puVar14;\n                if (prVar36[1].opr.sbcset <= puVar23 + (iVar7 - (int)&rStack_184)) break;\n                puVar14 = (undefined1 *)((int)(prVar36->opr).sbcset + (int)pprVar29);\n                pprVar29 = pprVar29 + 2;\n                puVar24 = puVar23;\n              } while ((*(uint *)(puVar14 + 4) & 0xff000400) == 0x1000400);" do (compound_statement "{\n                puVar23 = puVar24 + 1;\n                *puVar24 = *puVar14;\n                if (prVar36[1].opr.sbcset <= puVar23 + (iVar7 - (int)&rStack_184)) break;\n                puVar14 = (undefined1 *)((int)(prVar36->opr).sbcset + (int)pprVar29);\n                pprVar29 = pprVar29 + 2;\n                puVar24 = puVar23;\n              }" { (expression_statement "puVar23 = puVar24 + 1;" (assignment_expression "puVar23 = puVar24 + 1" identifier = (binary_expression "puVar24 + 1" identifier + number_literal)) ;) (expression_statement "*puVar24 = *puVar14;" (assignment_expression "*puVar24 = *puVar14" (pointer_expression "*puVar24" * identifier) = (pointer_expression "*puVar14" * identifier)) ;) (if_statement "if (prVar36[1].opr.sbcset <= puVar23 + (iVar7 - (int)&rStack_184)) break;" if (parenthesized_expression "(prVar36[1].opr.sbcset <= puVar23 + (iVar7 - (int)&rStack_184))" ( (binary_expression "prVar36[1].opr.sbcset <= puVar23 + (iVar7 - (int)&rStack_184)" (field_expression "prVar36[1].opr.sbcset" (field_expression "prVar36[1].opr" (subscript_expression "prVar36[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) <= (binary_expression "puVar23 + (iVar7 - (int)&rStack_184)" identifier + (parenthesized_expression "(iVar7 - (int)&rStack_184)" ( (binary_expression "iVar7 - (int)&rStack_184" identifier - (cast_expression "(int)&rStack_184" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&rStack_184" & identifier))) )))) )) (break_statement "break;" break ;)) (expression_statement "puVar14 = (undefined1 *)((int)(prVar36->opr).sbcset + (int)pprVar29);" (assignment_expression "puVar14 = (undefined1 *)((int)(prVar36->opr).sbcset + (int)pprVar29)" identifier = (cast_expression "(undefined1 *)((int)(prVar36->opr).sbcset + (int)pprVar29)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(prVar36->opr).sbcset + (int)pprVar29)" ( (binary_expression "(int)(prVar36->opr).sbcset + (int)pprVar29" (cast_expression "(int)(prVar36->opr).sbcset" ( (type_descriptor "int" primitive_type) ) (field_expression "(prVar36->opr).sbcset" (parenthesized_expression "(prVar36->opr)" ( (field_expression "prVar36->opr" identifier -> field_identifier) )) . field_identifier)) + (cast_expression "(int)pprVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pprVar29 = pprVar29 + 2;" (assignment_expression "pprVar29 = pprVar29 + 2" identifier = (binary_expression "pprVar29 + 2" identifier + number_literal)) ;) (expression_statement "puVar24 = puVar23;" (assignment_expression "puVar24 = puVar23" identifier = identifier) ;) }) while (parenthesized_expression "((*(uint *)(puVar14 + 4) & 0xff000400) == 0x1000400)" ( (binary_expression "(*(uint *)(puVar14 + 4) & 0xff000400) == 0x1000400" (parenthesized_expression "(*(uint *)(puVar14 + 4) & 0xff000400)" ( (binary_expression "*(uint *)(puVar14 + 4) & 0xff000400" (pointer_expression "*(uint *)(puVar14 + 4)" * (cast_expression "(uint *)(puVar14 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 4)" ( (binary_expression "puVar14 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) ;) }) (else_clause "else {\n              puVar23 = (undefined1 *)((int)&rStack_184.nodes + 1);\n            }" else (compound_statement "{\n              puVar23 = (undefined1 *)((int)&rStack_184.nodes + 1);\n            }" { (expression_statement "puVar23 = (undefined1 *)((int)&rStack_184.nodes + 1);" (assignment_expression "puVar23 = (undefined1 *)((int)&rStack_184.nodes + 1)" identifier = (cast_expression "(undefined1 *)((int)&rStack_184.nodes + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&rStack_184.nodes + 1)" ( (binary_expression "(int)&rStack_184.nodes + 1" (cast_expression "(int)&rStack_184.nodes" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&rStack_184.nodes" & (field_expression "rStack_184.nodes" identifier . field_identifier))) + number_literal) )))) ;) }))) }) (else_clause "else {\n            puVar23 = (undefined1 *)((int)&rStack_184.nodes + 1);\n          }" else (compound_statement "{\n            puVar23 = (undefined1 *)((int)&rStack_184.nodes + 1);\n          }" { (expression_statement "puVar23 = (undefined1 *)((int)&rStack_184.nodes + 1);" (assignment_expression "puVar23 = (undefined1 *)((int)&rStack_184.nodes + 1)" identifier = (cast_expression "(undefined1 *)((int)&rStack_184.nodes + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&rStack_184.nodes + 1)" ( (binary_expression "(int)&rStack_184.nodes + 1" (cast_expression "(int)&rStack_184.nodes" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&rStack_184.nodes" & (field_expression "rStack_184.nodes" identifier . field_identifier))) + number_literal) )))) ;) }))) (expression_statement "auStack_190._4_4_ = 0;" (assignment_expression "auStack_190._4_4_ = 0" (field_expression "auStack_190._4_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "sStack_188 = 0;" (assignment_expression "sStack_188 = 0" identifier = number_literal) ;) (expression_statement "dfa = &rStack_184;" (assignment_expression "dfa = &rStack_184" identifier = (pointer_expression "&rStack_184" & identifier)) ;) (expression_statement "iVar7 = -(int)dfa;" (assignment_expression "iVar7 = -(int)dfa" identifier = (unary_expression "-(int)dfa" - (cast_expression "(int)dfa" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "prVar22 = (re_dfa_t *)auStack_190;" (assignment_expression "prVar22 = (re_dfa_t *)auStack_190" identifier = (cast_expression "(re_dfa_t *)auStack_190" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "set2 = (re_dfa_t *)(puVar23 + iVar7);" (assignment_expression "set2 = (re_dfa_t *)(puVar23 + iVar7)" identifier = (cast_expression "(re_dfa_t *)(puVar23 + iVar7)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + iVar7)" ( (binary_expression "puVar23 + iVar7" identifier + identifier) )))) ;) (expression_statement "prVar13 = (re_dfa_t *)(*(code *)PTR_mbrtowc_004bf2ec)();" (assignment_expression "prVar13 = (re_dfa_t *)(*(code *)PTR_mbrtowc_004bf2ec)()" identifier = (cast_expression "(re_dfa_t *)(*(code *)PTR_mbrtowc_004bf2ec)()" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_mbrtowc_004bf2ec)()" (parenthesized_expression "(*(code *)PTR_mbrtowc_004bf2ec)" ( (pointer_expression "*(code *)PTR_mbrtowc_004bf2ec" * (cast_expression "(code *)PTR_mbrtowc_004bf2ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (if_statement "if ((re_dfa_t *)(puVar23 + iVar7) == prVar13) {\n            dfa = (re_dfa_t *)(*(code *)PTR_towlower_004bf37c)(auStack_190._0_4_);\n            set2 = (re_dfa_t *)(auStack_190 + 4);\n            prVar22 = &rStack_184;\n            iVar7 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar7 != -1) {\n              *(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_) = 1;\n            }\n          }" if (parenthesized_expression "((re_dfa_t *)(puVar23 + iVar7) == prVar13)" ( (binary_expression "(re_dfa_t *)(puVar23 + iVar7) == prVar13" (cast_expression "(re_dfa_t *)(puVar23 + iVar7)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + iVar7)" ( (binary_expression "puVar23 + iVar7" identifier + identifier) ))) == identifier) )) (compound_statement "{\n            dfa = (re_dfa_t *)(*(code *)PTR_towlower_004bf37c)(auStack_190._0_4_);\n            set2 = (re_dfa_t *)(auStack_190 + 4);\n            prVar22 = &rStack_184;\n            iVar7 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar7 != -1) {\n              *(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_) = 1;\n            }\n          }" { (expression_statement "dfa = (re_dfa_t *)(*(code *)PTR_towlower_004bf37c)(auStack_190._0_4_);" (assignment_expression "dfa = (re_dfa_t *)(*(code *)PTR_towlower_004bf37c)(auStack_190._0_4_)" identifier = (cast_expression "(re_dfa_t *)(*(code *)PTR_towlower_004bf37c)(auStack_190._0_4_)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_towlower_004bf37c)(auStack_190._0_4_)" (parenthesized_expression "(*(code *)PTR_towlower_004bf37c)" ( (pointer_expression "*(code *)PTR_towlower_004bf37c" * (cast_expression "(code *)PTR_towlower_004bf37c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_190._0_4_)" ( (field_expression "auStack_190._0_4_" identifier . field_identifier) ))))) ;) (expression_statement "set2 = (re_dfa_t *)(auStack_190 + 4);" (assignment_expression "set2 = (re_dfa_t *)(auStack_190 + 4)" identifier = (cast_expression "(re_dfa_t *)(auStack_190 + 4)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_190 + 4)" ( (binary_expression "auStack_190 + 4" identifier + number_literal) )))) ;) (expression_statement "prVar22 = &rStack_184;" (assignment_expression "prVar22 = &rStack_184" identifier = (pointer_expression "&rStack_184" & identifier)) ;) (expression_statement "iVar7 = (*(code *)PTR_wcrtomb_004bf3dc)();" (assignment_expression "iVar7 = (*(code *)PTR_wcrtomb_004bf3dc)()" identifier = (call_expression "(*(code *)PTR_wcrtomb_004bf3dc)()" (parenthesized_expression "(*(code *)PTR_wcrtomb_004bf3dc)" ( (pointer_expression "*(code *)PTR_wcrtomb_004bf3dc" * (cast_expression "(code *)PTR_wcrtomb_004bf3dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar7 != -1) {\n              *(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_) = 1;\n            }" if (parenthesized_expression "(iVar7 != -1)" ( (binary_expression "iVar7 != -1" identifier != number_literal) )) (compound_statement "{\n              *(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_) = 1;\n            }" { (expression_statement "*(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_) = 1;" (assignment_expression "*(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_) = 1" (pointer_expression "*(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_)" * (cast_expression "(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_)" ( (binary_expression "(int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_" (cast_expression "(int)&prVar30->nodes" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar30->nodes" & (field_expression "prVar30->nodes" identifier -> field_identifier))) + (cast_expression "(uint)rStack_184.nodes._0_1_" ( (type_descriptor "uint" type_identifier) ) (field_expression "rStack_184.nodes._0_1_" (field_expression "rStack_184.nodes" identifier . field_identifier) . field_identifier))) )))) = number_literal) ;) })) })) })) }) (else_clause "else {\n        dfa = (re_dfa_t *)&DAT_00000006;\n        if (prVar22 == (re_dfa_t *)0x3) {\n          iStack_1ac = 0;\n          iVar7 = 0;\n          do {\n            uVar34 = *(uint *)(*(int *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset) +\n                              iStack_1ac);\n            uVar35 = 0;\n            iVar32 = iVar7;\n            do {\n              if (((uVar34 >> (uVar35 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)&prVar30->nodes + iVar32) = 1, uVar19 != 0)) {\n                iVar15 = iVar32;\n                if (iVar32 + 0x80U < 0x180) {\n                  piVar25 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar15 = *(int *)(*piVar25 + (uVar35 + iVar7) * 4);\n                }\n                *(undefined1 *)((int)&prVar30->nodes + iVar15) = 1;\n              }\n              uVar35 = uVar35 + 1;\n              iVar32 = iVar32 + 1;\n            } while (uVar35 != 0x20);\n            iVar7 = iVar7 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar7 != 0x100);\n        }\n        else if (prVar22 == (re_dfa_t *)&DAT_00000006) {\n          piVar25 = *(int **)pbVar28;\n          if ((*(int *)&prVar36[0xb].field_0x4 < 2) ||\n             (((piVar25[9] == 0 && (-1 < *(char *)(piVar25 + 4))) && (piVar25[8] == 0)))) {\n            iVar7 = 0;\n            if (0 < piVar25[5]) {\n              do {\n                auStack_190._4_4_ = 0;\n                sStack_188 = 0;\n                dfa = *(re_dfa_t **)(*piVar25 + iVar7 * 4);\n                prVar22 = &rStack_184;\n                set2 = (re_dfa_t *)(auStack_190 + 4);\n                iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar35 = (uint)rStack_184.nodes._0_1_;\n                if ((iVar32 != -1) &&\n                   (*(undefined1 *)((int)&prVar30->nodes + uVar35) = 1, uVar19 != 0)) {\n                  if (uVar35 + 0x80 < 0x180) {\n                    piVar16 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar35 = *(uint *)(*piVar16 + uVar35 * 4);\n                  }\n                  *(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;\n                }\n                if ((((uint)prVar6->nexts & 0x400000) != 0) && (1 < *(int *)&prVar36[0xb].field_0x4)\n                   ) {\n                  dfa = (re_dfa_t *)\n                        (*(code *)PTR_towlower_004bf37c)(*(undefined4 *)(*piVar25 + iVar7 * 4));\n                  prVar22 = &rStack_184;\n                  set2 = (re_dfa_t *)(auStack_190 + 4);\n                  iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar32 != -1) {\n                    *(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_) = 1;\n                  }\n                }\n                iVar7 = iVar7 + 1;\n              } while (iVar7 < piVar25[5]);\n            }\n          }\n          else {\n            auStack_190._0_4_ = auStack_190._0_4_ & 0xffffff;\n            do {\n              auStack_190._4_4_ = 0;\n              sStack_188 = 0;\n              set2 = (re_dfa_t *)&DAT_00000001;\n              prVar22 = (re_dfa_t *)0x0;\n              dfa = (re_dfa_t *)auStack_190;\n              iVar7 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar7 == -2) {\n                *(undefined1 *)((int)&prVar30->nodes + (uint)auStack_190[0]) = 1;\n              }\n              bVar1 = auStack_190[0] != 0xff;\n              auStack_190[0] = auStack_190[0] + 1;\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)prVar22 & 0xfd) == 5) {\n            set2 = (re_dfa_t *)0x100;\n            dfa = (re_dfa_t *)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            prVar22 = prVar30;\n            break;\n          }\n          if (prVar22 == (re_dfa_t *)0x2) {\n            set2 = (re_dfa_t *)0x100;\n            dfa = (re_dfa_t *)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(prVar30);\n            *(byte *)&prVar6->inveclosures = *(byte *)&prVar6->inveclosures & 0x7f | 0x80;\n            prVar22 = prVar6;\n            break;\n          }\n        }\n      }" else (compound_statement "{\n        dfa = (re_dfa_t *)&DAT_00000006;\n        if (prVar22 == (re_dfa_t *)0x3) {\n          iStack_1ac = 0;\n          iVar7 = 0;\n          do {\n            uVar34 = *(uint *)(*(int *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset) +\n                              iStack_1ac);\n            uVar35 = 0;\n            iVar32 = iVar7;\n            do {\n              if (((uVar34 >> (uVar35 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)&prVar30->nodes + iVar32) = 1, uVar19 != 0)) {\n                iVar15 = iVar32;\n                if (iVar32 + 0x80U < 0x180) {\n                  piVar25 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar15 = *(int *)(*piVar25 + (uVar35 + iVar7) * 4);\n                }\n                *(undefined1 *)((int)&prVar30->nodes + iVar15) = 1;\n              }\n              uVar35 = uVar35 + 1;\n              iVar32 = iVar32 + 1;\n            } while (uVar35 != 0x20);\n            iVar7 = iVar7 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar7 != 0x100);\n        }\n        else if (prVar22 == (re_dfa_t *)&DAT_00000006) {\n          piVar25 = *(int **)pbVar28;\n          if ((*(int *)&prVar36[0xb].field_0x4 < 2) ||\n             (((piVar25[9] == 0 && (-1 < *(char *)(piVar25 + 4))) && (piVar25[8] == 0)))) {\n            iVar7 = 0;\n            if (0 < piVar25[5]) {\n              do {\n                auStack_190._4_4_ = 0;\n                sStack_188 = 0;\n                dfa = *(re_dfa_t **)(*piVar25 + iVar7 * 4);\n                prVar22 = &rStack_184;\n                set2 = (re_dfa_t *)(auStack_190 + 4);\n                iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar35 = (uint)rStack_184.nodes._0_1_;\n                if ((iVar32 != -1) &&\n                   (*(undefined1 *)((int)&prVar30->nodes + uVar35) = 1, uVar19 != 0)) {\n                  if (uVar35 + 0x80 < 0x180) {\n                    piVar16 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar35 = *(uint *)(*piVar16 + uVar35 * 4);\n                  }\n                  *(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;\n                }\n                if ((((uint)prVar6->nexts & 0x400000) != 0) && (1 < *(int *)&prVar36[0xb].field_0x4)\n                   ) {\n                  dfa = (re_dfa_t *)\n                        (*(code *)PTR_towlower_004bf37c)(*(undefined4 *)(*piVar25 + iVar7 * 4));\n                  prVar22 = &rStack_184;\n                  set2 = (re_dfa_t *)(auStack_190 + 4);\n                  iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar32 != -1) {\n                    *(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_) = 1;\n                  }\n                }\n                iVar7 = iVar7 + 1;\n              } while (iVar7 < piVar25[5]);\n            }\n          }\n          else {\n            auStack_190._0_4_ = auStack_190._0_4_ & 0xffffff;\n            do {\n              auStack_190._4_4_ = 0;\n              sStack_188 = 0;\n              set2 = (re_dfa_t *)&DAT_00000001;\n              prVar22 = (re_dfa_t *)0x0;\n              dfa = (re_dfa_t *)auStack_190;\n              iVar7 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar7 == -2) {\n                *(undefined1 *)((int)&prVar30->nodes + (uint)auStack_190[0]) = 1;\n              }\n              bVar1 = auStack_190[0] != 0xff;\n              auStack_190[0] = auStack_190[0] + 1;\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)prVar22 & 0xfd) == 5) {\n            set2 = (re_dfa_t *)0x100;\n            dfa = (re_dfa_t *)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            prVar22 = prVar30;\n            break;\n          }\n          if (prVar22 == (re_dfa_t *)0x2) {\n            set2 = (re_dfa_t *)0x100;\n            dfa = (re_dfa_t *)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(prVar30);\n            *(byte *)&prVar6->inveclosures = *(byte *)&prVar6->inveclosures & 0x7f | 0x80;\n            prVar22 = prVar6;\n            break;\n          }\n        }\n      }" { (expression_statement "dfa = (re_dfa_t *)&DAT_00000006;" (assignment_expression "dfa = (re_dfa_t *)&DAT_00000006" identifier = (cast_expression "(re_dfa_t *)&DAT_00000006" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000006" & identifier))) ;) (if_statement "if (prVar22 == (re_dfa_t *)0x3) {\n          iStack_1ac = 0;\n          iVar7 = 0;\n          do {\n            uVar34 = *(uint *)(*(int *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset) +\n                              iStack_1ac);\n            uVar35 = 0;\n            iVar32 = iVar7;\n            do {\n              if (((uVar34 >> (uVar35 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)&prVar30->nodes + iVar32) = 1, uVar19 != 0)) {\n                iVar15 = iVar32;\n                if (iVar32 + 0x80U < 0x180) {\n                  piVar25 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar15 = *(int *)(*piVar25 + (uVar35 + iVar7) * 4);\n                }\n                *(undefined1 *)((int)&prVar30->nodes + iVar15) = 1;\n              }\n              uVar35 = uVar35 + 1;\n              iVar32 = iVar32 + 1;\n            } while (uVar35 != 0x20);\n            iVar7 = iVar7 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar7 != 0x100);\n        }\n        else if (prVar22 == (re_dfa_t *)&DAT_00000006) {\n          piVar25 = *(int **)pbVar28;\n          if ((*(int *)&prVar36[0xb].field_0x4 < 2) ||\n             (((piVar25[9] == 0 && (-1 < *(char *)(piVar25 + 4))) && (piVar25[8] == 0)))) {\n            iVar7 = 0;\n            if (0 < piVar25[5]) {\n              do {\n                auStack_190._4_4_ = 0;\n                sStack_188 = 0;\n                dfa = *(re_dfa_t **)(*piVar25 + iVar7 * 4);\n                prVar22 = &rStack_184;\n                set2 = (re_dfa_t *)(auStack_190 + 4);\n                iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar35 = (uint)rStack_184.nodes._0_1_;\n                if ((iVar32 != -1) &&\n                   (*(undefined1 *)((int)&prVar30->nodes + uVar35) = 1, uVar19 != 0)) {\n                  if (uVar35 + 0x80 < 0x180) {\n                    piVar16 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar35 = *(uint *)(*piVar16 + uVar35 * 4);\n                  }\n                  *(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;\n                }\n                if ((((uint)prVar6->nexts & 0x400000) != 0) && (1 < *(int *)&prVar36[0xb].field_0x4)\n                   ) {\n                  dfa = (re_dfa_t *)\n                        (*(code *)PTR_towlower_004bf37c)(*(undefined4 *)(*piVar25 + iVar7 * 4));\n                  prVar22 = &rStack_184;\n                  set2 = (re_dfa_t *)(auStack_190 + 4);\n                  iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar32 != -1) {\n                    *(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_) = 1;\n                  }\n                }\n                iVar7 = iVar7 + 1;\n              } while (iVar7 < piVar25[5]);\n            }\n          }\n          else {\n            auStack_190._0_4_ = auStack_190._0_4_ & 0xffffff;\n            do {\n              auStack_190._4_4_ = 0;\n              sStack_188 = 0;\n              set2 = (re_dfa_t *)&DAT_00000001;\n              prVar22 = (re_dfa_t *)0x0;\n              dfa = (re_dfa_t *)auStack_190;\n              iVar7 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar7 == -2) {\n                *(undefined1 *)((int)&prVar30->nodes + (uint)auStack_190[0]) = 1;\n              }\n              bVar1 = auStack_190[0] != 0xff;\n              auStack_190[0] = auStack_190[0] + 1;\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)prVar22 & 0xfd) == 5) {\n            set2 = (re_dfa_t *)0x100;\n            dfa = (re_dfa_t *)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            prVar22 = prVar30;\n            break;\n          }\n          if (prVar22 == (re_dfa_t *)0x2) {\n            set2 = (re_dfa_t *)0x100;\n            dfa = (re_dfa_t *)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(prVar30);\n            *(byte *)&prVar6->inveclosures = *(byte *)&prVar6->inveclosures & 0x7f | 0x80;\n            prVar22 = prVar6;\n            break;\n          }\n        }" if (parenthesized_expression "(prVar22 == (re_dfa_t *)0x3)" ( (binary_expression "prVar22 == (re_dfa_t *)0x3" identifier == (cast_expression "(re_dfa_t *)0x3" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iStack_1ac = 0;\n          iVar7 = 0;\n          do {\n            uVar34 = *(uint *)(*(int *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset) +\n                              iStack_1ac);\n            uVar35 = 0;\n            iVar32 = iVar7;\n            do {\n              if (((uVar34 >> (uVar35 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)&prVar30->nodes + iVar32) = 1, uVar19 != 0)) {\n                iVar15 = iVar32;\n                if (iVar32 + 0x80U < 0x180) {\n                  piVar25 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar15 = *(int *)(*piVar25 + (uVar35 + iVar7) * 4);\n                }\n                *(undefined1 *)((int)&prVar30->nodes + iVar15) = 1;\n              }\n              uVar35 = uVar35 + 1;\n              iVar32 = iVar32 + 1;\n            } while (uVar35 != 0x20);\n            iVar7 = iVar7 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar7 != 0x100);\n        }" { (expression_statement "iStack_1ac = 0;" (assignment_expression "iStack_1ac = 0" identifier = number_literal) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (do_statement "do {\n            uVar34 = *(uint *)(*(int *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset) +\n                              iStack_1ac);\n            uVar35 = 0;\n            iVar32 = iVar7;\n            do {\n              if (((uVar34 >> (uVar35 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)&prVar30->nodes + iVar32) = 1, uVar19 != 0)) {\n                iVar15 = iVar32;\n                if (iVar32 + 0x80U < 0x180) {\n                  piVar25 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar15 = *(int *)(*piVar25 + (uVar35 + iVar7) * 4);\n                }\n                *(undefined1 *)((int)&prVar30->nodes + iVar15) = 1;\n              }\n              uVar35 = uVar35 + 1;\n              iVar32 = iVar32 + 1;\n            } while (uVar35 != 0x20);\n            iVar7 = iVar7 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar7 != 0x100);" do (compound_statement "{\n            uVar34 = *(uint *)(*(int *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset) +\n                              iStack_1ac);\n            uVar35 = 0;\n            iVar32 = iVar7;\n            do {\n              if (((uVar34 >> (uVar35 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)&prVar30->nodes + iVar32) = 1, uVar19 != 0)) {\n                iVar15 = iVar32;\n                if (iVar32 + 0x80U < 0x180) {\n                  piVar25 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar15 = *(int *)(*piVar25 + (uVar35 + iVar7) * 4);\n                }\n                *(undefined1 *)((int)&prVar30->nodes + iVar15) = 1;\n              }\n              uVar35 = uVar35 + 1;\n              iVar32 = iVar32 + 1;\n            } while (uVar35 != 0x20);\n            iVar7 = iVar7 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          }" { (expression_statement "uVar34 = *(uint *)(*(int *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset) +\n                              iStack_1ac);" (assignment_expression "uVar34 = *(uint *)(*(int *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset) +\n                              iStack_1ac)" identifier = (pointer_expression "*(uint *)(*(int *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset) +\n                              iStack_1ac)" * (cast_expression "(uint *)(*(int *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset) +\n                              iStack_1ac)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset) +\n                              iStack_1ac)" ( (binary_expression "*(int *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset) +\n                              iStack_1ac" (pointer_expression "*(int *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset)" * (cast_expression "(int *)((int)&prVar13->nodes + (int)(prVar36->opr).sbcset)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar13->nodes + (int)(prVar36->opr).sbcset)" ( (binary_expression "(int)&prVar13->nodes + (int)(prVar36->opr).sbcset" (cast_expression "(int)&prVar13->nodes" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar13->nodes" & (field_expression "prVar13->nodes" identifier -> field_identifier))) + (cast_expression "(int)(prVar36->opr).sbcset" ( (type_descriptor "int" primitive_type) ) (field_expression "(prVar36->opr).sbcset" (parenthesized_expression "(prVar36->opr)" ( (field_expression "prVar36->opr" identifier -> field_identifier) )) . field_identifier))) )))) + identifier) ))))) ;) (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" identifier = number_literal) ;) (expression_statement "iVar32 = iVar7;" (assignment_expression "iVar32 = iVar7" identifier = identifier) ;) (do_statement "do {\n              if (((uVar34 >> (uVar35 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)&prVar30->nodes + iVar32) = 1, uVar19 != 0)) {\n                iVar15 = iVar32;\n                if (iVar32 + 0x80U < 0x180) {\n                  piVar25 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar15 = *(int *)(*piVar25 + (uVar35 + iVar7) * 4);\n                }\n                *(undefined1 *)((int)&prVar30->nodes + iVar15) = 1;\n              }\n              uVar35 = uVar35 + 1;\n              iVar32 = iVar32 + 1;\n            } while (uVar35 != 0x20);" do (compound_statement "{\n              if (((uVar34 >> (uVar35 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)&prVar30->nodes + iVar32) = 1, uVar19 != 0)) {\n                iVar15 = iVar32;\n                if (iVar32 + 0x80U < 0x180) {\n                  piVar25 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar15 = *(int *)(*piVar25 + (uVar35 + iVar7) * 4);\n                }\n                *(undefined1 *)((int)&prVar30->nodes + iVar15) = 1;\n              }\n              uVar35 = uVar35 + 1;\n              iVar32 = iVar32 + 1;\n            }" { (if_statement "if (((uVar34 >> (uVar35 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)&prVar30->nodes + iVar32) = 1, uVar19 != 0)) {\n                iVar15 = iVar32;\n                if (iVar32 + 0x80U < 0x180) {\n                  piVar25 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar15 = *(int *)(*piVar25 + (uVar35 + iVar7) * 4);\n                }\n                *(undefined1 *)((int)&prVar30->nodes + iVar15) = 1;\n              }" if (parenthesized_expression "(((uVar34 >> (uVar35 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)&prVar30->nodes + iVar32) = 1, uVar19 != 0))" ( (binary_expression "((uVar34 >> (uVar35 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)&prVar30->nodes + iVar32) = 1, uVar19 != 0)" (parenthesized_expression "((uVar34 >> (uVar35 & 0x1f) & 1) != 0)" ( (binary_expression "(uVar34 >> (uVar35 & 0x1f) & 1) != 0" (parenthesized_expression "(uVar34 >> (uVar35 & 0x1f) & 1)" ( (binary_expression "uVar34 >> (uVar35 & 0x1f) & 1" (binary_expression "uVar34 >> (uVar35 & 0x1f)" identifier >> (parenthesized_expression "(uVar35 & 0x1f)" ( (binary_expression "uVar35 & 0x1f" identifier & number_literal) ))) & number_literal) )) != number_literal) )) && (parenthesized_expression "(*(undefined1 *)((int)&prVar30->nodes + iVar32) = 1, uVar19 != 0)" ( (comma_expression "*(undefined1 *)((int)&prVar30->nodes + iVar32) = 1, uVar19 != 0" (assignment_expression "*(undefined1 *)((int)&prVar30->nodes + iVar32) = 1" (pointer_expression "*(undefined1 *)((int)&prVar30->nodes + iVar32)" * (cast_expression "(undefined1 *)((int)&prVar30->nodes + iVar32)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar30->nodes + iVar32)" ( (binary_expression "(int)&prVar30->nodes + iVar32" (cast_expression "(int)&prVar30->nodes" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar30->nodes" & (field_expression "prVar30->nodes" identifier -> field_identifier))) + identifier) )))) = number_literal) , (binary_expression "uVar19 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                iVar15 = iVar32;\n                if (iVar32 + 0x80U < 0x180) {\n                  piVar25 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar15 = *(int *)(*piVar25 + (uVar35 + iVar7) * 4);\n                }\n                *(undefined1 *)((int)&prVar30->nodes + iVar15) = 1;\n              }" { (expression_statement "iVar15 = iVar32;" (assignment_expression "iVar15 = iVar32" identifier = identifier) ;) (if_statement "if (iVar32 + 0x80U < 0x180) {\n                  piVar25 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar15 = *(int *)(*piVar25 + (uVar35 + iVar7) * 4);\n                }" if (parenthesized_expression "(iVar32 + 0x80U < 0x180)" ( (binary_expression "iVar32 + 0x80U < 0x180" (binary_expression "iVar32 + 0x80U" identifier + number_literal) < number_literal) )) (compound_statement "{\n                  piVar25 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar15 = *(int *)(*piVar25 + (uVar35 + iVar7) * 4);\n                }" { (expression_statement "piVar25 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();" (assignment_expression "piVar25 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_tolower_loc_004bf16c)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_004bf16c)" ( (pointer_expression "*(code *)PTR___ctype_tolower_loc_004bf16c" * (cast_expression "(code *)PTR___ctype_tolower_loc_004bf16c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar15 = *(int *)(*piVar25 + (uVar35 + iVar7) * 4);" (assignment_expression "iVar15 = *(int *)(*piVar25 + (uVar35 + iVar7) * 4)" identifier = (pointer_expression "*(int *)(*piVar25 + (uVar35 + iVar7) * 4)" * (cast_expression "(int *)(*piVar25 + (uVar35 + iVar7) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar25 + (uVar35 + iVar7) * 4)" ( (binary_expression "*piVar25 + (uVar35 + iVar7) * 4" (pointer_expression "*piVar25" * identifier) + (binary_expression "(uVar35 + iVar7) * 4" (parenthesized_expression "(uVar35 + iVar7)" ( (binary_expression "uVar35 + iVar7" identifier + identifier) )) * number_literal)) ))))) ;) })) (expression_statement "*(undefined1 *)((int)&prVar30->nodes + iVar15) = 1;" (assignment_expression "*(undefined1 *)((int)&prVar30->nodes + iVar15) = 1" (pointer_expression "*(undefined1 *)((int)&prVar30->nodes + iVar15)" * (cast_expression "(undefined1 *)((int)&prVar30->nodes + iVar15)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar30->nodes + iVar15)" ( (binary_expression "(int)&prVar30->nodes + iVar15" (cast_expression "(int)&prVar30->nodes" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar30->nodes" & (field_expression "prVar30->nodes" identifier -> field_identifier))) + identifier) )))) = number_literal) ;) })) (expression_statement "uVar35 = uVar35 + 1;" (assignment_expression "uVar35 = uVar35 + 1" identifier = (binary_expression "uVar35 + 1" identifier + number_literal)) ;) (expression_statement "iVar32 = iVar32 + 1;" (assignment_expression "iVar32 = iVar32 + 1" identifier = (binary_expression "iVar32 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar35 != 0x20)" ( (binary_expression "uVar35 != 0x20" identifier != number_literal) )) ;) (expression_statement "iVar7 = iVar7 + 0x20;" (assignment_expression "iVar7 = iVar7 + 0x20" identifier = (binary_expression "iVar7 + 0x20" identifier + number_literal)) ;) (expression_statement "iStack_1ac = iStack_1ac + 4;" (assignment_expression "iStack_1ac = iStack_1ac + 4" identifier = (binary_expression "iStack_1ac + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar7 != 0x100)" ( (binary_expression "iVar7 != 0x100" identifier != number_literal) )) ;) }) (else_clause "else if (prVar22 == (re_dfa_t *)&DAT_00000006) {\n          piVar25 = *(int **)pbVar28;\n          if ((*(int *)&prVar36[0xb].field_0x4 < 2) ||\n             (((piVar25[9] == 0 && (-1 < *(char *)(piVar25 + 4))) && (piVar25[8] == 0)))) {\n            iVar7 = 0;\n            if (0 < piVar25[5]) {\n              do {\n                auStack_190._4_4_ = 0;\n                sStack_188 = 0;\n                dfa = *(re_dfa_t **)(*piVar25 + iVar7 * 4);\n                prVar22 = &rStack_184;\n                set2 = (re_dfa_t *)(auStack_190 + 4);\n                iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar35 = (uint)rStack_184.nodes._0_1_;\n                if ((iVar32 != -1) &&\n                   (*(undefined1 *)((int)&prVar30->nodes + uVar35) = 1, uVar19 != 0)) {\n                  if (uVar35 + 0x80 < 0x180) {\n                    piVar16 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar35 = *(uint *)(*piVar16 + uVar35 * 4);\n                  }\n                  *(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;\n                }\n                if ((((uint)prVar6->nexts & 0x400000) != 0) && (1 < *(int *)&prVar36[0xb].field_0x4)\n                   ) {\n                  dfa = (re_dfa_t *)\n                        (*(code *)PTR_towlower_004bf37c)(*(undefined4 *)(*piVar25 + iVar7 * 4));\n                  prVar22 = &rStack_184;\n                  set2 = (re_dfa_t *)(auStack_190 + 4);\n                  iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar32 != -1) {\n                    *(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_) = 1;\n                  }\n                }\n                iVar7 = iVar7 + 1;\n              } while (iVar7 < piVar25[5]);\n            }\n          }\n          else {\n            auStack_190._0_4_ = auStack_190._0_4_ & 0xffffff;\n            do {\n              auStack_190._4_4_ = 0;\n              sStack_188 = 0;\n              set2 = (re_dfa_t *)&DAT_00000001;\n              prVar22 = (re_dfa_t *)0x0;\n              dfa = (re_dfa_t *)auStack_190;\n              iVar7 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar7 == -2) {\n                *(undefined1 *)((int)&prVar30->nodes + (uint)auStack_190[0]) = 1;\n              }\n              bVar1 = auStack_190[0] != 0xff;\n              auStack_190[0] = auStack_190[0] + 1;\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)prVar22 & 0xfd) == 5) {\n            set2 = (re_dfa_t *)0x100;\n            dfa = (re_dfa_t *)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            prVar22 = prVar30;\n            break;\n          }\n          if (prVar22 == (re_dfa_t *)0x2) {\n            set2 = (re_dfa_t *)0x100;\n            dfa = (re_dfa_t *)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(prVar30);\n            *(byte *)&prVar6->inveclosures = *(byte *)&prVar6->inveclosures & 0x7f | 0x80;\n            prVar22 = prVar6;\n            break;\n          }\n        }" else (if_statement "if (prVar22 == (re_dfa_t *)&DAT_00000006) {\n          piVar25 = *(int **)pbVar28;\n          if ((*(int *)&prVar36[0xb].field_0x4 < 2) ||\n             (((piVar25[9] == 0 && (-1 < *(char *)(piVar25 + 4))) && (piVar25[8] == 0)))) {\n            iVar7 = 0;\n            if (0 < piVar25[5]) {\n              do {\n                auStack_190._4_4_ = 0;\n                sStack_188 = 0;\n                dfa = *(re_dfa_t **)(*piVar25 + iVar7 * 4);\n                prVar22 = &rStack_184;\n                set2 = (re_dfa_t *)(auStack_190 + 4);\n                iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar35 = (uint)rStack_184.nodes._0_1_;\n                if ((iVar32 != -1) &&\n                   (*(undefined1 *)((int)&prVar30->nodes + uVar35) = 1, uVar19 != 0)) {\n                  if (uVar35 + 0x80 < 0x180) {\n                    piVar16 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar35 = *(uint *)(*piVar16 + uVar35 * 4);\n                  }\n                  *(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;\n                }\n                if ((((uint)prVar6->nexts & 0x400000) != 0) && (1 < *(int *)&prVar36[0xb].field_0x4)\n                   ) {\n                  dfa = (re_dfa_t *)\n                        (*(code *)PTR_towlower_004bf37c)(*(undefined4 *)(*piVar25 + iVar7 * 4));\n                  prVar22 = &rStack_184;\n                  set2 = (re_dfa_t *)(auStack_190 + 4);\n                  iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar32 != -1) {\n                    *(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_) = 1;\n                  }\n                }\n                iVar7 = iVar7 + 1;\n              } while (iVar7 < piVar25[5]);\n            }\n          }\n          else {\n            auStack_190._0_4_ = auStack_190._0_4_ & 0xffffff;\n            do {\n              auStack_190._4_4_ = 0;\n              sStack_188 = 0;\n              set2 = (re_dfa_t *)&DAT_00000001;\n              prVar22 = (re_dfa_t *)0x0;\n              dfa = (re_dfa_t *)auStack_190;\n              iVar7 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar7 == -2) {\n                *(undefined1 *)((int)&prVar30->nodes + (uint)auStack_190[0]) = 1;\n              }\n              bVar1 = auStack_190[0] != 0xff;\n              auStack_190[0] = auStack_190[0] + 1;\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)prVar22 & 0xfd) == 5) {\n            set2 = (re_dfa_t *)0x100;\n            dfa = (re_dfa_t *)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            prVar22 = prVar30;\n            break;\n          }\n          if (prVar22 == (re_dfa_t *)0x2) {\n            set2 = (re_dfa_t *)0x100;\n            dfa = (re_dfa_t *)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(prVar30);\n            *(byte *)&prVar6->inveclosures = *(byte *)&prVar6->inveclosures & 0x7f | 0x80;\n            prVar22 = prVar6;\n            break;\n          }\n        }" if (parenthesized_expression "(prVar22 == (re_dfa_t *)&DAT_00000006)" ( (binary_expression "prVar22 == (re_dfa_t *)&DAT_00000006" identifier == (cast_expression "(re_dfa_t *)&DAT_00000006" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000006" & identifier))) )) (compound_statement "{\n          piVar25 = *(int **)pbVar28;\n          if ((*(int *)&prVar36[0xb].field_0x4 < 2) ||\n             (((piVar25[9] == 0 && (-1 < *(char *)(piVar25 + 4))) && (piVar25[8] == 0)))) {\n            iVar7 = 0;\n            if (0 < piVar25[5]) {\n              do {\n                auStack_190._4_4_ = 0;\n                sStack_188 = 0;\n                dfa = *(re_dfa_t **)(*piVar25 + iVar7 * 4);\n                prVar22 = &rStack_184;\n                set2 = (re_dfa_t *)(auStack_190 + 4);\n                iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar35 = (uint)rStack_184.nodes._0_1_;\n                if ((iVar32 != -1) &&\n                   (*(undefined1 *)((int)&prVar30->nodes + uVar35) = 1, uVar19 != 0)) {\n                  if (uVar35 + 0x80 < 0x180) {\n                    piVar16 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar35 = *(uint *)(*piVar16 + uVar35 * 4);\n                  }\n                  *(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;\n                }\n                if ((((uint)prVar6->nexts & 0x400000) != 0) && (1 < *(int *)&prVar36[0xb].field_0x4)\n                   ) {\n                  dfa = (re_dfa_t *)\n                        (*(code *)PTR_towlower_004bf37c)(*(undefined4 *)(*piVar25 + iVar7 * 4));\n                  prVar22 = &rStack_184;\n                  set2 = (re_dfa_t *)(auStack_190 + 4);\n                  iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar32 != -1) {\n                    *(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_) = 1;\n                  }\n                }\n                iVar7 = iVar7 + 1;\n              } while (iVar7 < piVar25[5]);\n            }\n          }\n          else {\n            auStack_190._0_4_ = auStack_190._0_4_ & 0xffffff;\n            do {\n              auStack_190._4_4_ = 0;\n              sStack_188 = 0;\n              set2 = (re_dfa_t *)&DAT_00000001;\n              prVar22 = (re_dfa_t *)0x0;\n              dfa = (re_dfa_t *)auStack_190;\n              iVar7 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar7 == -2) {\n                *(undefined1 *)((int)&prVar30->nodes + (uint)auStack_190[0]) = 1;\n              }\n              bVar1 = auStack_190[0] != 0xff;\n              auStack_190[0] = auStack_190[0] + 1;\n            } while (bVar1);\n          }\n        }" { (expression_statement "piVar25 = *(int **)pbVar28;" (assignment_expression "piVar25 = *(int **)pbVar28" identifier = (pointer_expression "*(int **)pbVar28" * (cast_expression "(int **)pbVar28" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if ((*(int *)&prVar36[0xb].field_0x4 < 2) ||\n             (((piVar25[9] == 0 && (-1 < *(char *)(piVar25 + 4))) && (piVar25[8] == 0)))) {\n            iVar7 = 0;\n            if (0 < piVar25[5]) {\n              do {\n                auStack_190._4_4_ = 0;\n                sStack_188 = 0;\n                dfa = *(re_dfa_t **)(*piVar25 + iVar7 * 4);\n                prVar22 = &rStack_184;\n                set2 = (re_dfa_t *)(auStack_190 + 4);\n                iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar35 = (uint)rStack_184.nodes._0_1_;\n                if ((iVar32 != -1) &&\n                   (*(undefined1 *)((int)&prVar30->nodes + uVar35) = 1, uVar19 != 0)) {\n                  if (uVar35 + 0x80 < 0x180) {\n                    piVar16 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar35 = *(uint *)(*piVar16 + uVar35 * 4);\n                  }\n                  *(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;\n                }\n                if ((((uint)prVar6->nexts & 0x400000) != 0) && (1 < *(int *)&prVar36[0xb].field_0x4)\n                   ) {\n                  dfa = (re_dfa_t *)\n                        (*(code *)PTR_towlower_004bf37c)(*(undefined4 *)(*piVar25 + iVar7 * 4));\n                  prVar22 = &rStack_184;\n                  set2 = (re_dfa_t *)(auStack_190 + 4);\n                  iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar32 != -1) {\n                    *(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_) = 1;\n                  }\n                }\n                iVar7 = iVar7 + 1;\n              } while (iVar7 < piVar25[5]);\n            }\n          }\n          else {\n            auStack_190._0_4_ = auStack_190._0_4_ & 0xffffff;\n            do {\n              auStack_190._4_4_ = 0;\n              sStack_188 = 0;\n              set2 = (re_dfa_t *)&DAT_00000001;\n              prVar22 = (re_dfa_t *)0x0;\n              dfa = (re_dfa_t *)auStack_190;\n              iVar7 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar7 == -2) {\n                *(undefined1 *)((int)&prVar30->nodes + (uint)auStack_190[0]) = 1;\n              }\n              bVar1 = auStack_190[0] != 0xff;\n              auStack_190[0] = auStack_190[0] + 1;\n            } while (bVar1);\n          }" if (parenthesized_expression "((*(int *)&prVar36[0xb].field_0x4 < 2) ||\n             (((piVar25[9] == 0 && (-1 < *(char *)(piVar25 + 4))) && (piVar25[8] == 0))))" ( (binary_expression "(*(int *)&prVar36[0xb].field_0x4 < 2) ||\n             (((piVar25[9] == 0 && (-1 < *(char *)(piVar25 + 4))) && (piVar25[8] == 0)))" (parenthesized_expression "(*(int *)&prVar36[0xb].field_0x4 < 2)" ( (binary_expression "*(int *)&prVar36[0xb].field_0x4 < 2" (pointer_expression "*(int *)&prVar36[0xb].field_0x4" * (cast_expression "(int *)&prVar36[0xb].field_0x4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar36[0xb].field_0x4" & (field_expression "prVar36[0xb].field_0x4" (subscript_expression "prVar36[0xb]" identifier [ number_literal ]) . field_identifier)))) < number_literal) )) || (parenthesized_expression "(((piVar25[9] == 0 && (-1 < *(char *)(piVar25 + 4))) && (piVar25[8] == 0)))" ( (parenthesized_expression "((piVar25[9] == 0 && (-1 < *(char *)(piVar25 + 4))) && (piVar25[8] == 0))" ( (binary_expression "(piVar25[9] == 0 && (-1 < *(char *)(piVar25 + 4))) && (piVar25[8] == 0)" (parenthesized_expression "(piVar25[9] == 0 && (-1 < *(char *)(piVar25 + 4)))" ( (binary_expression "piVar25[9] == 0 && (-1 < *(char *)(piVar25 + 4))" (binary_expression "piVar25[9] == 0" (subscript_expression "piVar25[9]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "(-1 < *(char *)(piVar25 + 4))" ( (binary_expression "-1 < *(char *)(piVar25 + 4)" number_literal < (pointer_expression "*(char *)(piVar25 + 4)" * (cast_expression "(char *)(piVar25 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar25 + 4)" ( (binary_expression "piVar25 + 4" identifier + number_literal) ))))) ))) )) && (parenthesized_expression "(piVar25[8] == 0)" ( (binary_expression "piVar25[8] == 0" (subscript_expression "piVar25[8]" identifier [ number_literal ]) == number_literal) ))) )) ))) )) (compound_statement "{\n            iVar7 = 0;\n            if (0 < piVar25[5]) {\n              do {\n                auStack_190._4_4_ = 0;\n                sStack_188 = 0;\n                dfa = *(re_dfa_t **)(*piVar25 + iVar7 * 4);\n                prVar22 = &rStack_184;\n                set2 = (re_dfa_t *)(auStack_190 + 4);\n                iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar35 = (uint)rStack_184.nodes._0_1_;\n                if ((iVar32 != -1) &&\n                   (*(undefined1 *)((int)&prVar30->nodes + uVar35) = 1, uVar19 != 0)) {\n                  if (uVar35 + 0x80 < 0x180) {\n                    piVar16 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar35 = *(uint *)(*piVar16 + uVar35 * 4);\n                  }\n                  *(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;\n                }\n                if ((((uint)prVar6->nexts & 0x400000) != 0) && (1 < *(int *)&prVar36[0xb].field_0x4)\n                   ) {\n                  dfa = (re_dfa_t *)\n                        (*(code *)PTR_towlower_004bf37c)(*(undefined4 *)(*piVar25 + iVar7 * 4));\n                  prVar22 = &rStack_184;\n                  set2 = (re_dfa_t *)(auStack_190 + 4);\n                  iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar32 != -1) {\n                    *(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_) = 1;\n                  }\n                }\n                iVar7 = iVar7 + 1;\n              } while (iVar7 < piVar25[5]);\n            }\n          }" { (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (if_statement "if (0 < piVar25[5]) {\n              do {\n                auStack_190._4_4_ = 0;\n                sStack_188 = 0;\n                dfa = *(re_dfa_t **)(*piVar25 + iVar7 * 4);\n                prVar22 = &rStack_184;\n                set2 = (re_dfa_t *)(auStack_190 + 4);\n                iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar35 = (uint)rStack_184.nodes._0_1_;\n                if ((iVar32 != -1) &&\n                   (*(undefined1 *)((int)&prVar30->nodes + uVar35) = 1, uVar19 != 0)) {\n                  if (uVar35 + 0x80 < 0x180) {\n                    piVar16 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar35 = *(uint *)(*piVar16 + uVar35 * 4);\n                  }\n                  *(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;\n                }\n                if ((((uint)prVar6->nexts & 0x400000) != 0) && (1 < *(int *)&prVar36[0xb].field_0x4)\n                   ) {\n                  dfa = (re_dfa_t *)\n                        (*(code *)PTR_towlower_004bf37c)(*(undefined4 *)(*piVar25 + iVar7 * 4));\n                  prVar22 = &rStack_184;\n                  set2 = (re_dfa_t *)(auStack_190 + 4);\n                  iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar32 != -1) {\n                    *(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_) = 1;\n                  }\n                }\n                iVar7 = iVar7 + 1;\n              } while (iVar7 < piVar25[5]);\n            }" if (parenthesized_expression "(0 < piVar25[5])" ( (binary_expression "0 < piVar25[5]" number_literal < (subscript_expression "piVar25[5]" identifier [ number_literal ])) )) (compound_statement "{\n              do {\n                auStack_190._4_4_ = 0;\n                sStack_188 = 0;\n                dfa = *(re_dfa_t **)(*piVar25 + iVar7 * 4);\n                prVar22 = &rStack_184;\n                set2 = (re_dfa_t *)(auStack_190 + 4);\n                iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar35 = (uint)rStack_184.nodes._0_1_;\n                if ((iVar32 != -1) &&\n                   (*(undefined1 *)((int)&prVar30->nodes + uVar35) = 1, uVar19 != 0)) {\n                  if (uVar35 + 0x80 < 0x180) {\n                    piVar16 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar35 = *(uint *)(*piVar16 + uVar35 * 4);\n                  }\n                  *(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;\n                }\n                if ((((uint)prVar6->nexts & 0x400000) != 0) && (1 < *(int *)&prVar36[0xb].field_0x4)\n                   ) {\n                  dfa = (re_dfa_t *)\n                        (*(code *)PTR_towlower_004bf37c)(*(undefined4 *)(*piVar25 + iVar7 * 4));\n                  prVar22 = &rStack_184;\n                  set2 = (re_dfa_t *)(auStack_190 + 4);\n                  iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar32 != -1) {\n                    *(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_) = 1;\n                  }\n                }\n                iVar7 = iVar7 + 1;\n              } while (iVar7 < piVar25[5]);\n            }" { (do_statement "do {\n                auStack_190._4_4_ = 0;\n                sStack_188 = 0;\n                dfa = *(re_dfa_t **)(*piVar25 + iVar7 * 4);\n                prVar22 = &rStack_184;\n                set2 = (re_dfa_t *)(auStack_190 + 4);\n                iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar35 = (uint)rStack_184.nodes._0_1_;\n                if ((iVar32 != -1) &&\n                   (*(undefined1 *)((int)&prVar30->nodes + uVar35) = 1, uVar19 != 0)) {\n                  if (uVar35 + 0x80 < 0x180) {\n                    piVar16 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar35 = *(uint *)(*piVar16 + uVar35 * 4);\n                  }\n                  *(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;\n                }\n                if ((((uint)prVar6->nexts & 0x400000) != 0) && (1 < *(int *)&prVar36[0xb].field_0x4)\n                   ) {\n                  dfa = (re_dfa_t *)\n                        (*(code *)PTR_towlower_004bf37c)(*(undefined4 *)(*piVar25 + iVar7 * 4));\n                  prVar22 = &rStack_184;\n                  set2 = (re_dfa_t *)(auStack_190 + 4);\n                  iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar32 != -1) {\n                    *(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_) = 1;\n                  }\n                }\n                iVar7 = iVar7 + 1;\n              } while (iVar7 < piVar25[5]);" do (compound_statement "{\n                auStack_190._4_4_ = 0;\n                sStack_188 = 0;\n                dfa = *(re_dfa_t **)(*piVar25 + iVar7 * 4);\n                prVar22 = &rStack_184;\n                set2 = (re_dfa_t *)(auStack_190 + 4);\n                iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar35 = (uint)rStack_184.nodes._0_1_;\n                if ((iVar32 != -1) &&\n                   (*(undefined1 *)((int)&prVar30->nodes + uVar35) = 1, uVar19 != 0)) {\n                  if (uVar35 + 0x80 < 0x180) {\n                    piVar16 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar35 = *(uint *)(*piVar16 + uVar35 * 4);\n                  }\n                  *(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;\n                }\n                if ((((uint)prVar6->nexts & 0x400000) != 0) && (1 < *(int *)&prVar36[0xb].field_0x4)\n                   ) {\n                  dfa = (re_dfa_t *)\n                        (*(code *)PTR_towlower_004bf37c)(*(undefined4 *)(*piVar25 + iVar7 * 4));\n                  prVar22 = &rStack_184;\n                  set2 = (re_dfa_t *)(auStack_190 + 4);\n                  iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar32 != -1) {\n                    *(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_) = 1;\n                  }\n                }\n                iVar7 = iVar7 + 1;\n              }" { (expression_statement "auStack_190._4_4_ = 0;" (assignment_expression "auStack_190._4_4_ = 0" (field_expression "auStack_190._4_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "sStack_188 = 0;" (assignment_expression "sStack_188 = 0" identifier = number_literal) ;) (expression_statement "dfa = *(re_dfa_t **)(*piVar25 + iVar7 * 4);" (assignment_expression "dfa = *(re_dfa_t **)(*piVar25 + iVar7 * 4)" identifier = (pointer_expression "*(re_dfa_t **)(*piVar25 + iVar7 * 4)" * (cast_expression "(re_dfa_t **)(*piVar25 + iVar7 * 4)" ( (type_descriptor "re_dfa_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar25 + iVar7 * 4)" ( (binary_expression "*piVar25 + iVar7 * 4" (pointer_expression "*piVar25" * identifier) + (binary_expression "iVar7 * 4" identifier * number_literal)) ))))) ;) (expression_statement "prVar22 = &rStack_184;" (assignment_expression "prVar22 = &rStack_184" identifier = (pointer_expression "&rStack_184" & identifier)) ;) (expression_statement "set2 = (re_dfa_t *)(auStack_190 + 4);" (assignment_expression "set2 = (re_dfa_t *)(auStack_190 + 4)" identifier = (cast_expression "(re_dfa_t *)(auStack_190 + 4)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_190 + 4)" ( (binary_expression "auStack_190 + 4" identifier + number_literal) )))) ;) (expression_statement "iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)();" (assignment_expression "iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)()" identifier = (call_expression "(*(code *)PTR_wcrtomb_004bf3dc)()" (parenthesized_expression "(*(code *)PTR_wcrtomb_004bf3dc)" ( (pointer_expression "*(code *)PTR_wcrtomb_004bf3dc" * (cast_expression "(code *)PTR_wcrtomb_004bf3dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "uVar35 = (uint)rStack_184.nodes._0_1_;" (assignment_expression "uVar35 = (uint)rStack_184.nodes._0_1_" identifier = (cast_expression "(uint)rStack_184.nodes._0_1_" ( (type_descriptor "uint" type_identifier) ) (field_expression "rStack_184.nodes._0_1_" (field_expression "rStack_184.nodes" identifier . field_identifier) . field_identifier))) ;) (if_statement "if ((iVar32 != -1) &&\n                   (*(undefined1 *)((int)&prVar30->nodes + uVar35) = 1, uVar19 != 0)) {\n                  if (uVar35 + 0x80 < 0x180) {\n                    piVar16 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar35 = *(uint *)(*piVar16 + uVar35 * 4);\n                  }\n                  *(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;\n                }" if (parenthesized_expression "((iVar32 != -1) &&\n                   (*(undefined1 *)((int)&prVar30->nodes + uVar35) = 1, uVar19 != 0))" ( (binary_expression "(iVar32 != -1) &&\n                   (*(undefined1 *)((int)&prVar30->nodes + uVar35) = 1, uVar19 != 0)" (parenthesized_expression "(iVar32 != -1)" ( (binary_expression "iVar32 != -1" identifier != number_literal) )) && (parenthesized_expression "(*(undefined1 *)((int)&prVar30->nodes + uVar35) = 1, uVar19 != 0)" ( (comma_expression "*(undefined1 *)((int)&prVar30->nodes + uVar35) = 1, uVar19 != 0" (assignment_expression "*(undefined1 *)((int)&prVar30->nodes + uVar35) = 1" (pointer_expression "*(undefined1 *)((int)&prVar30->nodes + uVar35)" * (cast_expression "(undefined1 *)((int)&prVar30->nodes + uVar35)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar30->nodes + uVar35)" ( (binary_expression "(int)&prVar30->nodes + uVar35" (cast_expression "(int)&prVar30->nodes" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar30->nodes" & (field_expression "prVar30->nodes" identifier -> field_identifier))) + identifier) )))) = number_literal) , (binary_expression "uVar19 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                  if (uVar35 + 0x80 < 0x180) {\n                    piVar16 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar35 = *(uint *)(*piVar16 + uVar35 * 4);\n                  }\n                  *(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;\n                }" { (if_statement "if (uVar35 + 0x80 < 0x180) {\n                    piVar16 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar35 = *(uint *)(*piVar16 + uVar35 * 4);\n                  }" if (parenthesized_expression "(uVar35 + 0x80 < 0x180)" ( (binary_expression "uVar35 + 0x80 < 0x180" (binary_expression "uVar35 + 0x80" identifier + number_literal) < number_literal) )) (compound_statement "{\n                    piVar16 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar35 = *(uint *)(*piVar16 + uVar35 * 4);\n                  }" { (expression_statement "piVar16 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();" (assignment_expression "piVar16 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_tolower_loc_004bf16c)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_004bf16c)" ( (pointer_expression "*(code *)PTR___ctype_tolower_loc_004bf16c" * (cast_expression "(code *)PTR___ctype_tolower_loc_004bf16c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar35 = *(uint *)(*piVar16 + uVar35 * 4);" (assignment_expression "uVar35 = *(uint *)(*piVar16 + uVar35 * 4)" identifier = (pointer_expression "*(uint *)(*piVar16 + uVar35 * 4)" * (cast_expression "(uint *)(*piVar16 + uVar35 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar16 + uVar35 * 4)" ( (binary_expression "*piVar16 + uVar35 * 4" (pointer_expression "*piVar16" * identifier) + (binary_expression "uVar35 * 4" identifier * number_literal)) ))))) ;) })) (expression_statement "*(undefined1 *)((int)&prVar30->nodes + uVar35) = 1;" (assignment_expression "*(undefined1 *)((int)&prVar30->nodes + uVar35) = 1" (pointer_expression "*(undefined1 *)((int)&prVar30->nodes + uVar35)" * (cast_expression "(undefined1 *)((int)&prVar30->nodes + uVar35)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar30->nodes + uVar35)" ( (binary_expression "(int)&prVar30->nodes + uVar35" (cast_expression "(int)&prVar30->nodes" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar30->nodes" & (field_expression "prVar30->nodes" identifier -> field_identifier))) + identifier) )))) = number_literal) ;) })) (if_statement "if ((((uint)prVar6->nexts & 0x400000) != 0) && (1 < *(int *)&prVar36[0xb].field_0x4)\n                   ) {\n                  dfa = (re_dfa_t *)\n                        (*(code *)PTR_towlower_004bf37c)(*(undefined4 *)(*piVar25 + iVar7 * 4));\n                  prVar22 = &rStack_184;\n                  set2 = (re_dfa_t *)(auStack_190 + 4);\n                  iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar32 != -1) {\n                    *(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_) = 1;\n                  }\n                }" if (parenthesized_expression "((((uint)prVar6->nexts & 0x400000) != 0) && (1 < *(int *)&prVar36[0xb].field_0x4)\n                   )" ( (binary_expression "(((uint)prVar6->nexts & 0x400000) != 0) && (1 < *(int *)&prVar36[0xb].field_0x4)" (parenthesized_expression "(((uint)prVar6->nexts & 0x400000) != 0)" ( (binary_expression "((uint)prVar6->nexts & 0x400000) != 0" (parenthesized_expression "((uint)prVar6->nexts & 0x400000)" ( (binary_expression "(uint)prVar6->nexts & 0x400000" (cast_expression "(uint)prVar6->nexts" ( (type_descriptor "uint" type_identifier) ) (field_expression "prVar6->nexts" identifier -> field_identifier)) & number_literal) )) != number_literal) )) && (parenthesized_expression "(1 < *(int *)&prVar36[0xb].field_0x4)" ( (binary_expression "1 < *(int *)&prVar36[0xb].field_0x4" number_literal < (pointer_expression "*(int *)&prVar36[0xb].field_0x4" * (cast_expression "(int *)&prVar36[0xb].field_0x4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar36[0xb].field_0x4" & (field_expression "prVar36[0xb].field_0x4" (subscript_expression "prVar36[0xb]" identifier [ number_literal ]) . field_identifier))))) ))) )) (compound_statement "{\n                  dfa = (re_dfa_t *)\n                        (*(code *)PTR_towlower_004bf37c)(*(undefined4 *)(*piVar25 + iVar7 * 4));\n                  prVar22 = &rStack_184;\n                  set2 = (re_dfa_t *)(auStack_190 + 4);\n                  iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar32 != -1) {\n                    *(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_) = 1;\n                  }\n                }" { (expression_statement "dfa = (re_dfa_t *)\n                        (*(code *)PTR_towlower_004bf37c)(*(undefined4 *)(*piVar25 + iVar7 * 4));" (assignment_expression "dfa = (re_dfa_t *)\n                        (*(code *)PTR_towlower_004bf37c)(*(undefined4 *)(*piVar25 + iVar7 * 4))" identifier = (cast_expression "(re_dfa_t *)\n                        (*(code *)PTR_towlower_004bf37c)(*(undefined4 *)(*piVar25 + iVar7 * 4))" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_towlower_004bf37c)(*(undefined4 *)(*piVar25 + iVar7 * 4))" (parenthesized_expression "(*(code *)PTR_towlower_004bf37c)" ( (pointer_expression "*(code *)PTR_towlower_004bf37c" * (cast_expression "(code *)PTR_towlower_004bf37c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(*piVar25 + iVar7 * 4))" ( (pointer_expression "*(undefined4 *)(*piVar25 + iVar7 * 4)" * (cast_expression "(undefined4 *)(*piVar25 + iVar7 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar25 + iVar7 * 4)" ( (binary_expression "*piVar25 + iVar7 * 4" (pointer_expression "*piVar25" * identifier) + (binary_expression "iVar7 * 4" identifier * number_literal)) )))) ))))) ;) (expression_statement "prVar22 = &rStack_184;" (assignment_expression "prVar22 = &rStack_184" identifier = (pointer_expression "&rStack_184" & identifier)) ;) (expression_statement "set2 = (re_dfa_t *)(auStack_190 + 4);" (assignment_expression "set2 = (re_dfa_t *)(auStack_190 + 4)" identifier = (cast_expression "(re_dfa_t *)(auStack_190 + 4)" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_190 + 4)" ( (binary_expression "auStack_190 + 4" identifier + number_literal) )))) ;) (expression_statement "iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)();" (assignment_expression "iVar32 = (*(code *)PTR_wcrtomb_004bf3dc)()" identifier = (call_expression "(*(code *)PTR_wcrtomb_004bf3dc)()" (parenthesized_expression "(*(code *)PTR_wcrtomb_004bf3dc)" ( (pointer_expression "*(code *)PTR_wcrtomb_004bf3dc" * (cast_expression "(code *)PTR_wcrtomb_004bf3dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar32 != -1) {\n                    *(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_) = 1;\n                  }" if (parenthesized_expression "(iVar32 != -1)" ( (binary_expression "iVar32 != -1" identifier != number_literal) )) (compound_statement "{\n                    *(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_) = 1;\n                  }" { (expression_statement "*(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_) = 1;" (assignment_expression "*(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_) = 1" (pointer_expression "*(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_)" * (cast_expression "(undefined1 *)((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_)" ( (binary_expression "(int)&prVar30->nodes + (uint)rStack_184.nodes._0_1_" (cast_expression "(int)&prVar30->nodes" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar30->nodes" & (field_expression "prVar30->nodes" identifier -> field_identifier))) + (cast_expression "(uint)rStack_184.nodes._0_1_" ( (type_descriptor "uint" type_identifier) ) (field_expression "rStack_184.nodes._0_1_" (field_expression "rStack_184.nodes" identifier . field_identifier) . field_identifier))) )))) = number_literal) ;) })) })) (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar7 < piVar25[5])" ( (binary_expression "iVar7 < piVar25[5]" identifier < (subscript_expression "piVar25[5]" identifier [ number_literal ])) )) ;) })) }) (else_clause "else {\n            auStack_190._0_4_ = auStack_190._0_4_ & 0xffffff;\n            do {\n              auStack_190._4_4_ = 0;\n              sStack_188 = 0;\n              set2 = (re_dfa_t *)&DAT_00000001;\n              prVar22 = (re_dfa_t *)0x0;\n              dfa = (re_dfa_t *)auStack_190;\n              iVar7 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar7 == -2) {\n                *(undefined1 *)((int)&prVar30->nodes + (uint)auStack_190[0]) = 1;\n              }\n              bVar1 = auStack_190[0] != 0xff;\n              auStack_190[0] = auStack_190[0] + 1;\n            } while (bVar1);\n          }" else (compound_statement "{\n            auStack_190._0_4_ = auStack_190._0_4_ & 0xffffff;\n            do {\n              auStack_190._4_4_ = 0;\n              sStack_188 = 0;\n              set2 = (re_dfa_t *)&DAT_00000001;\n              prVar22 = (re_dfa_t *)0x0;\n              dfa = (re_dfa_t *)auStack_190;\n              iVar7 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar7 == -2) {\n                *(undefined1 *)((int)&prVar30->nodes + (uint)auStack_190[0]) = 1;\n              }\n              bVar1 = auStack_190[0] != 0xff;\n              auStack_190[0] = auStack_190[0] + 1;\n            } while (bVar1);\n          }" { (expression_statement "auStack_190._0_4_ = auStack_190._0_4_ & 0xffffff;" (assignment_expression "auStack_190._0_4_ = auStack_190._0_4_ & 0xffffff" (field_expression "auStack_190._0_4_" identifier . field_identifier) = (binary_expression "auStack_190._0_4_ & 0xffffff" (field_expression "auStack_190._0_4_" identifier . field_identifier) & number_literal)) ;) (do_statement "do {\n              auStack_190._4_4_ = 0;\n              sStack_188 = 0;\n              set2 = (re_dfa_t *)&DAT_00000001;\n              prVar22 = (re_dfa_t *)0x0;\n              dfa = (re_dfa_t *)auStack_190;\n              iVar7 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar7 == -2) {\n                *(undefined1 *)((int)&prVar30->nodes + (uint)auStack_190[0]) = 1;\n              }\n              bVar1 = auStack_190[0] != 0xff;\n              auStack_190[0] = auStack_190[0] + 1;\n            } while (bVar1);" do (compound_statement "{\n              auStack_190._4_4_ = 0;\n              sStack_188 = 0;\n              set2 = (re_dfa_t *)&DAT_00000001;\n              prVar22 = (re_dfa_t *)0x0;\n              dfa = (re_dfa_t *)auStack_190;\n              iVar7 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar7 == -2) {\n                *(undefined1 *)((int)&prVar30->nodes + (uint)auStack_190[0]) = 1;\n              }\n              bVar1 = auStack_190[0] != 0xff;\n              auStack_190[0] = auStack_190[0] + 1;\n            }" { (expression_statement "auStack_190._4_4_ = 0;" (assignment_expression "auStack_190._4_4_ = 0" (field_expression "auStack_190._4_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "sStack_188 = 0;" (assignment_expression "sStack_188 = 0" identifier = number_literal) ;) (expression_statement "set2 = (re_dfa_t *)&DAT_00000001;" (assignment_expression "set2 = (re_dfa_t *)&DAT_00000001" identifier = (cast_expression "(re_dfa_t *)&DAT_00000001" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000001" & identifier))) ;) (expression_statement "prVar22 = (re_dfa_t *)0x0;" (assignment_expression "prVar22 = (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 "dfa = (re_dfa_t *)auStack_190;" (assignment_expression "dfa = (re_dfa_t *)auStack_190" identifier = (cast_expression "(re_dfa_t *)auStack_190" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar7 = (*(code *)PTR_mbrtowc_004bf2ec)();" (assignment_expression "iVar7 = (*(code *)PTR_mbrtowc_004bf2ec)()" identifier = (call_expression "(*(code *)PTR_mbrtowc_004bf2ec)()" (parenthesized_expression "(*(code *)PTR_mbrtowc_004bf2ec)" ( (pointer_expression "*(code *)PTR_mbrtowc_004bf2ec" * (cast_expression "(code *)PTR_mbrtowc_004bf2ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar7 == -2) {\n                *(undefined1 *)((int)&prVar30->nodes + (uint)auStack_190[0]) = 1;\n              }" if (parenthesized_expression "(iVar7 == -2)" ( (binary_expression "iVar7 == -2" identifier == number_literal) )) (compound_statement "{\n                *(undefined1 *)((int)&prVar30->nodes + (uint)auStack_190[0]) = 1;\n              }" { (expression_statement "*(undefined1 *)((int)&prVar30->nodes + (uint)auStack_190[0]) = 1;" (assignment_expression "*(undefined1 *)((int)&prVar30->nodes + (uint)auStack_190[0]) = 1" (pointer_expression "*(undefined1 *)((int)&prVar30->nodes + (uint)auStack_190[0])" * (cast_expression "(undefined1 *)((int)&prVar30->nodes + (uint)auStack_190[0])" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&prVar30->nodes + (uint)auStack_190[0])" ( (binary_expression "(int)&prVar30->nodes + (uint)auStack_190[0]" (cast_expression "(int)&prVar30->nodes" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar30->nodes" & (field_expression "prVar30->nodes" identifier -> field_identifier))) + (cast_expression "(uint)auStack_190[0]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "auStack_190[0]" identifier [ number_literal ]))) )))) = number_literal) ;) })) (expression_statement "bVar1 = auStack_190[0] != 0xff;" (assignment_expression "bVar1 = auStack_190[0] != 0xff" identifier = (binary_expression "auStack_190[0] != 0xff" (subscript_expression "auStack_190[0]" identifier [ number_literal ]) != number_literal)) ;) (expression_statement "auStack_190[0] = auStack_190[0] + 1;" (assignment_expression "auStack_190[0] = auStack_190[0] + 1" (subscript_expression "auStack_190[0]" identifier [ number_literal ]) = (binary_expression "auStack_190[0] + 1" (subscript_expression "auStack_190[0]" identifier [ number_literal ]) + number_literal)) ;) }) while (parenthesized_expression "(bVar1)" ( identifier )) ;) }))) }) (else_clause "else {\n          if (((uint)prVar22 & 0xfd) == 5) {\n            set2 = (re_dfa_t *)0x100;\n            dfa = (re_dfa_t *)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            prVar22 = prVar30;\n            break;\n          }\n          if (prVar22 == (re_dfa_t *)0x2) {\n            set2 = (re_dfa_t *)0x100;\n            dfa = (re_dfa_t *)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(prVar30);\n            *(byte *)&prVar6->inveclosures = *(byte *)&prVar6->inveclosures & 0x7f | 0x80;\n            prVar22 = prVar6;\n            break;\n          }\n        }" else (compound_statement "{\n          if (((uint)prVar22 & 0xfd) == 5) {\n            set2 = (re_dfa_t *)0x100;\n            dfa = (re_dfa_t *)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            prVar22 = prVar30;\n            break;\n          }\n          if (prVar22 == (re_dfa_t *)0x2) {\n            set2 = (re_dfa_t *)0x100;\n            dfa = (re_dfa_t *)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(prVar30);\n            *(byte *)&prVar6->inveclosures = *(byte *)&prVar6->inveclosures & 0x7f | 0x80;\n            prVar22 = prVar6;\n            break;\n          }\n        }" { (if_statement "if (((uint)prVar22 & 0xfd) == 5) {\n            set2 = (re_dfa_t *)0x100;\n            dfa = (re_dfa_t *)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            prVar22 = prVar30;\n            break;\n          }" if (parenthesized_expression "(((uint)prVar22 & 0xfd) == 5)" ( (binary_expression "((uint)prVar22 & 0xfd) == 5" (parenthesized_expression "((uint)prVar22 & 0xfd)" ( (binary_expression "(uint)prVar22 & 0xfd" (cast_expression "(uint)prVar22" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n            set2 = (re_dfa_t *)0x100;\n            dfa = (re_dfa_t *)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            prVar22 = prVar30;\n            break;\n          }" { (expression_statement "set2 = (re_dfa_t *)0x100;" (assignment_expression "set2 = (re_dfa_t *)0x100" identifier = (cast_expression "(re_dfa_t *)0x100" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "dfa = (re_dfa_t *)&DAT_00000001;" (assignment_expression "dfa = (re_dfa_t *)&DAT_00000001" identifier = (cast_expression "(re_dfa_t *)&DAT_00000001" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000001" & identifier))) ;) (expression_statement "(*(code *)PTR_memset_004bf260)();" (call_expression "(*(code *)PTR_memset_004bf260)()" (parenthesized_expression "(*(code *)PTR_memset_004bf260)" ( (pointer_expression "*(code *)PTR_memset_004bf260" * (cast_expression "(code *)PTR_memset_004bf260" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "prVar22 = prVar30;" (assignment_expression "prVar22 = prVar30" identifier = identifier) ;) (break_statement "break;" break ;) })) (if_statement "if (prVar22 == (re_dfa_t *)0x2) {\n            set2 = (re_dfa_t *)0x100;\n            dfa = (re_dfa_t *)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(prVar30);\n            *(byte *)&prVar6->inveclosures = *(byte *)&prVar6->inveclosures & 0x7f | 0x80;\n            prVar22 = prVar6;\n            break;\n          }" if (parenthesized_expression "(prVar22 == (re_dfa_t *)0x2)" ( (binary_expression "prVar22 == (re_dfa_t *)0x2" identifier == (cast_expression "(re_dfa_t *)0x2" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            set2 = (re_dfa_t *)0x100;\n            dfa = (re_dfa_t *)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(prVar30);\n            *(byte *)&prVar6->inveclosures = *(byte *)&prVar6->inveclosures & 0x7f | 0x80;\n            prVar22 = prVar6;\n            break;\n          }" { (expression_statement "set2 = (re_dfa_t *)0x100;" (assignment_expression "set2 = (re_dfa_t *)0x100" identifier = (cast_expression "(re_dfa_t *)0x100" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "dfa = (re_dfa_t *)&DAT_00000001;" (assignment_expression "dfa = (re_dfa_t *)&DAT_00000001" identifier = (cast_expression "(re_dfa_t *)&DAT_00000001" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000001" & identifier))) ;) (expression_statement "(*(code *)PTR_memset_004bf260)(prVar30);" (call_expression "(*(code *)PTR_memset_004bf260)(prVar30)" (parenthesized_expression "(*(code *)PTR_memset_004bf260)" ( (pointer_expression "*(code *)PTR_memset_004bf260" * (cast_expression "(code *)PTR_memset_004bf260" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(prVar30)" ( identifier ))) ;) (expression_statement "*(byte *)&prVar6->inveclosures = *(byte *)&prVar6->inveclosures & 0x7f | 0x80;" (assignment_expression "*(byte *)&prVar6->inveclosures = *(byte *)&prVar6->inveclosures & 0x7f | 0x80" (pointer_expression "*(byte *)&prVar6->inveclosures" * (cast_expression "(byte *)&prVar6->inveclosures" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar6->inveclosures" & (field_expression "prVar6->inveclosures" identifier -> field_identifier)))) = (binary_expression "*(byte *)&prVar6->inveclosures & 0x7f | 0x80" (binary_expression "*(byte *)&prVar6->inveclosures & 0x7f" (pointer_expression "*(byte *)&prVar6->inveclosures" * (cast_expression "(byte *)&prVar6->inveclosures" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar6->inveclosures" & (field_expression "prVar6->inveclosures" identifier -> field_identifier)))) & number_literal) | number_literal)) ;) (expression_statement "prVar22 = prVar6;" (assignment_expression "prVar22 = prVar6" identifier = identifier) ;) (break_statement "break;" break ;) })) }))))) }))) (expression_statement "iStack_1a8 = iStack_1a8 + 1;" (assignment_expression "iStack_1a8 = iStack_1a8 + 1" identifier = (binary_expression "iStack_1a8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iStack_1a8 < (int)prVar27->nodes_len)" ( (binary_expression "iStack_1a8 < (int)prVar27->nodes_len" identifier < (cast_expression "(int)prVar27->nodes_len" ( (type_descriptor "int" primitive_type) ) (field_expression "prVar27->nodes_len" identifier -> field_identifier))) )) ;) })) (if_statement "if (rStack_84 == *(reg_errcode_t *)PTR___stack_chk_guard_004bf38c) {\n    return *(reg_errcode_t *)PTR___stack_chk_guard_004bf38c;\n  }" if (parenthesized_expression "(rStack_84 == *(reg_errcode_t *)PTR___stack_chk_guard_004bf38c)" ( (binary_expression "rStack_84 == *(reg_errcode_t *)PTR___stack_chk_guard_004bf38c" identifier == (pointer_expression "*(reg_errcode_t *)PTR___stack_chk_guard_004bf38c" * (cast_expression "(reg_errcode_t *)PTR___stack_chk_guard_004bf38c" ( (type_descriptor "reg_errcode_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return *(reg_errcode_t *)PTR___stack_chk_guard_004bf38c;\n  }" { (return_statement "return *(reg_errcode_t *)PTR___stack_chk_guard_004bf38c;" return (pointer_expression "*(reg_errcode_t *)PTR___stack_chk_guard_004bf38c" * (cast_expression "(reg_errcode_t *)PTR___stack_chk_guard_004bf38c" ( (type_descriptor "reg_errcode_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_004bf34c)();" (call_expression "(*(code *)PTR___stack_chk_fail_004bf34c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_004bf34c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_004bf34c" * (cast_expression "(code *)PTR___stack_chk_fail_004bf34c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar19 = set2->nodes_alloc;" (assignment_expression "uVar19 = set2->nodes_alloc" identifier = (field_expression "set2->nodes_alloc" identifier -> field_identifier)) ;) (if_statement "if (uVar19 == 0) {\n    prVar22->nodes = (re_token_t *)0x0;\n  }\n  else {\n    if (0 < (int)uVar19) {\n      pIVar17 = (Idx *)set2->nodes_len;\n      pIVar11 = pIVar17 + uVar19;\n      do {\n        iVar7 = *pIVar17;\n        pIVar17 = pIVar17 + 1;\n        uVar19 = uVar19 + iVar7;\n      } while (pIVar17 != pIVar11);\n    }\n    iVar7 = dfa->state_table[uVar19 & dfa->state_hash_mask].num;\n    if (0 < iVar7) {\n      pprVar33 = dfa->state_table[uVar19 & dfa->state_hash_mask].array;\n      iVar32 = 0;\n      do {\n        prVar31 = *pprVar33;\n        if ((uVar19 == prVar31->hash) &&\n           (_Var18 = re_node_set_compare(&prVar31->nodes,(re_node_set *)set2),\n           CONCAT31(extraout_var,_Var18) != 0)) {\n          return (reg_errcode_t)prVar31;\n        }\n        iVar32 = iVar32 + 1;\n        pprVar33 = pprVar33 + 1;\n      } while (iVar7 != iVar32);\n    }\n    prVar31 = (re_dfastate_t *)(*(code *)PTR_calloc_004bf160)(0x38,1);\n    if (prVar31 != (re_dfastate_t *)0x0) {\n      rVar8 = re_node_set_init_copy(&prVar31->nodes,(re_node_set *)set2);\n      if (rVar8 == _REG_NOERROR) {\n        prVar31->entrance_nodes = &prVar31->nodes;\n        if (0 < (int)set2->nodes_alloc) {\n          prVar36 = dfa->nodes;\n          piVar25 = (int *)set2->nodes_len;\n          piVar16 = piVar25 + set2->nodes_alloc;\n          do {\n            iVar7 = *piVar25;\n            cVar3 = prVar36[iVar7].field_0x4;\n            if (cVar3 == '\x01') {\n              if ((*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000) != 0) {\n                prVar31->field_0x34 =\n                     prVar31->field_0x34 & 0xfb |\n                     (byte)(((uint)(*(int *)&prVar36[iVar7].field_0x4 << 0x14 |\n                                   *(int *)&prVar31->field_0x34 << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if ((*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000) != 0) {\n                  bVar4 = prVar31->field_0x34;\nLAB_00492380:\n                  prVar31->field_0x34 = bVar4 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar4 = prVar31->field_0x34;\n              bVar5 = (byte)(((uint)(*(int *)&prVar31->field_0x34 << 5 |\n                                    *(int *)&prVar36[iVar7].field_0x4 << 0x14) >> 0x1f) << 2);\n              prVar31->field_0x34 = bVar4 & 0xfb | bVar5;\n              if (cVar3 == '\x02') {\n                prVar31->field_0x34 = bVar4 & 0xf3 | bVar5 | 8;\n              }\n              else {\n                if (cVar3 != '\x04') {\n                  if (cVar3 != '\f') goto LAB_004922f0;\n                  bVar4 = prVar31->field_0x34;\n                  goto LAB_00492380;\n                }\n                prVar31->field_0x34 = prVar31->field_0x34 & 0xfd | 2;\n              }\n            }\n            piVar25 = piVar25 + 1;\n          } while (piVar25 != piVar16);\n        }\n        rVar8 = register_state(dfa,prVar31,uVar19);\n        if (rVar8 == _REG_NOERROR) {\n          return (reg_errcode_t)prVar31;\n        }\n        free_state(prVar31);\n      }\n      else {\n        (*(code *)PTR_free_004bf39c)(prVar31);\n      }\n    }\n    prVar22->nodes = (re_token_t *)0xc;\n  }" if (parenthesized_expression "(uVar19 == 0)" ( (binary_expression "uVar19 == 0" identifier == number_literal) )) (compound_statement "{\n    prVar22->nodes = (re_token_t *)0x0;\n  }" { (expression_statement "prVar22->nodes = (re_token_t *)0x0;" (assignment_expression "prVar22->nodes = (re_token_t *)0x0" (field_expression "prVar22->nodes" identifier -> field_identifier) = (cast_expression "(re_token_t *)0x0" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    if (0 < (int)uVar19) {\n      pIVar17 = (Idx *)set2->nodes_len;\n      pIVar11 = pIVar17 + uVar19;\n      do {\n        iVar7 = *pIVar17;\n        pIVar17 = pIVar17 + 1;\n        uVar19 = uVar19 + iVar7;\n      } while (pIVar17 != pIVar11);\n    }\n    iVar7 = dfa->state_table[uVar19 & dfa->state_hash_mask].num;\n    if (0 < iVar7) {\n      pprVar33 = dfa->state_table[uVar19 & dfa->state_hash_mask].array;\n      iVar32 = 0;\n      do {\n        prVar31 = *pprVar33;\n        if ((uVar19 == prVar31->hash) &&\n           (_Var18 = re_node_set_compare(&prVar31->nodes,(re_node_set *)set2),\n           CONCAT31(extraout_var,_Var18) != 0)) {\n          return (reg_errcode_t)prVar31;\n        }\n        iVar32 = iVar32 + 1;\n        pprVar33 = pprVar33 + 1;\n      } while (iVar7 != iVar32);\n    }\n    prVar31 = (re_dfastate_t *)(*(code *)PTR_calloc_004bf160)(0x38,1);\n    if (prVar31 != (re_dfastate_t *)0x0) {\n      rVar8 = re_node_set_init_copy(&prVar31->nodes,(re_node_set *)set2);\n      if (rVar8 == _REG_NOERROR) {\n        prVar31->entrance_nodes = &prVar31->nodes;\n        if (0 < (int)set2->nodes_alloc) {\n          prVar36 = dfa->nodes;\n          piVar25 = (int *)set2->nodes_len;\n          piVar16 = piVar25 + set2->nodes_alloc;\n          do {\n            iVar7 = *piVar25;\n            cVar3 = prVar36[iVar7].field_0x4;\n            if (cVar3 == '\x01') {\n              if ((*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000) != 0) {\n                prVar31->field_0x34 =\n                     prVar31->field_0x34 & 0xfb |\n                     (byte)(((uint)(*(int *)&prVar36[iVar7].field_0x4 << 0x14 |\n                                   *(int *)&prVar31->field_0x34 << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if ((*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000) != 0) {\n                  bVar4 = prVar31->field_0x34;\nLAB_00492380:\n                  prVar31->field_0x34 = bVar4 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar4 = prVar31->field_0x34;\n              bVar5 = (byte)(((uint)(*(int *)&prVar31->field_0x34 << 5 |\n                                    *(int *)&prVar36[iVar7].field_0x4 << 0x14) >> 0x1f) << 2);\n              prVar31->field_0x34 = bVar4 & 0xfb | bVar5;\n              if (cVar3 == '\x02') {\n                prVar31->field_0x34 = bVar4 & 0xf3 | bVar5 | 8;\n              }\n              else {\n                if (cVar3 != '\x04') {\n                  if (cVar3 != '\f') goto LAB_004922f0;\n                  bVar4 = prVar31->field_0x34;\n                  goto LAB_00492380;\n                }\n                prVar31->field_0x34 = prVar31->field_0x34 & 0xfd | 2;\n              }\n            }\n            piVar25 = piVar25 + 1;\n          } while (piVar25 != piVar16);\n        }\n        rVar8 = register_state(dfa,prVar31,uVar19);\n        if (rVar8 == _REG_NOERROR) {\n          return (reg_errcode_t)prVar31;\n        }\n        free_state(prVar31);\n      }\n      else {\n        (*(code *)PTR_free_004bf39c)(prVar31);\n      }\n    }\n    prVar22->nodes = (re_token_t *)0xc;\n  }" else (compound_statement "{\n    if (0 < (int)uVar19) {\n      pIVar17 = (Idx *)set2->nodes_len;\n      pIVar11 = pIVar17 + uVar19;\n      do {\n        iVar7 = *pIVar17;\n        pIVar17 = pIVar17 + 1;\n        uVar19 = uVar19 + iVar7;\n      } while (pIVar17 != pIVar11);\n    }\n    iVar7 = dfa->state_table[uVar19 & dfa->state_hash_mask].num;\n    if (0 < iVar7) {\n      pprVar33 = dfa->state_table[uVar19 & dfa->state_hash_mask].array;\n      iVar32 = 0;\n      do {\n        prVar31 = *pprVar33;\n        if ((uVar19 == prVar31->hash) &&\n           (_Var18 = re_node_set_compare(&prVar31->nodes,(re_node_set *)set2),\n           CONCAT31(extraout_var,_Var18) != 0)) {\n          return (reg_errcode_t)prVar31;\n        }\n        iVar32 = iVar32 + 1;\n        pprVar33 = pprVar33 + 1;\n      } while (iVar7 != iVar32);\n    }\n    prVar31 = (re_dfastate_t *)(*(code *)PTR_calloc_004bf160)(0x38,1);\n    if (prVar31 != (re_dfastate_t *)0x0) {\n      rVar8 = re_node_set_init_copy(&prVar31->nodes,(re_node_set *)set2);\n      if (rVar8 == _REG_NOERROR) {\n        prVar31->entrance_nodes = &prVar31->nodes;\n        if (0 < (int)set2->nodes_alloc) {\n          prVar36 = dfa->nodes;\n          piVar25 = (int *)set2->nodes_len;\n          piVar16 = piVar25 + set2->nodes_alloc;\n          do {\n            iVar7 = *piVar25;\n            cVar3 = prVar36[iVar7].field_0x4;\n            if (cVar3 == '\x01') {\n              if ((*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000) != 0) {\n                prVar31->field_0x34 =\n                     prVar31->field_0x34 & 0xfb |\n                     (byte)(((uint)(*(int *)&prVar36[iVar7].field_0x4 << 0x14 |\n                                   *(int *)&prVar31->field_0x34 << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if ((*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000) != 0) {\n                  bVar4 = prVar31->field_0x34;\nLAB_00492380:\n                  prVar31->field_0x34 = bVar4 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar4 = prVar31->field_0x34;\n              bVar5 = (byte)(((uint)(*(int *)&prVar31->field_0x34 << 5 |\n                                    *(int *)&prVar36[iVar7].field_0x4 << 0x14) >> 0x1f) << 2);\n              prVar31->field_0x34 = bVar4 & 0xfb | bVar5;\n              if (cVar3 == '\x02') {\n                prVar31->field_0x34 = bVar4 & 0xf3 | bVar5 | 8;\n              }\n              else {\n                if (cVar3 != '\x04') {\n                  if (cVar3 != '\f') goto LAB_004922f0;\n                  bVar4 = prVar31->field_0x34;\n                  goto LAB_00492380;\n                }\n                prVar31->field_0x34 = prVar31->field_0x34 & 0xfd | 2;\n              }\n            }\n            piVar25 = piVar25 + 1;\n          } while (piVar25 != piVar16);\n        }\n        rVar8 = register_state(dfa,prVar31,uVar19);\n        if (rVar8 == _REG_NOERROR) {\n          return (reg_errcode_t)prVar31;\n        }\n        free_state(prVar31);\n      }\n      else {\n        (*(code *)PTR_free_004bf39c)(prVar31);\n      }\n    }\n    prVar22->nodes = (re_token_t *)0xc;\n  }" { (if_statement "if (0 < (int)uVar19) {\n      pIVar17 = (Idx *)set2->nodes_len;\n      pIVar11 = pIVar17 + uVar19;\n      do {\n        iVar7 = *pIVar17;\n        pIVar17 = pIVar17 + 1;\n        uVar19 = uVar19 + iVar7;\n      } while (pIVar17 != pIVar11);\n    }" if (parenthesized_expression "(0 < (int)uVar19)" ( (binary_expression "0 < (int)uVar19" number_literal < (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      pIVar17 = (Idx *)set2->nodes_len;\n      pIVar11 = pIVar17 + uVar19;\n      do {\n        iVar7 = *pIVar17;\n        pIVar17 = pIVar17 + 1;\n        uVar19 = uVar19 + iVar7;\n      } while (pIVar17 != pIVar11);\n    }" { (expression_statement "pIVar17 = (Idx *)set2->nodes_len;" (assignment_expression "pIVar17 = (Idx *)set2->nodes_len" identifier = (cast_expression "(Idx *)set2->nodes_len" ( (type_descriptor "Idx *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "set2->nodes_len" identifier -> field_identifier))) ;) (expression_statement "pIVar11 = pIVar17 + uVar19;" (assignment_expression "pIVar11 = pIVar17 + uVar19" identifier = (binary_expression "pIVar17 + uVar19" identifier + identifier)) ;) (do_statement "do {\n        iVar7 = *pIVar17;\n        pIVar17 = pIVar17 + 1;\n        uVar19 = uVar19 + iVar7;\n      } while (pIVar17 != pIVar11);" do (compound_statement "{\n        iVar7 = *pIVar17;\n        pIVar17 = pIVar17 + 1;\n        uVar19 = uVar19 + iVar7;\n      }" { (expression_statement "iVar7 = *pIVar17;" (assignment_expression "iVar7 = *pIVar17" identifier = (pointer_expression "*pIVar17" * identifier)) ;) (expression_statement "pIVar17 = pIVar17 + 1;" (assignment_expression "pIVar17 = pIVar17 + 1" identifier = (binary_expression "pIVar17 + 1" identifier + number_literal)) ;) (expression_statement "uVar19 = uVar19 + iVar7;" (assignment_expression "uVar19 = uVar19 + iVar7" identifier = (binary_expression "uVar19 + iVar7" identifier + identifier)) ;) }) while (parenthesized_expression "(pIVar17 != pIVar11)" ( (binary_expression "pIVar17 != pIVar11" identifier != identifier) )) ;) })) (expression_statement "iVar7 = dfa->state_table[uVar19 & dfa->state_hash_mask].num;" (assignment_expression "iVar7 = dfa->state_table[uVar19 & dfa->state_hash_mask].num" identifier = (field_expression "dfa->state_table[uVar19 & dfa->state_hash_mask].num" (subscript_expression "dfa->state_table[uVar19 & dfa->state_hash_mask]" (field_expression "dfa->state_table" identifier -> field_identifier) [ (binary_expression "uVar19 & dfa->state_hash_mask" identifier & (field_expression "dfa->state_hash_mask" identifier -> field_identifier)) ]) . field_identifier)) ;) (if_statement "if (0 < iVar7) {\n      pprVar33 = dfa->state_table[uVar19 & dfa->state_hash_mask].array;\n      iVar32 = 0;\n      do {\n        prVar31 = *pprVar33;\n        if ((uVar19 == prVar31->hash) &&\n           (_Var18 = re_node_set_compare(&prVar31->nodes,(re_node_set *)set2),\n           CONCAT31(extraout_var,_Var18) != 0)) {\n          return (reg_errcode_t)prVar31;\n        }\n        iVar32 = iVar32 + 1;\n        pprVar33 = pprVar33 + 1;\n      } while (iVar7 != iVar32);\n    }" if (parenthesized_expression "(0 < iVar7)" ( (binary_expression "0 < iVar7" number_literal < identifier) )) (compound_statement "{\n      pprVar33 = dfa->state_table[uVar19 & dfa->state_hash_mask].array;\n      iVar32 = 0;\n      do {\n        prVar31 = *pprVar33;\n        if ((uVar19 == prVar31->hash) &&\n           (_Var18 = re_node_set_compare(&prVar31->nodes,(re_node_set *)set2),\n           CONCAT31(extraout_var,_Var18) != 0)) {\n          return (reg_errcode_t)prVar31;\n        }\n        iVar32 = iVar32 + 1;\n        pprVar33 = pprVar33 + 1;\n      } while (iVar7 != iVar32);\n    }" { (expression_statement "pprVar33 = dfa->state_table[uVar19 & dfa->state_hash_mask].array;" (assignment_expression "pprVar33 = dfa->state_table[uVar19 & dfa->state_hash_mask].array" identifier = (field_expression "dfa->state_table[uVar19 & dfa->state_hash_mask].array" (subscript_expression "dfa->state_table[uVar19 & dfa->state_hash_mask]" (field_expression "dfa->state_table" identifier -> field_identifier) [ (binary_expression "uVar19 & dfa->state_hash_mask" identifier & (field_expression "dfa->state_hash_mask" identifier -> field_identifier)) ]) . field_identifier)) ;) (expression_statement "iVar32 = 0;" (assignment_expression "iVar32 = 0" identifier = number_literal) ;) (do_statement "do {\n        prVar31 = *pprVar33;\n        if ((uVar19 == prVar31->hash) &&\n           (_Var18 = re_node_set_compare(&prVar31->nodes,(re_node_set *)set2),\n           CONCAT31(extraout_var,_Var18) != 0)) {\n          return (reg_errcode_t)prVar31;\n        }\n        iVar32 = iVar32 + 1;\n        pprVar33 = pprVar33 + 1;\n      } while (iVar7 != iVar32);" do (compound_statement "{\n        prVar31 = *pprVar33;\n        if ((uVar19 == prVar31->hash) &&\n           (_Var18 = re_node_set_compare(&prVar31->nodes,(re_node_set *)set2),\n           CONCAT31(extraout_var,_Var18) != 0)) {\n          return (reg_errcode_t)prVar31;\n        }\n        iVar32 = iVar32 + 1;\n        pprVar33 = pprVar33 + 1;\n      }" { (expression_statement "prVar31 = *pprVar33;" (assignment_expression "prVar31 = *pprVar33" identifier = (pointer_expression "*pprVar33" * identifier)) ;) (if_statement "if ((uVar19 == prVar31->hash) &&\n           (_Var18 = re_node_set_compare(&prVar31->nodes,(re_node_set *)set2),\n           CONCAT31(extraout_var,_Var18) != 0)) {\n          return (reg_errcode_t)prVar31;\n        }" if (parenthesized_expression "((uVar19 == prVar31->hash) &&\n           (_Var18 = re_node_set_compare(&prVar31->nodes,(re_node_set *)set2),\n           CONCAT31(extraout_var,_Var18) != 0))" ( (binary_expression "(uVar19 == prVar31->hash) &&\n           (_Var18 = re_node_set_compare(&prVar31->nodes,(re_node_set *)set2),\n           CONCAT31(extraout_var,_Var18) != 0)" (parenthesized_expression "(uVar19 == prVar31->hash)" ( (binary_expression "uVar19 == prVar31->hash" identifier == (field_expression "prVar31->hash" identifier -> field_identifier)) )) && (parenthesized_expression "(_Var18 = re_node_set_compare(&prVar31->nodes,(re_node_set *)set2),\n           CONCAT31(extraout_var,_Var18) != 0)" ( (comma_expression "_Var18 = re_node_set_compare(&prVar31->nodes,(re_node_set *)set2),\n           CONCAT31(extraout_var,_Var18) != 0" (assignment_expression "_Var18 = re_node_set_compare(&prVar31->nodes,(re_node_set *)set2)" identifier = (call_expression "re_node_set_compare(&prVar31->nodes,(re_node_set *)set2)" identifier (argument_list "(&prVar31->nodes,(re_node_set *)set2)" ( (pointer_expression "&prVar31->nodes" & (field_expression "prVar31->nodes" identifier -> field_identifier)) , (cast_expression "(re_node_set *)set2" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) , (binary_expression "CONCAT31(extraout_var,_Var18) != 0" (call_expression "CONCAT31(extraout_var,_Var18)" identifier (argument_list "(extraout_var,_Var18)" ( identifier , identifier ))) != number_literal)) ))) )) (compound_statement "{\n          return (reg_errcode_t)prVar31;\n        }" { (return_statement "return (reg_errcode_t)prVar31;" return (cast_expression "(reg_errcode_t)prVar31" ( (type_descriptor "reg_errcode_t" type_identifier) ) identifier) ;) })) (expression_statement "iVar32 = iVar32 + 1;" (assignment_expression "iVar32 = iVar32 + 1" identifier = (binary_expression "iVar32 + 1" identifier + number_literal)) ;) (expression_statement "pprVar33 = pprVar33 + 1;" (assignment_expression "pprVar33 = pprVar33 + 1" identifier = (binary_expression "pprVar33 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar7 != iVar32)" ( (binary_expression "iVar7 != iVar32" identifier != identifier) )) ;) })) (expression_statement "prVar31 = (re_dfastate_t *)(*(code *)PTR_calloc_004bf160)(0x38,1);" (assignment_expression "prVar31 = (re_dfastate_t *)(*(code *)PTR_calloc_004bf160)(0x38,1)" identifier = (cast_expression "(re_dfastate_t *)(*(code *)PTR_calloc_004bf160)(0x38,1)" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_calloc_004bf160)(0x38,1)" (parenthesized_expression "(*(code *)PTR_calloc_004bf160)" ( (pointer_expression "*(code *)PTR_calloc_004bf160" * (cast_expression "(code *)PTR_calloc_004bf160" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x38,1)" ( number_literal , number_literal ))))) ;) (if_statement "if (prVar31 != (re_dfastate_t *)0x0) {\n      rVar8 = re_node_set_init_copy(&prVar31->nodes,(re_node_set *)set2);\n      if (rVar8 == _REG_NOERROR) {\n        prVar31->entrance_nodes = &prVar31->nodes;\n        if (0 < (int)set2->nodes_alloc) {\n          prVar36 = dfa->nodes;\n          piVar25 = (int *)set2->nodes_len;\n          piVar16 = piVar25 + set2->nodes_alloc;\n          do {\n            iVar7 = *piVar25;\n            cVar3 = prVar36[iVar7].field_0x4;\n            if (cVar3 == '\x01') {\n              if ((*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000) != 0) {\n                prVar31->field_0x34 =\n                     prVar31->field_0x34 & 0xfb |\n                     (byte)(((uint)(*(int *)&prVar36[iVar7].field_0x4 << 0x14 |\n                                   *(int *)&prVar31->field_0x34 << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if ((*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000) != 0) {\n                  bVar4 = prVar31->field_0x34;\nLAB_00492380:\n                  prVar31->field_0x34 = bVar4 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar4 = prVar31->field_0x34;\n              bVar5 = (byte)(((uint)(*(int *)&prVar31->field_0x34 << 5 |\n                                    *(int *)&prVar36[iVar7].field_0x4 << 0x14) >> 0x1f) << 2);\n              prVar31->field_0x34 = bVar4 & 0xfb | bVar5;\n              if (cVar3 == '\x02') {\n                prVar31->field_0x34 = bVar4 & 0xf3 | bVar5 | 8;\n              }\n              else {\n                if (cVar3 != '\x04') {\n                  if (cVar3 != '\f') goto LAB_004922f0;\n                  bVar4 = prVar31->field_0x34;\n                  goto LAB_00492380;\n                }\n                prVar31->field_0x34 = prVar31->field_0x34 & 0xfd | 2;\n              }\n            }\n            piVar25 = piVar25 + 1;\n          } while (piVar25 != piVar16);\n        }\n        rVar8 = register_state(dfa,prVar31,uVar19);\n        if (rVar8 == _REG_NOERROR) {\n          return (reg_errcode_t)prVar31;\n        }\n        free_state(prVar31);\n      }\n      else {\n        (*(code *)PTR_free_004bf39c)(prVar31);\n      }\n    }" if (parenthesized_expression "(prVar31 != (re_dfastate_t *)0x0)" ( (binary_expression "prVar31 != (re_dfastate_t *)0x0" identifier != (cast_expression "(re_dfastate_t *)0x0" ( (type_descriptor "re_dfastate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      rVar8 = re_node_set_init_copy(&prVar31->nodes,(re_node_set *)set2);\n      if (rVar8 == _REG_NOERROR) {\n        prVar31->entrance_nodes = &prVar31->nodes;\n        if (0 < (int)set2->nodes_alloc) {\n          prVar36 = dfa->nodes;\n          piVar25 = (int *)set2->nodes_len;\n          piVar16 = piVar25 + set2->nodes_alloc;\n          do {\n            iVar7 = *piVar25;\n            cVar3 = prVar36[iVar7].field_0x4;\n            if (cVar3 == '\x01') {\n              if ((*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000) != 0) {\n                prVar31->field_0x34 =\n                     prVar31->field_0x34 & 0xfb |\n                     (byte)(((uint)(*(int *)&prVar36[iVar7].field_0x4 << 0x14 |\n                                   *(int *)&prVar31->field_0x34 << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if ((*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000) != 0) {\n                  bVar4 = prVar31->field_0x34;\nLAB_00492380:\n                  prVar31->field_0x34 = bVar4 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar4 = prVar31->field_0x34;\n              bVar5 = (byte)(((uint)(*(int *)&prVar31->field_0x34 << 5 |\n                                    *(int *)&prVar36[iVar7].field_0x4 << 0x14) >> 0x1f) << 2);\n              prVar31->field_0x34 = bVar4 & 0xfb | bVar5;\n              if (cVar3 == '\x02') {\n                prVar31->field_0x34 = bVar4 & 0xf3 | bVar5 | 8;\n              }\n              else {\n                if (cVar3 != '\x04') {\n                  if (cVar3 != '\f') goto LAB_004922f0;\n                  bVar4 = prVar31->field_0x34;\n                  goto LAB_00492380;\n                }\n                prVar31->field_0x34 = prVar31->field_0x34 & 0xfd | 2;\n              }\n            }\n            piVar25 = piVar25 + 1;\n          } while (piVar25 != piVar16);\n        }\n        rVar8 = register_state(dfa,prVar31,uVar19);\n        if (rVar8 == _REG_NOERROR) {\n          return (reg_errcode_t)prVar31;\n        }\n        free_state(prVar31);\n      }\n      else {\n        (*(code *)PTR_free_004bf39c)(prVar31);\n      }\n    }" { (expression_statement "rVar8 = re_node_set_init_copy(&prVar31->nodes,(re_node_set *)set2);" (assignment_expression "rVar8 = re_node_set_init_copy(&prVar31->nodes,(re_node_set *)set2)" identifier = (call_expression "re_node_set_init_copy(&prVar31->nodes,(re_node_set *)set2)" identifier (argument_list "(&prVar31->nodes,(re_node_set *)set2)" ( (pointer_expression "&prVar31->nodes" & (field_expression "prVar31->nodes" identifier -> field_identifier)) , (cast_expression "(re_node_set *)set2" ( (type_descriptor "re_node_set *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (rVar8 == _REG_NOERROR) {\n        prVar31->entrance_nodes = &prVar31->nodes;\n        if (0 < (int)set2->nodes_alloc) {\n          prVar36 = dfa->nodes;\n          piVar25 = (int *)set2->nodes_len;\n          piVar16 = piVar25 + set2->nodes_alloc;\n          do {\n            iVar7 = *piVar25;\n            cVar3 = prVar36[iVar7].field_0x4;\n            if (cVar3 == '\x01') {\n              if ((*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000) != 0) {\n                prVar31->field_0x34 =\n                     prVar31->field_0x34 & 0xfb |\n                     (byte)(((uint)(*(int *)&prVar36[iVar7].field_0x4 << 0x14 |\n                                   *(int *)&prVar31->field_0x34 << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if ((*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000) != 0) {\n                  bVar4 = prVar31->field_0x34;\nLAB_00492380:\n                  prVar31->field_0x34 = bVar4 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar4 = prVar31->field_0x34;\n              bVar5 = (byte)(((uint)(*(int *)&prVar31->field_0x34 << 5 |\n                                    *(int *)&prVar36[iVar7].field_0x4 << 0x14) >> 0x1f) << 2);\n              prVar31->field_0x34 = bVar4 & 0xfb | bVar5;\n              if (cVar3 == '\x02') {\n                prVar31->field_0x34 = bVar4 & 0xf3 | bVar5 | 8;\n              }\n              else {\n                if (cVar3 != '\x04') {\n                  if (cVar3 != '\f') goto LAB_004922f0;\n                  bVar4 = prVar31->field_0x34;\n                  goto LAB_00492380;\n                }\n                prVar31->field_0x34 = prVar31->field_0x34 & 0xfd | 2;\n              }\n            }\n            piVar25 = piVar25 + 1;\n          } while (piVar25 != piVar16);\n        }\n        rVar8 = register_state(dfa,prVar31,uVar19);\n        if (rVar8 == _REG_NOERROR) {\n          return (reg_errcode_t)prVar31;\n        }\n        free_state(prVar31);\n      }\n      else {\n        (*(code *)PTR_free_004bf39c)(prVar31);\n      }" if (parenthesized_expression "(rVar8 == _REG_NOERROR)" ( (binary_expression "rVar8 == _REG_NOERROR" identifier == identifier) )) (compound_statement "{\n        prVar31->entrance_nodes = &prVar31->nodes;\n        if (0 < (int)set2->nodes_alloc) {\n          prVar36 = dfa->nodes;\n          piVar25 = (int *)set2->nodes_len;\n          piVar16 = piVar25 + set2->nodes_alloc;\n          do {\n            iVar7 = *piVar25;\n            cVar3 = prVar36[iVar7].field_0x4;\n            if (cVar3 == '\x01') {\n              if ((*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000) != 0) {\n                prVar31->field_0x34 =\n                     prVar31->field_0x34 & 0xfb |\n                     (byte)(((uint)(*(int *)&prVar36[iVar7].field_0x4 << 0x14 |\n                                   *(int *)&prVar31->field_0x34 << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if ((*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000) != 0) {\n                  bVar4 = prVar31->field_0x34;\nLAB_00492380:\n                  prVar31->field_0x34 = bVar4 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar4 = prVar31->field_0x34;\n              bVar5 = (byte)(((uint)(*(int *)&prVar31->field_0x34 << 5 |\n                                    *(int *)&prVar36[iVar7].field_0x4 << 0x14) >> 0x1f) << 2);\n              prVar31->field_0x34 = bVar4 & 0xfb | bVar5;\n              if (cVar3 == '\x02') {\n                prVar31->field_0x34 = bVar4 & 0xf3 | bVar5 | 8;\n              }\n              else {\n                if (cVar3 != '\x04') {\n                  if (cVar3 != '\f') goto LAB_004922f0;\n                  bVar4 = prVar31->field_0x34;\n                  goto LAB_00492380;\n                }\n                prVar31->field_0x34 = prVar31->field_0x34 & 0xfd | 2;\n              }\n            }\n            piVar25 = piVar25 + 1;\n          } while (piVar25 != piVar16);\n        }\n        rVar8 = register_state(dfa,prVar31,uVar19);\n        if (rVar8 == _REG_NOERROR) {\n          return (reg_errcode_t)prVar31;\n        }\n        free_state(prVar31);\n      }" { (expression_statement "prVar31->entrance_nodes = &prVar31->nodes;" (assignment_expression "prVar31->entrance_nodes = &prVar31->nodes" (field_expression "prVar31->entrance_nodes" identifier -> field_identifier) = (pointer_expression "&prVar31->nodes" & (field_expression "prVar31->nodes" identifier -> field_identifier))) ;) (if_statement "if (0 < (int)set2->nodes_alloc) {\n          prVar36 = dfa->nodes;\n          piVar25 = (int *)set2->nodes_len;\n          piVar16 = piVar25 + set2->nodes_alloc;\n          do {\n            iVar7 = *piVar25;\n            cVar3 = prVar36[iVar7].field_0x4;\n            if (cVar3 == '\x01') {\n              if ((*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000) != 0) {\n                prVar31->field_0x34 =\n                     prVar31->field_0x34 & 0xfb |\n                     (byte)(((uint)(*(int *)&prVar36[iVar7].field_0x4 << 0x14 |\n                                   *(int *)&prVar31->field_0x34 << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if ((*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000) != 0) {\n                  bVar4 = prVar31->field_0x34;\nLAB_00492380:\n                  prVar31->field_0x34 = bVar4 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar4 = prVar31->field_0x34;\n              bVar5 = (byte)(((uint)(*(int *)&prVar31->field_0x34 << 5 |\n                                    *(int *)&prVar36[iVar7].field_0x4 << 0x14) >> 0x1f) << 2);\n              prVar31->field_0x34 = bVar4 & 0xfb | bVar5;\n              if (cVar3 == '\x02') {\n                prVar31->field_0x34 = bVar4 & 0xf3 | bVar5 | 8;\n              }\n              else {\n                if (cVar3 != '\x04') {\n                  if (cVar3 != '\f') goto LAB_004922f0;\n                  bVar4 = prVar31->field_0x34;\n                  goto LAB_00492380;\n                }\n                prVar31->field_0x34 = prVar31->field_0x34 & 0xfd | 2;\n              }\n            }\n            piVar25 = piVar25 + 1;\n          } while (piVar25 != piVar16);\n        }" if (parenthesized_expression "(0 < (int)set2->nodes_alloc)" ( (binary_expression "0 < (int)set2->nodes_alloc" number_literal < (cast_expression "(int)set2->nodes_alloc" ( (type_descriptor "int" primitive_type) ) (field_expression "set2->nodes_alloc" identifier -> field_identifier))) )) (compound_statement "{\n          prVar36 = dfa->nodes;\n          piVar25 = (int *)set2->nodes_len;\n          piVar16 = piVar25 + set2->nodes_alloc;\n          do {\n            iVar7 = *piVar25;\n            cVar3 = prVar36[iVar7].field_0x4;\n            if (cVar3 == '\x01') {\n              if ((*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000) != 0) {\n                prVar31->field_0x34 =\n                     prVar31->field_0x34 & 0xfb |\n                     (byte)(((uint)(*(int *)&prVar36[iVar7].field_0x4 << 0x14 |\n                                   *(int *)&prVar31->field_0x34 << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if ((*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000) != 0) {\n                  bVar4 = prVar31->field_0x34;\nLAB_00492380:\n                  prVar31->field_0x34 = bVar4 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar4 = prVar31->field_0x34;\n              bVar5 = (byte)(((uint)(*(int *)&prVar31->field_0x34 << 5 |\n                                    *(int *)&prVar36[iVar7].field_0x4 << 0x14) >> 0x1f) << 2);\n              prVar31->field_0x34 = bVar4 & 0xfb | bVar5;\n              if (cVar3 == '\x02') {\n                prVar31->field_0x34 = bVar4 & 0xf3 | bVar5 | 8;\n              }\n              else {\n                if (cVar3 != '\x04') {\n                  if (cVar3 != '\f') goto LAB_004922f0;\n                  bVar4 = prVar31->field_0x34;\n                  goto LAB_00492380;\n                }\n                prVar31->field_0x34 = prVar31->field_0x34 & 0xfd | 2;\n              }\n            }\n            piVar25 = piVar25 + 1;\n          } while (piVar25 != piVar16);\n        }" { (expression_statement "prVar36 = dfa->nodes;" (assignment_expression "prVar36 = dfa->nodes" identifier = (field_expression "dfa->nodes" identifier -> field_identifier)) ;) (expression_statement "piVar25 = (int *)set2->nodes_len;" (assignment_expression "piVar25 = (int *)set2->nodes_len" identifier = (cast_expression "(int *)set2->nodes_len" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "set2->nodes_len" identifier -> field_identifier))) ;) (expression_statement "piVar16 = piVar25 + set2->nodes_alloc;" (assignment_expression "piVar16 = piVar25 + set2->nodes_alloc" identifier = (binary_expression "piVar25 + set2->nodes_alloc" identifier + (field_expression "set2->nodes_alloc" identifier -> field_identifier))) ;) (do_statement "do {\n            iVar7 = *piVar25;\n            cVar3 = prVar36[iVar7].field_0x4;\n            if (cVar3 == '\x01') {\n              if ((*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000) != 0) {\n                prVar31->field_0x34 =\n                     prVar31->field_0x34 & 0xfb |\n                     (byte)(((uint)(*(int *)&prVar36[iVar7].field_0x4 << 0x14 |\n                                   *(int *)&prVar31->field_0x34 << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if ((*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000) != 0) {\n                  bVar4 = prVar31->field_0x34;\nLAB_00492380:\n                  prVar31->field_0x34 = bVar4 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar4 = prVar31->field_0x34;\n              bVar5 = (byte)(((uint)(*(int *)&prVar31->field_0x34 << 5 |\n                                    *(int *)&prVar36[iVar7].field_0x4 << 0x14) >> 0x1f) << 2);\n              prVar31->field_0x34 = bVar4 & 0xfb | bVar5;\n              if (cVar3 == '\x02') {\n                prVar31->field_0x34 = bVar4 & 0xf3 | bVar5 | 8;\n              }\n              else {\n                if (cVar3 != '\x04') {\n                  if (cVar3 != '\f') goto LAB_004922f0;\n                  bVar4 = prVar31->field_0x34;\n                  goto LAB_00492380;\n                }\n                prVar31->field_0x34 = prVar31->field_0x34 & 0xfd | 2;\n              }\n            }\n            piVar25 = piVar25 + 1;\n          } while (piVar25 != piVar16);" do (compound_statement "{\n            iVar7 = *piVar25;\n            cVar3 = prVar36[iVar7].field_0x4;\n            if (cVar3 == '\x01') {\n              if ((*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000) != 0) {\n                prVar31->field_0x34 =\n                     prVar31->field_0x34 & 0xfb |\n                     (byte)(((uint)(*(int *)&prVar36[iVar7].field_0x4 << 0x14 |\n                                   *(int *)&prVar31->field_0x34 << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if ((*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000) != 0) {\n                  bVar4 = prVar31->field_0x34;\nLAB_00492380:\n                  prVar31->field_0x34 = bVar4 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar4 = prVar31->field_0x34;\n              bVar5 = (byte)(((uint)(*(int *)&prVar31->field_0x34 << 5 |\n                                    *(int *)&prVar36[iVar7].field_0x4 << 0x14) >> 0x1f) << 2);\n              prVar31->field_0x34 = bVar4 & 0xfb | bVar5;\n              if (cVar3 == '\x02') {\n                prVar31->field_0x34 = bVar4 & 0xf3 | bVar5 | 8;\n              }\n              else {\n                if (cVar3 != '\x04') {\n                  if (cVar3 != '\f') goto LAB_004922f0;\n                  bVar4 = prVar31->field_0x34;\n                  goto LAB_00492380;\n                }\n                prVar31->field_0x34 = prVar31->field_0x34 & 0xfd | 2;\n              }\n            }\n            piVar25 = piVar25 + 1;\n          }" { (expression_statement "iVar7 = *piVar25;" (assignment_expression "iVar7 = *piVar25" identifier = (pointer_expression "*piVar25" * identifier)) ;) (expression_statement "cVar3 = prVar36[iVar7].field_0x4;" (assignment_expression "cVar3 = prVar36[iVar7].field_0x4" identifier = (field_expression "prVar36[iVar7].field_0x4" (subscript_expression "prVar36[iVar7]" identifier [ identifier ]) . field_identifier)) ;) (if_statement "if (cVar3 == '\x01') {\n              if ((*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000) != 0) {\n                prVar31->field_0x34 =\n                     prVar31->field_0x34 & 0xfb |\n                     (byte)(((uint)(*(int *)&prVar36[iVar7].field_0x4 << 0x14 |\n                                   *(int *)&prVar31->field_0x34 << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if ((*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000) != 0) {\n                  bVar4 = prVar31->field_0x34;\nLAB_00492380:\n                  prVar31->field_0x34 = bVar4 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar4 = prVar31->field_0x34;\n              bVar5 = (byte)(((uint)(*(int *)&prVar31->field_0x34 << 5 |\n                                    *(int *)&prVar36[iVar7].field_0x4 << 0x14) >> 0x1f) << 2);\n              prVar31->field_0x34 = bVar4 & 0xfb | bVar5;\n              if (cVar3 == '\x02') {\n                prVar31->field_0x34 = bVar4 & 0xf3 | bVar5 | 8;\n              }\n              else {\n                if (cVar3 != '\x04') {\n                  if (cVar3 != '\f') goto LAB_004922f0;\n                  bVar4 = prVar31->field_0x34;\n                  goto LAB_00492380;\n                }\n                prVar31->field_0x34 = prVar31->field_0x34 & 0xfd | 2;\n              }\n            }" if (parenthesized_expression "(cVar3 == '\x01')" ( (binary_expression "cVar3 == '\x01'" identifier == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n              if ((*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000) != 0) {\n                prVar31->field_0x34 =\n                     prVar31->field_0x34 & 0xfb |\n                     (byte)(((uint)(*(int *)&prVar36[iVar7].field_0x4 << 0x14 |\n                                   *(int *)&prVar31->field_0x34 << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if ((*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000) != 0) {\n                  bVar4 = prVar31->field_0x34;\nLAB_00492380:\n                  prVar31->field_0x34 = bVar4 & 0xfe | 1;\n                }\n              }\n            }" { (if_statement "if ((*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000) != 0) {\n                prVar31->field_0x34 =\n                     prVar31->field_0x34 & 0xfb |\n                     (byte)(((uint)(*(int *)&prVar36[iVar7].field_0x4 << 0x14 |\n                                   *(int *)&prVar31->field_0x34 << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if ((*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000) != 0) {\n                  bVar4 = prVar31->field_0x34;\nLAB_00492380:\n                  prVar31->field_0x34 = bVar4 & 0xfe | 1;\n                }\n              }" if (parenthesized_expression "((*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000) != 0)" ( (binary_expression "(*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000) != 0" (parenthesized_expression "(*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000)" ( (binary_expression "*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000" (pointer_expression "*(uint *)&prVar36[iVar7].field_0x4" * (cast_expression "(uint *)&prVar36[iVar7].field_0x4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar36[iVar7].field_0x4" & (field_expression "prVar36[iVar7].field_0x4" (subscript_expression "prVar36[iVar7]" identifier [ identifier ]) . field_identifier)))) & number_literal) )) != number_literal) )) (compound_statement "{\n                prVar31->field_0x34 =\n                     prVar31->field_0x34 & 0xfb |\n                     (byte)(((uint)(*(int *)&prVar36[iVar7].field_0x4 << 0x14 |\n                                   *(int *)&prVar31->field_0x34 << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if ((*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000) != 0) {\n                  bVar4 = prVar31->field_0x34;\nLAB_00492380:\n                  prVar31->field_0x34 = bVar4 & 0xfe | 1;\n                }\n              }" { (expression_statement "prVar31->field_0x34 =\n                     prVar31->field_0x34 & 0xfb |\n                     (byte)(((uint)(*(int *)&prVar36[iVar7].field_0x4 << 0x14 |\n                                   *(int *)&prVar31->field_0x34 << 5) >> 0x1f) << 2);" (assignment_expression "prVar31->field_0x34 =\n                     prVar31->field_0x34 & 0xfb |\n                     (byte)(((uint)(*(int *)&prVar36[iVar7].field_0x4 << 0x14 |\n                                   *(int *)&prVar31->field_0x34 << 5) >> 0x1f) << 2)" (field_expression "prVar31->field_0x34" identifier -> field_identifier) = (binary_expression "prVar31->field_0x34 & 0xfb |\n                     (byte)(((uint)(*(int *)&prVar36[iVar7].field_0x4 << 0x14 |\n                                   *(int *)&prVar31->field_0x34 << 5) >> 0x1f) << 2)" (binary_expression "prVar31->field_0x34 & 0xfb" (field_expression "prVar31->field_0x34" identifier -> field_identifier) & number_literal) | (call_expression "(byte)(((uint)(*(int *)&prVar36[iVar7].field_0x4 << 0x14 |\n                                   *(int *)&prVar31->field_0x34 << 5) >> 0x1f) << 2)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(((uint)(*(int *)&prVar36[iVar7].field_0x4 << 0x14 |\n                                   *(int *)&prVar31->field_0x34 << 5) >> 0x1f) << 2)" ( (binary_expression "((uint)(*(int *)&prVar36[iVar7].field_0x4 << 0x14 |\n                                   *(int *)&prVar31->field_0x34 << 5) >> 0x1f) << 2" (parenthesized_expression "((uint)(*(int *)&prVar36[iVar7].field_0x4 << 0x14 |\n                                   *(int *)&prVar31->field_0x34 << 5) >> 0x1f)" ( (binary_expression "(uint)(*(int *)&prVar36[iVar7].field_0x4 << 0x14 |\n                                   *(int *)&prVar31->field_0x34 << 5) >> 0x1f" (call_expression "(uint)(*(int *)&prVar36[iVar7].field_0x4 << 0x14 |\n                                   *(int *)&prVar31->field_0x34 << 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)&prVar36[iVar7].field_0x4 << 0x14 |\n                                   *(int *)&prVar31->field_0x34 << 5)" ( (binary_expression "*(int *)&prVar36[iVar7].field_0x4 << 0x14 |\n                                   *(int *)&prVar31->field_0x34 << 5" (binary_expression "*(int *)&prVar36[iVar7].field_0x4 << 0x14" (pointer_expression "*(int *)&prVar36[iVar7].field_0x4" * (cast_expression "(int *)&prVar36[iVar7].field_0x4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar36[iVar7].field_0x4" & (field_expression "prVar36[iVar7].field_0x4" (subscript_expression "prVar36[iVar7]" identifier [ identifier ]) . field_identifier)))) << number_literal) | (binary_expression "*(int *)&prVar31->field_0x34 << 5" (pointer_expression "*(int *)&prVar31->field_0x34" * (cast_expression "(int *)&prVar31->field_0x34" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar31->field_0x34" & (field_expression "prVar31->field_0x34" identifier -> field_identifier)))) << number_literal)) ))) >> number_literal) )) << number_literal) ))))) ;) (labeled_statement "LAB_004922f0:\n                if ((*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000) != 0) {\n                  bVar4 = prVar31->field_0x34;\nLAB_00492380:\n                  prVar31->field_0x34 = bVar4 & 0xfe | 1;\n                }" statement_identifier : (if_statement "if ((*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000) != 0) {\n                  bVar4 = prVar31->field_0x34;\nLAB_00492380:\n                  prVar31->field_0x34 = bVar4 & 0xfe | 1;\n                }" if (parenthesized_expression "((*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000) != 0)" ( (binary_expression "(*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000) != 0" (parenthesized_expression "(*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000)" ( (binary_expression "*(uint *)&prVar36[iVar7].field_0x4 & 0xffc000" (pointer_expression "*(uint *)&prVar36[iVar7].field_0x4" * (cast_expression "(uint *)&prVar36[iVar7].field_0x4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar36[iVar7].field_0x4" & (field_expression "prVar36[iVar7].field_0x4" (subscript_expression "prVar36[iVar7]" identifier [ identifier ]) . field_identifier)))) & number_literal) )) != number_literal) )) (compound_statement "{\n                  bVar4 = prVar31->field_0x34;\nLAB_00492380:\n                  prVar31->field_0x34 = bVar4 & 0xfe | 1;\n                }" { (expression_statement "bVar4 = prVar31->field_0x34;" (assignment_expression "bVar4 = prVar31->field_0x34" identifier = (field_expression "prVar31->field_0x34" identifier -> field_identifier)) ;) (labeled_statement "LAB_00492380:\n                  prVar31->field_0x34 = bVar4 & 0xfe | 1;" statement_identifier : (expression_statement "prVar31->field_0x34 = bVar4 & 0xfe | 1;" (assignment_expression "prVar31->field_0x34 = bVar4 & 0xfe | 1" (field_expression "prVar31->field_0x34" identifier -> field_identifier) = (binary_expression "bVar4 & 0xfe | 1" (binary_expression "bVar4 & 0xfe" identifier & number_literal) | number_literal)) ;)) }))) })) }) (else_clause "else {\n              bVar4 = prVar31->field_0x34;\n              bVar5 = (byte)(((uint)(*(int *)&prVar31->field_0x34 << 5 |\n                                    *(int *)&prVar36[iVar7].field_0x4 << 0x14) >> 0x1f) << 2);\n              prVar31->field_0x34 = bVar4 & 0xfb | bVar5;\n              if (cVar3 == '\x02') {\n                prVar31->field_0x34 = bVar4 & 0xf3 | bVar5 | 8;\n              }\n              else {\n                if (cVar3 != '\x04') {\n                  if (cVar3 != '\f') goto LAB_004922f0;\n                  bVar4 = prVar31->field_0x34;\n                  goto LAB_00492380;\n                }\n                prVar31->field_0x34 = prVar31->field_0x34 & 0xfd | 2;\n              }\n            }" else (compound_statement "{\n              bVar4 = prVar31->field_0x34;\n              bVar5 = (byte)(((uint)(*(int *)&prVar31->field_0x34 << 5 |\n                                    *(int *)&prVar36[iVar7].field_0x4 << 0x14) >> 0x1f) << 2);\n              prVar31->field_0x34 = bVar4 & 0xfb | bVar5;\n              if (cVar3 == '\x02') {\n                prVar31->field_0x34 = bVar4 & 0xf3 | bVar5 | 8;\n              }\n              else {\n                if (cVar3 != '\x04') {\n                  if (cVar3 != '\f') goto LAB_004922f0;\n                  bVar4 = prVar31->field_0x34;\n                  goto LAB_00492380;\n                }\n                prVar31->field_0x34 = prVar31->field_0x34 & 0xfd | 2;\n              }\n            }" { (expression_statement "bVar4 = prVar31->field_0x34;" (assignment_expression "bVar4 = prVar31->field_0x34" identifier = (field_expression "prVar31->field_0x34" identifier -> field_identifier)) ;) (expression_statement "bVar5 = (byte)(((uint)(*(int *)&prVar31->field_0x34 << 5 |\n                                    *(int *)&prVar36[iVar7].field_0x4 << 0x14) >> 0x1f) << 2);" (assignment_expression "bVar5 = (byte)(((uint)(*(int *)&prVar31->field_0x34 << 5 |\n                                    *(int *)&prVar36[iVar7].field_0x4 << 0x14) >> 0x1f) << 2)" identifier = (call_expression "(byte)(((uint)(*(int *)&prVar31->field_0x34 << 5 |\n                                    *(int *)&prVar36[iVar7].field_0x4 << 0x14) >> 0x1f) << 2)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(((uint)(*(int *)&prVar31->field_0x34 << 5 |\n                                    *(int *)&prVar36[iVar7].field_0x4 << 0x14) >> 0x1f) << 2)" ( (binary_expression "((uint)(*(int *)&prVar31->field_0x34 << 5 |\n                                    *(int *)&prVar36[iVar7].field_0x4 << 0x14) >> 0x1f) << 2" (parenthesized_expression "((uint)(*(int *)&prVar31->field_0x34 << 5 |\n                                    *(int *)&prVar36[iVar7].field_0x4 << 0x14) >> 0x1f)" ( (binary_expression "(uint)(*(int *)&prVar31->field_0x34 << 5 |\n                                    *(int *)&prVar36[iVar7].field_0x4 << 0x14) >> 0x1f" (call_expression "(uint)(*(int *)&prVar31->field_0x34 << 5 |\n                                    *(int *)&prVar36[iVar7].field_0x4 << 0x14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)&prVar31->field_0x34 << 5 |\n                                    *(int *)&prVar36[iVar7].field_0x4 << 0x14)" ( (binary_expression "*(int *)&prVar31->field_0x34 << 5 |\n                                    *(int *)&prVar36[iVar7].field_0x4 << 0x14" (binary_expression "*(int *)&prVar31->field_0x34 << 5" (pointer_expression "*(int *)&prVar31->field_0x34" * (cast_expression "(int *)&prVar31->field_0x34" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar31->field_0x34" & (field_expression "prVar31->field_0x34" identifier -> field_identifier)))) << number_literal) | (binary_expression "*(int *)&prVar36[iVar7].field_0x4 << 0x14" (pointer_expression "*(int *)&prVar36[iVar7].field_0x4" * (cast_expression "(int *)&prVar36[iVar7].field_0x4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&prVar36[iVar7].field_0x4" & (field_expression "prVar36[iVar7].field_0x4" (subscript_expression "prVar36[iVar7]" identifier [ identifier ]) . field_identifier)))) << number_literal)) ))) >> number_literal) )) << number_literal) )))) ;) (expression_statement "prVar31->field_0x34 = bVar4 & 0xfb | bVar5;" (assignment_expression "prVar31->field_0x34 = bVar4 & 0xfb | bVar5" (field_expression "prVar31->field_0x34" identifier -> field_identifier) = (binary_expression "bVar4 & 0xfb | bVar5" (binary_expression "bVar4 & 0xfb" identifier & number_literal) | identifier)) ;) (if_statement "if (cVar3 == '\x02') {\n                prVar31->field_0x34 = bVar4 & 0xf3 | bVar5 | 8;\n              }\n              else {\n                if (cVar3 != '\x04') {\n                  if (cVar3 != '\f') goto LAB_004922f0;\n                  bVar4 = prVar31->field_0x34;\n                  goto LAB_00492380;\n                }\n                prVar31->field_0x34 = prVar31->field_0x34 & 0xfd | 2;\n              }" if (parenthesized_expression "(cVar3 == '\x02')" ( (binary_expression "cVar3 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n                prVar31->field_0x34 = bVar4 & 0xf3 | bVar5 | 8;\n              }" { (expression_statement "prVar31->field_0x34 = bVar4 & 0xf3 | bVar5 | 8;" (assignment_expression "prVar31->field_0x34 = bVar4 & 0xf3 | bVar5 | 8" (field_expression "prVar31->field_0x34" identifier -> field_identifier) = (binary_expression "bVar4 & 0xf3 | bVar5 | 8" (binary_expression "bVar4 & 0xf3 | bVar5" (binary_expression "bVar4 & 0xf3" identifier & number_literal) | identifier) | number_literal)) ;) }) (else_clause "else {\n                if (cVar3 != '\x04') {\n                  if (cVar3 != '\f') goto LAB_004922f0;\n                  bVar4 = prVar31->field_0x34;\n                  goto LAB_00492380;\n                }\n                prVar31->field_0x34 = prVar31->field_0x34 & 0xfd | 2;\n              }" else (compound_statement "{\n                if (cVar3 != '\x04') {\n                  if (cVar3 != '\f') goto LAB_004922f0;\n                  bVar4 = prVar31->field_0x34;\n                  goto LAB_00492380;\n                }\n                prVar31->field_0x34 = prVar31->field_0x34 & 0xfd | 2;\n              }" { (if_statement "if (cVar3 != '\x04') {\n                  if (cVar3 != '\f') goto LAB_004922f0;\n                  bVar4 = prVar31->field_0x34;\n                  goto LAB_00492380;\n                }" if (parenthesized_expression "(cVar3 != '\x04')" ( (binary_expression "cVar3 != '\x04'" identifier != (char_literal "'\x04'" ' escape_sequence ')) )) (compound_statement "{\n                  if (cVar3 != '\f') goto LAB_004922f0;\n                  bVar4 = prVar31->field_0x34;\n                  goto LAB_00492380;\n                }" { (if_statement "if (cVar3 != '\f') goto LAB_004922f0;" if (parenthesized_expression "(cVar3 != '\f')" ( (binary_expression "cVar3 != '\f'" identifier != (char_literal "'\f'" ' escape_sequence ')) )) (goto_statement "goto LAB_004922f0;" goto statement_identifier ;)) (expression_statement "bVar4 = prVar31->field_0x34;" (assignment_expression "bVar4 = prVar31->field_0x34" identifier = (field_expression "prVar31->field_0x34" identifier -> field_identifier)) ;) (goto_statement "goto LAB_00492380;" goto statement_identifier ;) })) (expression_statement "prVar31->field_0x34 = prVar31->field_0x34 & 0xfd | 2;" (assignment_expression "prVar31->field_0x34 = prVar31->field_0x34 & 0xfd | 2" (field_expression "prVar31->field_0x34" identifier -> field_identifier) = (binary_expression "prVar31->field_0x34 & 0xfd | 2" (binary_expression "prVar31->field_0x34 & 0xfd" (field_expression "prVar31->field_0x34" identifier -> field_identifier) & number_literal) | number_literal)) ;) }))) }))) (expression_statement "piVar25 = piVar25 + 1;" (assignment_expression "piVar25 = piVar25 + 1" identifier = (binary_expression "piVar25 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar25 != piVar16)" ( (binary_expression "piVar25 != piVar16" identifier != identifier) )) ;) })) (expression_statement "rVar8 = register_state(dfa,prVar31,uVar19);" (assignment_expression "rVar8 = register_state(dfa,prVar31,uVar19)" identifier = (call_expression "register_state(dfa,prVar31,uVar19)" identifier (argument_list "(dfa,prVar31,uVar19)" ( identifier , identifier , identifier )))) ;) (if_statement "if (rVar8 == _REG_NOERROR) {\n          return (reg_errcode_t)prVar31;\n        }" if (parenthesized_expression "(rVar8 == _REG_NOERROR)" ( (binary_expression "rVar8 == _REG_NOERROR" identifier == identifier) )) (compound_statement "{\n          return (reg_errcode_t)prVar31;\n        }" { (return_statement "return (reg_errcode_t)prVar31;" return (cast_expression "(reg_errcode_t)prVar31" ( (type_descriptor "reg_errcode_t" type_identifier) ) identifier) ;) })) (expression_statement "free_state(prVar31);" (call_expression "free_state(prVar31)" identifier (argument_list "(prVar31)" ( identifier ))) ;) }) (else_clause "else {\n        (*(code *)PTR_free_004bf39c)(prVar31);\n      }" else (compound_statement "{\n        (*(code *)PTR_free_004bf39c)(prVar31);\n      }" { (expression_statement "(*(code *)PTR_free_004bf39c)(prVar31);" (call_expression "(*(code *)PTR_free_004bf39c)(prVar31)" (parenthesized_expression "(*(code *)PTR_free_004bf39c)" ( (pointer_expression "*(code *)PTR_free_004bf39c" * (cast_expression "(code *)PTR_free_004bf39c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(prVar31)" ( identifier ))) ;) }))) })) (expression_statement "prVar22->nodes = (re_token_t *)0xc;" (assignment_expression "prVar22->nodes = (re_token_t *)0xc" (field_expression "prVar22->nodes" identifier -> field_identifier) = (cast_expression "(re_token_t *)0xc" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (return_statement "return _REG_NOERROR;" return identifier ;) })))
(translation_unit "byte **** FUN_00491238(int *param_1,byte *******param_2,byte ******param_3)\n\n{\n  bool bVar1;\n  char cVar2;\n  byte bVar3;\n  byte bVar4;\n  byte ****ppppbVar5;\n  byte ******ppppppbVar6;\n  byte ******ppppppbVar7;\n  int iVar8;\n  int *piVar9;\n  byte ****ppppbVar10;\n  int iVar11;\n  byte *******pppppppbVar12;\n  byte ******ppppppbVar13;\n  undefined1 *puVar14;\n  byte *pbVar16;\n  byte *pbVar17;\n  byte *******pppppppbVar18;\n  byte *******pppppppbVar19;\n  byte *******pppppppbVar20;\n  byte ******ppppppbVar21;\n  byte ******ppppppbVar22;\n  byte *****pppppbVar23;\n  int iVar24;\n  byte ***pppbVar25;\n  byte *****pppppbVar26;\n  uint uVar27;\n  byte *****pppppbVar28;\n  byte *******unaff_s4;\n  byte *******unaff_s5;\n  byte *******unaff_s6;\n  uint uVar29;\n  byte *******unaff_s7;\n  uint uVar30;\n  int *unaff_s8;\n  byte *****pppppbVar31;\n  code *pcVar32;\n  int iStack_1ac;\n  int iStack_1a8;\n  byte ******ppppppbStack_190;\n  byte *****pppppbStack_18c;\n  undefined4 uStack_188;\n  byte bStack_184;\n  undefined1 auStack_183 [255];\n  byte ****ppppbStack_84;\n  int *piStack_80;\n  int iStack_7c;\n  byte *******pppppppbStack_78;\n  byte ******ppppppbStack_74;\n  byte *******pppppppbStack_70;\n  byte *******pppppppbStack_6c;\n  byte *******pppppppbStack_68;\n  byte *******pppppppbStack_64;\n  int *piStack_60;\n  code *pcStack_5c;\n  byte *******local_40;\n  int local_3c;\n  int local_38;\n  byte ******appppppbStack_34 [3];\n  undefined1 *puVar15;\n  \n  appppppbStack_34[2] = *(byte *******)PTR___stack_chk_guard_004bf38c;\n  pppppppbVar20 = (byte *******)((int)param_2 - param_1[6]);\n  if ((int)param_2 < param_1[6]) {\n    if (1 < param_1[0x14]) {\n      *(undefined1 *)(param_1 + 4) = 0;\n      *(undefined1 *)((int)param_1 + 0x11) = 0;\n      *(undefined1 *)((int)param_1 + 0x12) = 0;\n      *(undefined1 *)((int)param_1 + 0x13) = 0;\n      *(undefined1 *)(param_1 + 5) = 0;\n      *(undefined1 *)((int)param_1 + 0x15) = 0;\n      *(undefined1 *)((int)param_1 + 0x16) = 0;\n      *(undefined1 *)((int)param_1 + 0x17) = 0;\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    iVar11 = 6;\n    if (((uint)param_3 & 1) != 0) {\n      iVar11 = 4;\n    }\n    param_1[0xf] = iVar11;\n    pppppppbVar20 = param_2;\n    if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[1] = *param_1;\n    }\n  }\n  pppppppbVar18 = param_2;\n  ppppppbVar22 = param_3;\n  if (pppppppbVar20 != (byte *******)0x0) {\n    if ((int)pppppppbVar20 < param_1[8]) {\n      if (*(char *)(param_1 + 0x13) == '\0') {\n        iVar11 = FUN_0048efec(param_1,(byte *)((int)pppppppbVar20 + -1));\n        param_1[0xf] = iVar11;\n        pppppppbVar18 = (byte *******)((int)pppppppbVar20 * 4);\n        if (param_1[0x14] < 2) {\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        else {\n          ppppppbVar22 = (byte ******)((param_1[7] - (int)pppppppbVar20) * 4);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar18 + param_1[2]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        if (cVar2 == '\0') {\n          iVar11 = param_1[7];\n        }\n        else {\n          ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar11 = param_1[7];\n        }\n        param_1[7] = iVar11 - (int)pppppppbVar20;\n        param_1[8] = param_1[8] - (int)pppppppbVar20;\n        goto LAB_00491360;\n      }\n      unaff_s6 = (byte *******)param_1[7];\n      unaff_s5 = (byte *******)param_1[3];\n      pbVar16 = (byte *)0x0;\n      pppppppbVar18 = unaff_s6;\n      do {\n        unaff_s4 = (byte *******)((int)(pbVar16 + (int)pppppppbVar18) / 2);\n        ppppppbVar6 = unaff_s5[(int)unaff_s4];\n        bVar1 = (int)pbVar16 < (int)unaff_s4;\n        pppppppbVar12 = unaff_s4;\n        if ((int)ppppppbVar6 <= (int)pppppppbVar20) {\n          pbVar16 = (byte *)((int)unaff_s4 + 1);\n          if ((int)pppppppbVar20 <= (int)ppppppbVar6) goto LAB_0049145c;\n          bVar1 = (int)pbVar16 < (int)pppppppbVar18;\n          pppppppbVar12 = pppppppbVar18;\n        }\n        pppppppbVar18 = pppppppbVar12;\n      } while (bVar1);\n      if ((int)ppppppbVar6 < (int)pppppppbVar20) {\n        unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n      }\nLAB_0049145c:\n      pppppppbVar18 = (byte *******)((int)unaff_s4 + -1);\n      iVar11 = FUN_0048efec(param_1);\n      param_1[0xf] = iVar11;\n      if ((((int)unaff_s6 <= (int)pppppppbVar20) || (pppppppbVar20 != unaff_s4)) ||\n         (param_3 = (byte ******)((int)pppppppbVar20 * 4),\n         (byte *******)unaff_s5[(int)unaff_s4] != pppppppbVar20)) {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        if ((0 < (int)unaff_s4) &&\n           ((byte *******)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pppppppbVar20)) {\n          pppppppbVar12 = unaff_s5 + (int)(unaff_s4 + 0x10000000);\n          do {\n            unaff_s4 = (byte *******)((int)unaff_s4 + -1);\n            if (unaff_s4 == (byte *******)0x0) break;\n            pppppppbVar19 = pppppppbVar12 + -2;\n            pppppppbVar12 = pppppppbVar12 + -1;\n          } while ((byte *******)*pppppppbVar19 == pppppppbVar20);\n        }\n        if ((int)unaff_s4 < (int)unaff_s6) {\n          piVar9 = (int *)(param_1[2] + (int)unaff_s4 * 4);\n          iVar11 = *piVar9;\n          while (iVar11 == -1) {\n            unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n            piVar9 = piVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            iVar11 = *piVar9;\n          }\nLAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;\n          ppppppbVar22 = (byte ******)((int)*unaff_s4 - (int)pppppppbVar20);\n          param_1[7] = (int)ppppppbVar22;\n          if (ppppppbVar22 == (byte ******)0x0) goto LAB_00491650;\n          if (0 < (int)ppppppbVar22) {\n            iVar11 = 0;\n            do {\n              *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n              iVar11 = iVar11 + 1;\n              ppppppbVar22 = (byte ******)param_1[7];\n            } while (iVar11 < (int)ppppppbVar22);\n          }\n          pppppppbVar18 = (byte *******)0xff;\n          (*(code *)PTR_memset_004bf260)(param_1[1]);\n          iVar11 = param_1[7];\n        }\n        else {\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          param_1[7] = 0;\nLAB_00491650:\n          iVar11 = param_1[7];\n        }\n        param_1[8] = iVar11;\n        goto LAB_00491360;\n      }\n      (*(code *)PTR_memmove_004bf3a4)\n                (param_1[2],param_1[2] + (int)param_3,((int)unaff_s6 - (int)pppppppbVar20) * 4);\n      ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n      pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n      (*(code *)PTR_memmove_004bf3a4)();\n      iVar11 = param_1[7];\n      param_1[7] = iVar11 - (int)pppppppbVar20;\n      param_1[8] = param_1[8] - (int)pppppppbVar20;\n      if (iVar11 - (int)pppppppbVar20 < 1) goto LAB_00491360;\n      iVar11 = 0;\n      do {\n        *(int *)(param_1[3] + iVar11 * 4) = *(int *)(param_1[3] + (int)param_3) - (int)pppppppbVar20\n        ;\n        iVar11 = iVar11 + 1;\n        param_3 = param_3 + 1;\n      } while (iVar11 < param_1[7]);\n      cVar2 = *(char *)((int)param_1 + 0x4b);\n    }\n    else {\n      unaff_s6 = (byte *******)param_1[7];\n      if (*(char *)(param_1 + 0x13) != '\0') {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n      }\n      param_1[7] = 0;\n      if (param_1[0x14] < 2) {\n        pppppppbVar18 =\n             (byte *******)(uint)*(byte *)((int)pppppppbVar20 + param_1[6] + *param_1 + -1);\n        param_1[8] = 0;\n        if (param_1[0x10] != 0) {\n          pppppppbVar18 = (byte *******)(uint)*(byte *)((int)pppppppbVar18 + param_1[0x10]);\n        }\n        iVar11 = 1;\n        if ((*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f) & 1) == 0) {\n          iVar11 = 2;\n          if (pppppppbVar18 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        param_1[0xf] = iVar11;\n        goto LAB_00491360;\n      }\n      if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0049179c:\n        iVar11 = param_1[6];\nLAB_004917a0:\n        pppppppbVar12 = (byte *******)(iVar11 + param_1[8]);\n        if ((int)pppppppbVar12 < (int)param_2) {\n          unaff_s8 = param_1 + 4;\n          unaff_s7 = (byte *******)&local_40;\n          do {\n            unaff_s5 = pppppppbVar12;\n            iVar24 = param_1[0xb];\n            local_3c = param_1[4];\n            local_38 = param_1[5];\n            pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1);\n            iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8);\n            unaff_s4 = local_40;\n            if (0xfffffffc < iVar11 - 1U) {\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }\n            pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11);\n          } while ((int)pppppppbVar12 < (int)param_2);\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n          if (unaff_s4 != (byte *******)0xffffffff) goto LAB_00491834;\n        }\n        else {\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n        }\n        pppppppbVar18 = (byte *******)((int)unaff_s6 + -1);\n        iVar11 = FUN_0048efec(param_1,pppppppbVar18,param_3);\n        param_1[0xf] = iVar11;\n      }\n      else {\n        pppppppbVar12 = (byte *******)*param_1;\n        unaff_s4 = (byte *******)((int)pppppppbVar12 + param_1[6]);\n        pppppppbVar18 = (byte *******)((int)unaff_s4 + ((int)pppppppbVar20 - param_1[0x14]));\n        if (pppppppbVar18 <= pppppppbVar12) {\n          pppppppbVar18 = pppppppbVar12;\n        }\n        pppppppbVar12 = (byte *******)((int)unaff_s4 + (int)((int)pppppppbVar20 + -1));\n        unaff_s5 = pppppppbVar20;\n        if (pppppppbVar12 < pppppppbVar18) goto LAB_0049179c;\n        bVar3 = *(byte *)pppppppbVar12;\n        unaff_s7 = pppppppbVar12;\n        while ((bVar3 & 0xc0) == 0x80) {\n          pppppppbVar19 = (byte *******)((int)unaff_s7 + -1);\n          unaff_s7 = pppppppbVar12;\n          if (pppppppbVar19 < pppppppbVar18) goto LAB_0049179c;\n          unaff_s7 = pppppppbVar19;\n          bVar3 = *(byte *)pppppppbVar19;\n        }\n        iVar11 = param_1[0x10];\n        pbVar16 = (byte *)((int)unaff_s4 + (param_1[0xc] - (int)unaff_s7));\n        pppppppbVar18 = unaff_s7;\n        if (iVar11 != 0) {\n          pbVar17 = (byte *)0x6;\n          if ((int)pbVar16 < 7) {\n            pbVar17 = pbVar16;\n          }\n          if ((int)(pbVar17 + -1) < 0) {\n            pppppppbVar18 = appppppbStack_34;\n          }\n          else {\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }\n        }\n        local_3c = 0;\n        local_38 = 0;\n        uVar29 = (*(code *)PTR_mbrtowc_004bf2ec)(&local_40);\n        uVar30 = (int)((int)unaff_s4 + (int)pppppppbVar20) - (int)unaff_s7;\n        if ((uVar29 < uVar30) || (0xfffffffd < uVar29)) goto LAB_0049179c;\n        *(undefined1 *)(param_1 + 4) = 0;\n        *(undefined1 *)((int)param_1 + 0x11) = 0;\n        *(undefined1 *)((int)param_1 + 0x12) = 0;\n        *(undefined1 *)((int)param_1 + 0x13) = 0;\n        *(undefined1 *)(param_1 + 5) = 0;\n        *(undefined1 *)((int)param_1 + 0x15) = 0;\n        *(undefined1 *)((int)param_1 + 0x16) = 0;\n        *(undefined1 *)((int)param_1 + 0x17) = 0;\n        param_1[7] = uVar29 - uVar30;\n        unaff_s4 = local_40;\n        if (local_40 == (byte *******)0xffffffff) {\n          iVar11 = param_1[6];\n          goto LAB_004917a0;\n        }\nLAB_00491834:\n        if (*(char *)((int)param_1 + 0x4e) == '\0') {\nLAB_00491840:\n          iVar11 = 2;\n          if (unaff_s4 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        else {\n          iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          iVar11 = 1;\n          if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }\n        param_1[0xf] = iVar11;\n      }\nLAB_00491854:\n      ppppppbVar22 = (byte ******)param_1[7];\n      if (ppppppbVar22 == (byte ******)0x0) {\nLAB_00491860:\n        iVar11 = param_1[7];\n      }\n      else {\n        iVar11 = 0;\n        if (0 < (int)ppppppbVar22) {\n          do {\n            *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n            iVar11 = iVar11 + 1;\n            ppppppbVar22 = (byte ******)param_1[7];\n          } while (iVar11 < (int)ppppppbVar22);\n        }\n        pppppppbVar18 = (byte *******)0xff;\n        if (*(char *)((int)param_1 + 0x4b) == '\0') goto LAB_00491860;\n        (*(code *)PTR_memset_004bf260)(param_1[1]);\n        iVar11 = param_1[7];\n      }\n      param_1[8] = iVar11;\nLAB_00491360:\n      cVar2 = *(char *)((int)param_1 + 0x4b);\n    }\n    if (cVar2 == '\0') {\n      param_1[1] = (int)((int)pppppppbVar20 + param_1[1]);\n    }\n  }\n  param_1[6] = (int)param_2;\n  iVar11 = param_1[0xc];\n  param_1[0xc] = iVar11 - (int)pppppppbVar20;\n  iVar24 = param_1[0xe] - (int)pppppppbVar20;\n  param_1[0xe] = iVar24;\n  if (param_1[0x14] < 2) {\n    if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[7] = iVar11 - (int)pppppppbVar20;\n      goto LAB_00491aa8;\n    }\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      if (param_1[0x10] == 0) goto LAB_00491aa8;\n      FUN_00489d80();\n      param_1[10] = 0;\n    }\n    else {\n      FUN_0048b84c(param_1);\n      param_1[10] = 0;\n    }\n  }\n  else {\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      FUN_0048b928(param_1);\n      param_1[10] = 0;\n      goto LAB_00491aac;\n    }\n    ppppbVar5 = (byte ****)FUN_0048c3a4();\n    if (ppppbVar5 != (byte ****)0x0) goto LAB_00491ab0;\nLAB_00491aa8:\n    param_1[10] = 0;\n  }\nLAB_00491aac:\n  ppppbVar5 = (byte ****)0x0;\nLAB_00491ab0:\n  if (appppppbStack_34[2] == *(byte *******)PTR___stack_chk_guard_004bf38c) {\n    return ppppbVar5;\n  }\n  pcVar32 = FUN_00491b60;\n  ppppppbVar6 = appppppbStack_34[2];\n  (*(code *)PTR___stack_chk_fail_004bf34c)();\n  ppppbStack_84 = *(byte *****)PTR___stack_chk_guard_004bf38c;\n  pppppbVar31 = *ppppppbVar6;\n  if (pppppbVar31[0x17] == (byte ****)0x1) {\n    uVar29 = (uint)((int)ppppppbVar6[3] << 9) >> 0x1f;\n  }\n  else {\n    uVar29 = 0;\n  }\n  ppppppbVar13 = ppppppbVar6;\n  pppppppbVar20 = pppppppbVar18;\n  ppppppbVar21 = ppppppbVar22;\n  piStack_80 = param_1;\n  iStack_7c = iVar24;\n  pppppppbStack_78 = param_2;\n  ppppppbStack_74 = param_3;\n  pppppppbStack_70 = unaff_s4;\n  pppppppbStack_6c = unaff_s5;\n  pppppppbStack_68 = unaff_s6;\n  pppppppbStack_64 = unaff_s7;\n  piStack_60 = unaff_s8;\n  pcStack_5c = pcVar32;\n  if (0 < (int)pppppppbVar18[2]) {\n    iStack_1a8 = 0;\n    do {\n      pppppbVar23 = pppppppbVar18[3][iStack_1a8];\n      ppppppbVar7 = (byte ******)((int)pppppbVar23 * 8);\n      ppppbVar5 = *pppppbVar31 + (int)pppppbVar23 * 2;\n      ppppppbVar13 = (byte ******)(uint)*(byte *)(ppppbVar5 + 1);\n      pppppppbVar20 = (byte *******)&DAT_00000001;\n      if (ppppppbVar13 == (byte ******)&DAT_00000001) {\n        uVar30 = (uint)*(byte *)ppppbVar5;\n        *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        if (uVar29 != 0) {\n          if (uVar30 + 0x80 < 0x180) {\n            piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n          }\n          *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        }\n        if (((int)ppppppbVar6[3] << 9 < 0) &&\n           (ppppppbVar13 = ppppppbVar7, 1 < (int)pppppbVar31[0x17])) {\n          bStack_184 = *(byte *)(*pppppbVar31 + (int)pppppbVar23 * 2);\n          if ((byte ****)((int)pppppbVar23 + 1U) < pppppbVar31[2]) {\n            ppppbVar5 = (byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2));\n            ppppppbVar7 = ppppppbVar7 + 4;\n            if (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400) {\n              puVar15 = auStack_183;\n              do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar14 = auStack_183;\n            }\n          }\n          else {\n            puVar14 = auStack_183;\n          }\n          pppppbStack_18c = (byte *****)0x0;\n          uStack_188 = 0;\n          pppppppbVar20 = (byte *******)&bStack_184;\n          iVar11 = -(int)pppppppbVar20;\n          ppppppbVar13 = (byte ******)&ppppppbStack_190;\n          ppppppbVar21 = (byte ******)(puVar14 + iVar11);\n          ppppppbVar7 = (byte ******)(*(code *)PTR_mbrtowc_004bf2ec)();\n          if ((byte ******)(puVar14 + iVar11) == ppppppbVar7) {\n            pppppppbVar20 = (byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190);\n            ppppppbVar21 = &pppppbStack_18c;\n            ppppppbVar13 = (byte ******)&bStack_184;\n            iVar11 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar11 != -1) {\n              *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n            }\n          }\n        }\n      }\n      else {\n        pppppppbVar20 = (byte *******)&DAT_00000006;\n        if (ppppppbVar13 == (byte ******)0x3) {\n          iStack_1ac = 0;\n          iVar11 = 0;\n          do {\n            uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac);\n            uVar30 = 0;\n            iVar24 = iVar11;\n            do {\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            } while (uVar30 != 0x20);\n            iVar11 = iVar11 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar11 != 0x100);\n        }\n        else if (ppppppbVar13 == (byte ******)&DAT_00000006) {\n          pppbVar25 = *ppppbVar5;\n          if (((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))) {\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }\n          else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }\n          if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }\n        }\n      }\n      iStack_1a8 = iStack_1a8 + 1;\n    } while (iStack_1a8 < (int)pppppppbVar18[2]);\n  }\n  if (ppppbStack_84 == *(byte *****)PTR___stack_chk_guard_004bf38c) {\n    return *(byte *****)PTR___stack_chk_guard_004bf38c;\n  }\n  (*(code *)PTR___stack_chk_fail_004bf34c)();\n  pppppbVar31 = ppppppbVar21[1];\n  if (pppppbVar31 == (byte *****)0x0) {\n    *ppppppbVar13 = (byte *****)0x0;\n  }\n  else {\n    if (0 < (int)pppppbVar31) {\n      pppppbVar23 = ppppppbVar21[2];\n      pppppbVar26 = pppppbVar23 + (int)pppppbVar31;\n      do {\n        ppppbVar5 = *pppppbVar23;\n        pppppbVar23 = pppppbVar23 + 1;\n        pppppbVar31 = (byte *****)((int)pppppbVar31 + (int)ppppbVar5);\n      } while (pppppbVar23 != pppppbVar26);\n    }\n    pppppbVar23 = pppppppbVar20[8][((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3];\n    if (0 < (int)pppppbVar23) {\n      pppppbVar26 = (pppppppbVar20[8] + ((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3)[2];\n      pppppbVar28 = (byte *****)0x0;\n      do {\n        ppppbVar5 = *pppppbVar26;\n        if ((pppppbVar31 == (byte *****)*ppppbVar5) &&\n           (iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21), iVar11 != 0)) {\n          return ppppbVar5;\n        }\n        pppppbVar28 = (byte *****)((int)pppppbVar28 + 1);\n        pppppbVar26 = pppppbVar26 + 1;\n      } while (pppppbVar23 != pppppbVar28);\n    }\n    ppppbVar5 = (byte ****)(*(code *)PTR_calloc_004bf160)(0x38,1);\n    if (ppppbVar5 != (byte ****)0x0) {\n      iVar11 = FUN_0048c08c(ppppbVar5 + 1,ppppppbVar21);\n      if (iVar11 == 0) {\n        ppppbVar5[10] = (byte ***)(ppppbVar5 + 1);\n        if (0 < (int)ppppppbVar21[1]) {\n          ppppppbVar22 = *pppppppbVar20;\n          pppppbVar23 = ppppppbVar21[2];\n          pppppbVar26 = pppppbVar23 + (int)ppppppbVar21[1];\n          do {\n            ppppbVar10 = *pppppbVar23;\n            cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1);\n            if (cVar2 == '\x01') {\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }\n            pppppbVar23 = pppppbVar23 + 1;\n          } while (pppppbVar23 != pppppbVar26);\n        }\n        iVar11 = FUN_0048b6d0(pppppppbVar20,ppppbVar5,pppppbVar31);\n        if (iVar11 == 0) {\n          return ppppbVar5;\n        }\n        FUN_0048e3e8(ppppbVar5);\n      }\n      else {\n        (*(code *)PTR_free_004bf39c)(ppppbVar5);\n      }\n    }\n    *ppppppbVar13 = (byte *****)0xc;\n  }\n  return (byte ****)0x0;\n}\n\n" (function_definition "byte **** FUN_00491238(int *param_1,byte *******param_2,byte ******param_3)\n\n{\n  bool bVar1;\n  char cVar2;\n  byte bVar3;\n  byte bVar4;\n  byte ****ppppbVar5;\n  byte ******ppppppbVar6;\n  byte ******ppppppbVar7;\n  int iVar8;\n  int *piVar9;\n  byte ****ppppbVar10;\n  int iVar11;\n  byte *******pppppppbVar12;\n  byte ******ppppppbVar13;\n  undefined1 *puVar14;\n  byte *pbVar16;\n  byte *pbVar17;\n  byte *******pppppppbVar18;\n  byte *******pppppppbVar19;\n  byte *******pppppppbVar20;\n  byte ******ppppppbVar21;\n  byte ******ppppppbVar22;\n  byte *****pppppbVar23;\n  int iVar24;\n  byte ***pppbVar25;\n  byte *****pppppbVar26;\n  uint uVar27;\n  byte *****pppppbVar28;\n  byte *******unaff_s4;\n  byte *******unaff_s5;\n  byte *******unaff_s6;\n  uint uVar29;\n  byte *******unaff_s7;\n  uint uVar30;\n  int *unaff_s8;\n  byte *****pppppbVar31;\n  code *pcVar32;\n  int iStack_1ac;\n  int iStack_1a8;\n  byte ******ppppppbStack_190;\n  byte *****pppppbStack_18c;\n  undefined4 uStack_188;\n  byte bStack_184;\n  undefined1 auStack_183 [255];\n  byte ****ppppbStack_84;\n  int *piStack_80;\n  int iStack_7c;\n  byte *******pppppppbStack_78;\n  byte ******ppppppbStack_74;\n  byte *******pppppppbStack_70;\n  byte *******pppppppbStack_6c;\n  byte *******pppppppbStack_68;\n  byte *******pppppppbStack_64;\n  int *piStack_60;\n  code *pcStack_5c;\n  byte *******local_40;\n  int local_3c;\n  int local_38;\n  byte ******appppppbStack_34 [3];\n  undefined1 *puVar15;\n  \n  appppppbStack_34[2] = *(byte *******)PTR___stack_chk_guard_004bf38c;\n  pppppppbVar20 = (byte *******)((int)param_2 - param_1[6]);\n  if ((int)param_2 < param_1[6]) {\n    if (1 < param_1[0x14]) {\n      *(undefined1 *)(param_1 + 4) = 0;\n      *(undefined1 *)((int)param_1 + 0x11) = 0;\n      *(undefined1 *)((int)param_1 + 0x12) = 0;\n      *(undefined1 *)((int)param_1 + 0x13) = 0;\n      *(undefined1 *)(param_1 + 5) = 0;\n      *(undefined1 *)((int)param_1 + 0x15) = 0;\n      *(undefined1 *)((int)param_1 + 0x16) = 0;\n      *(undefined1 *)((int)param_1 + 0x17) = 0;\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    iVar11 = 6;\n    if (((uint)param_3 & 1) != 0) {\n      iVar11 = 4;\n    }\n    param_1[0xf] = iVar11;\n    pppppppbVar20 = param_2;\n    if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[1] = *param_1;\n    }\n  }\n  pppppppbVar18 = param_2;\n  ppppppbVar22 = param_3;\n  if (pppppppbVar20 != (byte *******)0x0) {\n    if ((int)pppppppbVar20 < param_1[8]) {\n      if (*(char *)(param_1 + 0x13) == '\0') {\n        iVar11 = FUN_0048efec(param_1,(byte *)((int)pppppppbVar20 + -1));\n        param_1[0xf] = iVar11;\n        pppppppbVar18 = (byte *******)((int)pppppppbVar20 * 4);\n        if (param_1[0x14] < 2) {\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        else {\n          ppppppbVar22 = (byte ******)((param_1[7] - (int)pppppppbVar20) * 4);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar18 + param_1[2]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        if (cVar2 == '\0') {\n          iVar11 = param_1[7];\n        }\n        else {\n          ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar11 = param_1[7];\n        }\n        param_1[7] = iVar11 - (int)pppppppbVar20;\n        param_1[8] = param_1[8] - (int)pppppppbVar20;\n        goto LAB_00491360;\n      }\n      unaff_s6 = (byte *******)param_1[7];\n      unaff_s5 = (byte *******)param_1[3];\n      pbVar16 = (byte *)0x0;\n      pppppppbVar18 = unaff_s6;\n      do {\n        unaff_s4 = (byte *******)((int)(pbVar16 + (int)pppppppbVar18) / 2);\n        ppppppbVar6 = unaff_s5[(int)unaff_s4];\n        bVar1 = (int)pbVar16 < (int)unaff_s4;\n        pppppppbVar12 = unaff_s4;\n        if ((int)ppppppbVar6 <= (int)pppppppbVar20) {\n          pbVar16 = (byte *)((int)unaff_s4 + 1);\n          if ((int)pppppppbVar20 <= (int)ppppppbVar6) goto LAB_0049145c;\n          bVar1 = (int)pbVar16 < (int)pppppppbVar18;\n          pppppppbVar12 = pppppppbVar18;\n        }\n        pppppppbVar18 = pppppppbVar12;\n      } while (bVar1);\n      if ((int)ppppppbVar6 < (int)pppppppbVar20) {\n        unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n      }\nLAB_0049145c:\n      pppppppbVar18 = (byte *******)((int)unaff_s4 + -1);\n      iVar11 = FUN_0048efec(param_1);\n      param_1[0xf] = iVar11;\n      if ((((int)unaff_s6 <= (int)pppppppbVar20) || (pppppppbVar20 != unaff_s4)) ||\n         (param_3 = (byte ******)((int)pppppppbVar20 * 4),\n         (byte *******)unaff_s5[(int)unaff_s4] != pppppppbVar20)) {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        if ((0 < (int)unaff_s4) &&\n           ((byte *******)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pppppppbVar20)) {\n          pppppppbVar12 = unaff_s5 + (int)(unaff_s4 + 0x10000000);\n          do {\n            unaff_s4 = (byte *******)((int)unaff_s4 + -1);\n            if (unaff_s4 == (byte *******)0x0) break;\n            pppppppbVar19 = pppppppbVar12 + -2;\n            pppppppbVar12 = pppppppbVar12 + -1;\n          } while ((byte *******)*pppppppbVar19 == pppppppbVar20);\n        }\n        if ((int)unaff_s4 < (int)unaff_s6) {\n          piVar9 = (int *)(param_1[2] + (int)unaff_s4 * 4);\n          iVar11 = *piVar9;\n          while (iVar11 == -1) {\n            unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n            piVar9 = piVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            iVar11 = *piVar9;\n          }\nLAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;\n          ppppppbVar22 = (byte ******)((int)*unaff_s4 - (int)pppppppbVar20);\n          param_1[7] = (int)ppppppbVar22;\n          if (ppppppbVar22 == (byte ******)0x0) goto LAB_00491650;\n          if (0 < (int)ppppppbVar22) {\n            iVar11 = 0;\n            do {\n              *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n              iVar11 = iVar11 + 1;\n              ppppppbVar22 = (byte ******)param_1[7];\n            } while (iVar11 < (int)ppppppbVar22);\n          }\n          pppppppbVar18 = (byte *******)0xff;\n          (*(code *)PTR_memset_004bf260)(param_1[1]);\n          iVar11 = param_1[7];\n        }\n        else {\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          param_1[7] = 0;\nLAB_00491650:\n          iVar11 = param_1[7];\n        }\n        param_1[8] = iVar11;\n        goto LAB_00491360;\n      }\n      (*(code *)PTR_memmove_004bf3a4)\n                (param_1[2],param_1[2] + (int)param_3,((int)unaff_s6 - (int)pppppppbVar20) * 4);\n      ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n      pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n      (*(code *)PTR_memmove_004bf3a4)();\n      iVar11 = param_1[7];\n      param_1[7] = iVar11 - (int)pppppppbVar20;\n      param_1[8] = param_1[8] - (int)pppppppbVar20;\n      if (iVar11 - (int)pppppppbVar20 < 1) goto LAB_00491360;\n      iVar11 = 0;\n      do {\n        *(int *)(param_1[3] + iVar11 * 4) = *(int *)(param_1[3] + (int)param_3) - (int)pppppppbVar20\n        ;\n        iVar11 = iVar11 + 1;\n        param_3 = param_3 + 1;\n      } while (iVar11 < param_1[7]);\n      cVar2 = *(char *)((int)param_1 + 0x4b);\n    }\n    else {\n      unaff_s6 = (byte *******)param_1[7];\n      if (*(char *)(param_1 + 0x13) != '\0') {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n      }\n      param_1[7] = 0;\n      if (param_1[0x14] < 2) {\n        pppppppbVar18 =\n             (byte *******)(uint)*(byte *)((int)pppppppbVar20 + param_1[6] + *param_1 + -1);\n        param_1[8] = 0;\n        if (param_1[0x10] != 0) {\n          pppppppbVar18 = (byte *******)(uint)*(byte *)((int)pppppppbVar18 + param_1[0x10]);\n        }\n        iVar11 = 1;\n        if ((*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f) & 1) == 0) {\n          iVar11 = 2;\n          if (pppppppbVar18 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        param_1[0xf] = iVar11;\n        goto LAB_00491360;\n      }\n      if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0049179c:\n        iVar11 = param_1[6];\nLAB_004917a0:\n        pppppppbVar12 = (byte *******)(iVar11 + param_1[8]);\n        if ((int)pppppppbVar12 < (int)param_2) {\n          unaff_s8 = param_1 + 4;\n          unaff_s7 = (byte *******)&local_40;\n          do {\n            unaff_s5 = pppppppbVar12;\n            iVar24 = param_1[0xb];\n            local_3c = param_1[4];\n            local_38 = param_1[5];\n            pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1);\n            iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8);\n            unaff_s4 = local_40;\n            if (0xfffffffc < iVar11 - 1U) {\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }\n            pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11);\n          } while ((int)pppppppbVar12 < (int)param_2);\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n          if (unaff_s4 != (byte *******)0xffffffff) goto LAB_00491834;\n        }\n        else {\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n        }\n        pppppppbVar18 = (byte *******)((int)unaff_s6 + -1);\n        iVar11 = FUN_0048efec(param_1,pppppppbVar18,param_3);\n        param_1[0xf] = iVar11;\n      }\n      else {\n        pppppppbVar12 = (byte *******)*param_1;\n        unaff_s4 = (byte *******)((int)pppppppbVar12 + param_1[6]);\n        pppppppbVar18 = (byte *******)((int)unaff_s4 + ((int)pppppppbVar20 - param_1[0x14]));\n        if (pppppppbVar18 <= pppppppbVar12) {\n          pppppppbVar18 = pppppppbVar12;\n        }\n        pppppppbVar12 = (byte *******)((int)unaff_s4 + (int)((int)pppppppbVar20 + -1));\n        unaff_s5 = pppppppbVar20;\n        if (pppppppbVar12 < pppppppbVar18) goto LAB_0049179c;\n        bVar3 = *(byte *)pppppppbVar12;\n        unaff_s7 = pppppppbVar12;\n        while ((bVar3 & 0xc0) == 0x80) {\n          pppppppbVar19 = (byte *******)((int)unaff_s7 + -1);\n          unaff_s7 = pppppppbVar12;\n          if (pppppppbVar19 < pppppppbVar18) goto LAB_0049179c;\n          unaff_s7 = pppppppbVar19;\n          bVar3 = *(byte *)pppppppbVar19;\n        }\n        iVar11 = param_1[0x10];\n        pbVar16 = (byte *)((int)unaff_s4 + (param_1[0xc] - (int)unaff_s7));\n        pppppppbVar18 = unaff_s7;\n        if (iVar11 != 0) {\n          pbVar17 = (byte *)0x6;\n          if ((int)pbVar16 < 7) {\n            pbVar17 = pbVar16;\n          }\n          if ((int)(pbVar17 + -1) < 0) {\n            pppppppbVar18 = appppppbStack_34;\n          }\n          else {\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }\n        }\n        local_3c = 0;\n        local_38 = 0;\n        uVar29 = (*(code *)PTR_mbrtowc_004bf2ec)(&local_40);\n        uVar30 = (int)((int)unaff_s4 + (int)pppppppbVar20) - (int)unaff_s7;\n        if ((uVar29 < uVar30) || (0xfffffffd < uVar29)) goto LAB_0049179c;\n        *(undefined1 *)(param_1 + 4) = 0;\n        *(undefined1 *)((int)param_1 + 0x11) = 0;\n        *(undefined1 *)((int)param_1 + 0x12) = 0;\n        *(undefined1 *)((int)param_1 + 0x13) = 0;\n        *(undefined1 *)(param_1 + 5) = 0;\n        *(undefined1 *)((int)param_1 + 0x15) = 0;\n        *(undefined1 *)((int)param_1 + 0x16) = 0;\n        *(undefined1 *)((int)param_1 + 0x17) = 0;\n        param_1[7] = uVar29 - uVar30;\n        unaff_s4 = local_40;\n        if (local_40 == (byte *******)0xffffffff) {\n          iVar11 = param_1[6];\n          goto LAB_004917a0;\n        }\nLAB_00491834:\n        if (*(char *)((int)param_1 + 0x4e) == '\0') {\nLAB_00491840:\n          iVar11 = 2;\n          if (unaff_s4 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        else {\n          iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          iVar11 = 1;\n          if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }\n        param_1[0xf] = iVar11;\n      }\nLAB_00491854:\n      ppppppbVar22 = (byte ******)param_1[7];\n      if (ppppppbVar22 == (byte ******)0x0) {\nLAB_00491860:\n        iVar11 = param_1[7];\n      }\n      else {\n        iVar11 = 0;\n        if (0 < (int)ppppppbVar22) {\n          do {\n            *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n            iVar11 = iVar11 + 1;\n            ppppppbVar22 = (byte ******)param_1[7];\n          } while (iVar11 < (int)ppppppbVar22);\n        }\n        pppppppbVar18 = (byte *******)0xff;\n        if (*(char *)((int)param_1 + 0x4b) == '\0') goto LAB_00491860;\n        (*(code *)PTR_memset_004bf260)(param_1[1]);\n        iVar11 = param_1[7];\n      }\n      param_1[8] = iVar11;\nLAB_00491360:\n      cVar2 = *(char *)((int)param_1 + 0x4b);\n    }\n    if (cVar2 == '\0') {\n      param_1[1] = (int)((int)pppppppbVar20 + param_1[1]);\n    }\n  }\n  param_1[6] = (int)param_2;\n  iVar11 = param_1[0xc];\n  param_1[0xc] = iVar11 - (int)pppppppbVar20;\n  iVar24 = param_1[0xe] - (int)pppppppbVar20;\n  param_1[0xe] = iVar24;\n  if (param_1[0x14] < 2) {\n    if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[7] = iVar11 - (int)pppppppbVar20;\n      goto LAB_00491aa8;\n    }\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      if (param_1[0x10] == 0) goto LAB_00491aa8;\n      FUN_00489d80();\n      param_1[10] = 0;\n    }\n    else {\n      FUN_0048b84c(param_1);\n      param_1[10] = 0;\n    }\n  }\n  else {\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      FUN_0048b928(param_1);\n      param_1[10] = 0;\n      goto LAB_00491aac;\n    }\n    ppppbVar5 = (byte ****)FUN_0048c3a4();\n    if (ppppbVar5 != (byte ****)0x0) goto LAB_00491ab0;\nLAB_00491aa8:\n    param_1[10] = 0;\n  }\nLAB_00491aac:\n  ppppbVar5 = (byte ****)0x0;\nLAB_00491ab0:\n  if (appppppbStack_34[2] == *(byte *******)PTR___stack_chk_guard_004bf38c) {\n    return ppppbVar5;\n  }\n  pcVar32 = FUN_00491b60;\n  ppppppbVar6 = appppppbStack_34[2];\n  (*(code *)PTR___stack_chk_fail_004bf34c)();\n  ppppbStack_84 = *(byte *****)PTR___stack_chk_guard_004bf38c;\n  pppppbVar31 = *ppppppbVar6;\n  if (pppppbVar31[0x17] == (byte ****)0x1) {\n    uVar29 = (uint)((int)ppppppbVar6[3] << 9) >> 0x1f;\n  }\n  else {\n    uVar29 = 0;\n  }\n  ppppppbVar13 = ppppppbVar6;\n  pppppppbVar20 = pppppppbVar18;\n  ppppppbVar21 = ppppppbVar22;\n  piStack_80 = param_1;\n  iStack_7c = iVar24;\n  pppppppbStack_78 = param_2;\n  ppppppbStack_74 = param_3;\n  pppppppbStack_70 = unaff_s4;\n  pppppppbStack_6c = unaff_s5;\n  pppppppbStack_68 = unaff_s6;\n  pppppppbStack_64 = unaff_s7;\n  piStack_60 = unaff_s8;\n  pcStack_5c = pcVar32;\n  if (0 < (int)pppppppbVar18[2]) {\n    iStack_1a8 = 0;\n    do {\n      pppppbVar23 = pppppppbVar18[3][iStack_1a8];\n      ppppppbVar7 = (byte ******)((int)pppppbVar23 * 8);\n      ppppbVar5 = *pppppbVar31 + (int)pppppbVar23 * 2;\n      ppppppbVar13 = (byte ******)(uint)*(byte *)(ppppbVar5 + 1);\n      pppppppbVar20 = (byte *******)&DAT_00000001;\n      if (ppppppbVar13 == (byte ******)&DAT_00000001) {\n        uVar30 = (uint)*(byte *)ppppbVar5;\n        *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        if (uVar29 != 0) {\n          if (uVar30 + 0x80 < 0x180) {\n            piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n          }\n          *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        }\n        if (((int)ppppppbVar6[3] << 9 < 0) &&\n           (ppppppbVar13 = ppppppbVar7, 1 < (int)pppppbVar31[0x17])) {\n          bStack_184 = *(byte *)(*pppppbVar31 + (int)pppppbVar23 * 2);\n          if ((byte ****)((int)pppppbVar23 + 1U) < pppppbVar31[2]) {\n            ppppbVar5 = (byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2));\n            ppppppbVar7 = ppppppbVar7 + 4;\n            if (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400) {\n              puVar15 = auStack_183;\n              do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar14 = auStack_183;\n            }\n          }\n          else {\n            puVar14 = auStack_183;\n          }\n          pppppbStack_18c = (byte *****)0x0;\n          uStack_188 = 0;\n          pppppppbVar20 = (byte *******)&bStack_184;\n          iVar11 = -(int)pppppppbVar20;\n          ppppppbVar13 = (byte ******)&ppppppbStack_190;\n          ppppppbVar21 = (byte ******)(puVar14 + iVar11);\n          ppppppbVar7 = (byte ******)(*(code *)PTR_mbrtowc_004bf2ec)();\n          if ((byte ******)(puVar14 + iVar11) == ppppppbVar7) {\n            pppppppbVar20 = (byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190);\n            ppppppbVar21 = &pppppbStack_18c;\n            ppppppbVar13 = (byte ******)&bStack_184;\n            iVar11 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar11 != -1) {\n              *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n            }\n          }\n        }\n      }\n      else {\n        pppppppbVar20 = (byte *******)&DAT_00000006;\n        if (ppppppbVar13 == (byte ******)0x3) {\n          iStack_1ac = 0;\n          iVar11 = 0;\n          do {\n            uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac);\n            uVar30 = 0;\n            iVar24 = iVar11;\n            do {\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            } while (uVar30 != 0x20);\n            iVar11 = iVar11 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar11 != 0x100);\n        }\n        else if (ppppppbVar13 == (byte ******)&DAT_00000006) {\n          pppbVar25 = *ppppbVar5;\n          if (((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))) {\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }\n          else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }\n          if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }\n        }\n      }\n      iStack_1a8 = iStack_1a8 + 1;\n    } while (iStack_1a8 < (int)pppppppbVar18[2]);\n  }\n  if (ppppbStack_84 == *(byte *****)PTR___stack_chk_guard_004bf38c) {\n    return *(byte *****)PTR___stack_chk_guard_004bf38c;\n  }\n  (*(code *)PTR___stack_chk_fail_004bf34c)();\n  pppppbVar31 = ppppppbVar21[1];\n  if (pppppbVar31 == (byte *****)0x0) {\n    *ppppppbVar13 = (byte *****)0x0;\n  }\n  else {\n    if (0 < (int)pppppbVar31) {\n      pppppbVar23 = ppppppbVar21[2];\n      pppppbVar26 = pppppbVar23 + (int)pppppbVar31;\n      do {\n        ppppbVar5 = *pppppbVar23;\n        pppppbVar23 = pppppbVar23 + 1;\n        pppppbVar31 = (byte *****)((int)pppppbVar31 + (int)ppppbVar5);\n      } while (pppppbVar23 != pppppbVar26);\n    }\n    pppppbVar23 = pppppppbVar20[8][((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3];\n    if (0 < (int)pppppbVar23) {\n      pppppbVar26 = (pppppppbVar20[8] + ((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3)[2];\n      pppppbVar28 = (byte *****)0x0;\n      do {\n        ppppbVar5 = *pppppbVar26;\n        if ((pppppbVar31 == (byte *****)*ppppbVar5) &&\n           (iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21), iVar11 != 0)) {\n          return ppppbVar5;\n        }\n        pppppbVar28 = (byte *****)((int)pppppbVar28 + 1);\n        pppppbVar26 = pppppbVar26 + 1;\n      } while (pppppbVar23 != pppppbVar28);\n    }\n    ppppbVar5 = (byte ****)(*(code *)PTR_calloc_004bf160)(0x38,1);\n    if (ppppbVar5 != (byte ****)0x0) {\n      iVar11 = FUN_0048c08c(ppppbVar5 + 1,ppppppbVar21);\n      if (iVar11 == 0) {\n        ppppbVar5[10] = (byte ***)(ppppbVar5 + 1);\n        if (0 < (int)ppppppbVar21[1]) {\n          ppppppbVar22 = *pppppppbVar20;\n          pppppbVar23 = ppppppbVar21[2];\n          pppppbVar26 = pppppbVar23 + (int)ppppppbVar21[1];\n          do {\n            ppppbVar10 = *pppppbVar23;\n            cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1);\n            if (cVar2 == '\x01') {\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }\n            pppppbVar23 = pppppbVar23 + 1;\n          } while (pppppbVar23 != pppppbVar26);\n        }\n        iVar11 = FUN_0048b6d0(pppppppbVar20,ppppbVar5,pppppbVar31);\n        if (iVar11 == 0) {\n          return ppppbVar5;\n        }\n        FUN_0048e3e8(ppppbVar5);\n      }\n      else {\n        (*(code *)PTR_free_004bf39c)(ppppbVar5);\n      }\n    }\n    *ppppppbVar13 = (byte *****)0xc;\n  }\n  return (byte ****)0x0;\n}" type_identifier (pointer_declarator "**** FUN_00491238(int *param_1,byte *******param_2,byte ******param_3)" * (pointer_declarator "*** FUN_00491238(int *param_1,byte *******param_2,byte ******param_3)" * (pointer_declarator "** FUN_00491238(int *param_1,byte *******param_2,byte ******param_3)" * (pointer_declarator "* FUN_00491238(int *param_1,byte *******param_2,byte ******param_3)" * (function_declarator "FUN_00491238(int *param_1,byte *******param_2,byte ******param_3)" identifier (parameter_list "(int *param_1,byte *******param_2,byte ******param_3)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "byte *******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 "byte ******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" * identifier))))))) ))))))) (compound_statement "{\n  bool bVar1;\n  char cVar2;\n  byte bVar3;\n  byte bVar4;\n  byte ****ppppbVar5;\n  byte ******ppppppbVar6;\n  byte ******ppppppbVar7;\n  int iVar8;\n  int *piVar9;\n  byte ****ppppbVar10;\n  int iVar11;\n  byte *******pppppppbVar12;\n  byte ******ppppppbVar13;\n  undefined1 *puVar14;\n  byte *pbVar16;\n  byte *pbVar17;\n  byte *******pppppppbVar18;\n  byte *******pppppppbVar19;\n  byte *******pppppppbVar20;\n  byte ******ppppppbVar21;\n  byte ******ppppppbVar22;\n  byte *****pppppbVar23;\n  int iVar24;\n  byte ***pppbVar25;\n  byte *****pppppbVar26;\n  uint uVar27;\n  byte *****pppppbVar28;\n  byte *******unaff_s4;\n  byte *******unaff_s5;\n  byte *******unaff_s6;\n  uint uVar29;\n  byte *******unaff_s7;\n  uint uVar30;\n  int *unaff_s8;\n  byte *****pppppbVar31;\n  code *pcVar32;\n  int iStack_1ac;\n  int iStack_1a8;\n  byte ******ppppppbStack_190;\n  byte *****pppppbStack_18c;\n  undefined4 uStack_188;\n  byte bStack_184;\n  undefined1 auStack_183 [255];\n  byte ****ppppbStack_84;\n  int *piStack_80;\n  int iStack_7c;\n  byte *******pppppppbStack_78;\n  byte ******ppppppbStack_74;\n  byte *******pppppppbStack_70;\n  byte *******pppppppbStack_6c;\n  byte *******pppppppbStack_68;\n  byte *******pppppppbStack_64;\n  int *piStack_60;\n  code *pcStack_5c;\n  byte *******local_40;\n  int local_3c;\n  int local_38;\n  byte ******appppppbStack_34 [3];\n  undefined1 *puVar15;\n  \n  appppppbStack_34[2] = *(byte *******)PTR___stack_chk_guard_004bf38c;\n  pppppppbVar20 = (byte *******)((int)param_2 - param_1[6]);\n  if ((int)param_2 < param_1[6]) {\n    if (1 < param_1[0x14]) {\n      *(undefined1 *)(param_1 + 4) = 0;\n      *(undefined1 *)((int)param_1 + 0x11) = 0;\n      *(undefined1 *)((int)param_1 + 0x12) = 0;\n      *(undefined1 *)((int)param_1 + 0x13) = 0;\n      *(undefined1 *)(param_1 + 5) = 0;\n      *(undefined1 *)((int)param_1 + 0x15) = 0;\n      *(undefined1 *)((int)param_1 + 0x16) = 0;\n      *(undefined1 *)((int)param_1 + 0x17) = 0;\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    iVar11 = 6;\n    if (((uint)param_3 & 1) != 0) {\n      iVar11 = 4;\n    }\n    param_1[0xf] = iVar11;\n    pppppppbVar20 = param_2;\n    if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[1] = *param_1;\n    }\n  }\n  pppppppbVar18 = param_2;\n  ppppppbVar22 = param_3;\n  if (pppppppbVar20 != (byte *******)0x0) {\n    if ((int)pppppppbVar20 < param_1[8]) {\n      if (*(char *)(param_1 + 0x13) == '\0') {\n        iVar11 = FUN_0048efec(param_1,(byte *)((int)pppppppbVar20 + -1));\n        param_1[0xf] = iVar11;\n        pppppppbVar18 = (byte *******)((int)pppppppbVar20 * 4);\n        if (param_1[0x14] < 2) {\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        else {\n          ppppppbVar22 = (byte ******)((param_1[7] - (int)pppppppbVar20) * 4);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar18 + param_1[2]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        if (cVar2 == '\0') {\n          iVar11 = param_1[7];\n        }\n        else {\n          ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar11 = param_1[7];\n        }\n        param_1[7] = iVar11 - (int)pppppppbVar20;\n        param_1[8] = param_1[8] - (int)pppppppbVar20;\n        goto LAB_00491360;\n      }\n      unaff_s6 = (byte *******)param_1[7];\n      unaff_s5 = (byte *******)param_1[3];\n      pbVar16 = (byte *)0x0;\n      pppppppbVar18 = unaff_s6;\n      do {\n        unaff_s4 = (byte *******)((int)(pbVar16 + (int)pppppppbVar18) / 2);\n        ppppppbVar6 = unaff_s5[(int)unaff_s4];\n        bVar1 = (int)pbVar16 < (int)unaff_s4;\n        pppppppbVar12 = unaff_s4;\n        if ((int)ppppppbVar6 <= (int)pppppppbVar20) {\n          pbVar16 = (byte *)((int)unaff_s4 + 1);\n          if ((int)pppppppbVar20 <= (int)ppppppbVar6) goto LAB_0049145c;\n          bVar1 = (int)pbVar16 < (int)pppppppbVar18;\n          pppppppbVar12 = pppppppbVar18;\n        }\n        pppppppbVar18 = pppppppbVar12;\n      } while (bVar1);\n      if ((int)ppppppbVar6 < (int)pppppppbVar20) {\n        unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n      }\nLAB_0049145c:\n      pppppppbVar18 = (byte *******)((int)unaff_s4 + -1);\n      iVar11 = FUN_0048efec(param_1);\n      param_1[0xf] = iVar11;\n      if ((((int)unaff_s6 <= (int)pppppppbVar20) || (pppppppbVar20 != unaff_s4)) ||\n         (param_3 = (byte ******)((int)pppppppbVar20 * 4),\n         (byte *******)unaff_s5[(int)unaff_s4] != pppppppbVar20)) {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        if ((0 < (int)unaff_s4) &&\n           ((byte *******)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pppppppbVar20)) {\n          pppppppbVar12 = unaff_s5 + (int)(unaff_s4 + 0x10000000);\n          do {\n            unaff_s4 = (byte *******)((int)unaff_s4 + -1);\n            if (unaff_s4 == (byte *******)0x0) break;\n            pppppppbVar19 = pppppppbVar12 + -2;\n            pppppppbVar12 = pppppppbVar12 + -1;\n          } while ((byte *******)*pppppppbVar19 == pppppppbVar20);\n        }\n        if ((int)unaff_s4 < (int)unaff_s6) {\n          piVar9 = (int *)(param_1[2] + (int)unaff_s4 * 4);\n          iVar11 = *piVar9;\n          while (iVar11 == -1) {\n            unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n            piVar9 = piVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            iVar11 = *piVar9;\n          }\nLAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;\n          ppppppbVar22 = (byte ******)((int)*unaff_s4 - (int)pppppppbVar20);\n          param_1[7] = (int)ppppppbVar22;\n          if (ppppppbVar22 == (byte ******)0x0) goto LAB_00491650;\n          if (0 < (int)ppppppbVar22) {\n            iVar11 = 0;\n            do {\n              *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n              iVar11 = iVar11 + 1;\n              ppppppbVar22 = (byte ******)param_1[7];\n            } while (iVar11 < (int)ppppppbVar22);\n          }\n          pppppppbVar18 = (byte *******)0xff;\n          (*(code *)PTR_memset_004bf260)(param_1[1]);\n          iVar11 = param_1[7];\n        }\n        else {\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          param_1[7] = 0;\nLAB_00491650:\n          iVar11 = param_1[7];\n        }\n        param_1[8] = iVar11;\n        goto LAB_00491360;\n      }\n      (*(code *)PTR_memmove_004bf3a4)\n                (param_1[2],param_1[2] + (int)param_3,((int)unaff_s6 - (int)pppppppbVar20) * 4);\n      ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n      pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n      (*(code *)PTR_memmove_004bf3a4)();\n      iVar11 = param_1[7];\n      param_1[7] = iVar11 - (int)pppppppbVar20;\n      param_1[8] = param_1[8] - (int)pppppppbVar20;\n      if (iVar11 - (int)pppppppbVar20 < 1) goto LAB_00491360;\n      iVar11 = 0;\n      do {\n        *(int *)(param_1[3] + iVar11 * 4) = *(int *)(param_1[3] + (int)param_3) - (int)pppppppbVar20\n        ;\n        iVar11 = iVar11 + 1;\n        param_3 = param_3 + 1;\n      } while (iVar11 < param_1[7]);\n      cVar2 = *(char *)((int)param_1 + 0x4b);\n    }\n    else {\n      unaff_s6 = (byte *******)param_1[7];\n      if (*(char *)(param_1 + 0x13) != '\0') {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n      }\n      param_1[7] = 0;\n      if (param_1[0x14] < 2) {\n        pppppppbVar18 =\n             (byte *******)(uint)*(byte *)((int)pppppppbVar20 + param_1[6] + *param_1 + -1);\n        param_1[8] = 0;\n        if (param_1[0x10] != 0) {\n          pppppppbVar18 = (byte *******)(uint)*(byte *)((int)pppppppbVar18 + param_1[0x10]);\n        }\n        iVar11 = 1;\n        if ((*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f) & 1) == 0) {\n          iVar11 = 2;\n          if (pppppppbVar18 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        param_1[0xf] = iVar11;\n        goto LAB_00491360;\n      }\n      if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0049179c:\n        iVar11 = param_1[6];\nLAB_004917a0:\n        pppppppbVar12 = (byte *******)(iVar11 + param_1[8]);\n        if ((int)pppppppbVar12 < (int)param_2) {\n          unaff_s8 = param_1 + 4;\n          unaff_s7 = (byte *******)&local_40;\n          do {\n            unaff_s5 = pppppppbVar12;\n            iVar24 = param_1[0xb];\n            local_3c = param_1[4];\n            local_38 = param_1[5];\n            pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1);\n            iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8);\n            unaff_s4 = local_40;\n            if (0xfffffffc < iVar11 - 1U) {\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }\n            pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11);\n          } while ((int)pppppppbVar12 < (int)param_2);\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n          if (unaff_s4 != (byte *******)0xffffffff) goto LAB_00491834;\n        }\n        else {\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n        }\n        pppppppbVar18 = (byte *******)((int)unaff_s6 + -1);\n        iVar11 = FUN_0048efec(param_1,pppppppbVar18,param_3);\n        param_1[0xf] = iVar11;\n      }\n      else {\n        pppppppbVar12 = (byte *******)*param_1;\n        unaff_s4 = (byte *******)((int)pppppppbVar12 + param_1[6]);\n        pppppppbVar18 = (byte *******)((int)unaff_s4 + ((int)pppppppbVar20 - param_1[0x14]));\n        if (pppppppbVar18 <= pppppppbVar12) {\n          pppppppbVar18 = pppppppbVar12;\n        }\n        pppppppbVar12 = (byte *******)((int)unaff_s4 + (int)((int)pppppppbVar20 + -1));\n        unaff_s5 = pppppppbVar20;\n        if (pppppppbVar12 < pppppppbVar18) goto LAB_0049179c;\n        bVar3 = *(byte *)pppppppbVar12;\n        unaff_s7 = pppppppbVar12;\n        while ((bVar3 & 0xc0) == 0x80) {\n          pppppppbVar19 = (byte *******)((int)unaff_s7 + -1);\n          unaff_s7 = pppppppbVar12;\n          if (pppppppbVar19 < pppppppbVar18) goto LAB_0049179c;\n          unaff_s7 = pppppppbVar19;\n          bVar3 = *(byte *)pppppppbVar19;\n        }\n        iVar11 = param_1[0x10];\n        pbVar16 = (byte *)((int)unaff_s4 + (param_1[0xc] - (int)unaff_s7));\n        pppppppbVar18 = unaff_s7;\n        if (iVar11 != 0) {\n          pbVar17 = (byte *)0x6;\n          if ((int)pbVar16 < 7) {\n            pbVar17 = pbVar16;\n          }\n          if ((int)(pbVar17 + -1) < 0) {\n            pppppppbVar18 = appppppbStack_34;\n          }\n          else {\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }\n        }\n        local_3c = 0;\n        local_38 = 0;\n        uVar29 = (*(code *)PTR_mbrtowc_004bf2ec)(&local_40);\n        uVar30 = (int)((int)unaff_s4 + (int)pppppppbVar20) - (int)unaff_s7;\n        if ((uVar29 < uVar30) || (0xfffffffd < uVar29)) goto LAB_0049179c;\n        *(undefined1 *)(param_1 + 4) = 0;\n        *(undefined1 *)((int)param_1 + 0x11) = 0;\n        *(undefined1 *)((int)param_1 + 0x12) = 0;\n        *(undefined1 *)((int)param_1 + 0x13) = 0;\n        *(undefined1 *)(param_1 + 5) = 0;\n        *(undefined1 *)((int)param_1 + 0x15) = 0;\n        *(undefined1 *)((int)param_1 + 0x16) = 0;\n        *(undefined1 *)((int)param_1 + 0x17) = 0;\n        param_1[7] = uVar29 - uVar30;\n        unaff_s4 = local_40;\n        if (local_40 == (byte *******)0xffffffff) {\n          iVar11 = param_1[6];\n          goto LAB_004917a0;\n        }\nLAB_00491834:\n        if (*(char *)((int)param_1 + 0x4e) == '\0') {\nLAB_00491840:\n          iVar11 = 2;\n          if (unaff_s4 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        else {\n          iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          iVar11 = 1;\n          if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }\n        param_1[0xf] = iVar11;\n      }\nLAB_00491854:\n      ppppppbVar22 = (byte ******)param_1[7];\n      if (ppppppbVar22 == (byte ******)0x0) {\nLAB_00491860:\n        iVar11 = param_1[7];\n      }\n      else {\n        iVar11 = 0;\n        if (0 < (int)ppppppbVar22) {\n          do {\n            *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n            iVar11 = iVar11 + 1;\n            ppppppbVar22 = (byte ******)param_1[7];\n          } while (iVar11 < (int)ppppppbVar22);\n        }\n        pppppppbVar18 = (byte *******)0xff;\n        if (*(char *)((int)param_1 + 0x4b) == '\0') goto LAB_00491860;\n        (*(code *)PTR_memset_004bf260)(param_1[1]);\n        iVar11 = param_1[7];\n      }\n      param_1[8] = iVar11;\nLAB_00491360:\n      cVar2 = *(char *)((int)param_1 + 0x4b);\n    }\n    if (cVar2 == '\0') {\n      param_1[1] = (int)((int)pppppppbVar20 + param_1[1]);\n    }\n  }\n  param_1[6] = (int)param_2;\n  iVar11 = param_1[0xc];\n  param_1[0xc] = iVar11 - (int)pppppppbVar20;\n  iVar24 = param_1[0xe] - (int)pppppppbVar20;\n  param_1[0xe] = iVar24;\n  if (param_1[0x14] < 2) {\n    if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[7] = iVar11 - (int)pppppppbVar20;\n      goto LAB_00491aa8;\n    }\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      if (param_1[0x10] == 0) goto LAB_00491aa8;\n      FUN_00489d80();\n      param_1[10] = 0;\n    }\n    else {\n      FUN_0048b84c(param_1);\n      param_1[10] = 0;\n    }\n  }\n  else {\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      FUN_0048b928(param_1);\n      param_1[10] = 0;\n      goto LAB_00491aac;\n    }\n    ppppbVar5 = (byte ****)FUN_0048c3a4();\n    if (ppppbVar5 != (byte ****)0x0) goto LAB_00491ab0;\nLAB_00491aa8:\n    param_1[10] = 0;\n  }\nLAB_00491aac:\n  ppppbVar5 = (byte ****)0x0;\nLAB_00491ab0:\n  if (appppppbStack_34[2] == *(byte *******)PTR___stack_chk_guard_004bf38c) {\n    return ppppbVar5;\n  }\n  pcVar32 = FUN_00491b60;\n  ppppppbVar6 = appppppbStack_34[2];\n  (*(code *)PTR___stack_chk_fail_004bf34c)();\n  ppppbStack_84 = *(byte *****)PTR___stack_chk_guard_004bf38c;\n  pppppbVar31 = *ppppppbVar6;\n  if (pppppbVar31[0x17] == (byte ****)0x1) {\n    uVar29 = (uint)((int)ppppppbVar6[3] << 9) >> 0x1f;\n  }\n  else {\n    uVar29 = 0;\n  }\n  ppppppbVar13 = ppppppbVar6;\n  pppppppbVar20 = pppppppbVar18;\n  ppppppbVar21 = ppppppbVar22;\n  piStack_80 = param_1;\n  iStack_7c = iVar24;\n  pppppppbStack_78 = param_2;\n  ppppppbStack_74 = param_3;\n  pppppppbStack_70 = unaff_s4;\n  pppppppbStack_6c = unaff_s5;\n  pppppppbStack_68 = unaff_s6;\n  pppppppbStack_64 = unaff_s7;\n  piStack_60 = unaff_s8;\n  pcStack_5c = pcVar32;\n  if (0 < (int)pppppppbVar18[2]) {\n    iStack_1a8 = 0;\n    do {\n      pppppbVar23 = pppppppbVar18[3][iStack_1a8];\n      ppppppbVar7 = (byte ******)((int)pppppbVar23 * 8);\n      ppppbVar5 = *pppppbVar31 + (int)pppppbVar23 * 2;\n      ppppppbVar13 = (byte ******)(uint)*(byte *)(ppppbVar5 + 1);\n      pppppppbVar20 = (byte *******)&DAT_00000001;\n      if (ppppppbVar13 == (byte ******)&DAT_00000001) {\n        uVar30 = (uint)*(byte *)ppppbVar5;\n        *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        if (uVar29 != 0) {\n          if (uVar30 + 0x80 < 0x180) {\n            piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n          }\n          *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        }\n        if (((int)ppppppbVar6[3] << 9 < 0) &&\n           (ppppppbVar13 = ppppppbVar7, 1 < (int)pppppbVar31[0x17])) {\n          bStack_184 = *(byte *)(*pppppbVar31 + (int)pppppbVar23 * 2);\n          if ((byte ****)((int)pppppbVar23 + 1U) < pppppbVar31[2]) {\n            ppppbVar5 = (byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2));\n            ppppppbVar7 = ppppppbVar7 + 4;\n            if (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400) {\n              puVar15 = auStack_183;\n              do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar14 = auStack_183;\n            }\n          }\n          else {\n            puVar14 = auStack_183;\n          }\n          pppppbStack_18c = (byte *****)0x0;\n          uStack_188 = 0;\n          pppppppbVar20 = (byte *******)&bStack_184;\n          iVar11 = -(int)pppppppbVar20;\n          ppppppbVar13 = (byte ******)&ppppppbStack_190;\n          ppppppbVar21 = (byte ******)(puVar14 + iVar11);\n          ppppppbVar7 = (byte ******)(*(code *)PTR_mbrtowc_004bf2ec)();\n          if ((byte ******)(puVar14 + iVar11) == ppppppbVar7) {\n            pppppppbVar20 = (byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190);\n            ppppppbVar21 = &pppppbStack_18c;\n            ppppppbVar13 = (byte ******)&bStack_184;\n            iVar11 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar11 != -1) {\n              *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n            }\n          }\n        }\n      }\n      else {\n        pppppppbVar20 = (byte *******)&DAT_00000006;\n        if (ppppppbVar13 == (byte ******)0x3) {\n          iStack_1ac = 0;\n          iVar11 = 0;\n          do {\n            uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac);\n            uVar30 = 0;\n            iVar24 = iVar11;\n            do {\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            } while (uVar30 != 0x20);\n            iVar11 = iVar11 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar11 != 0x100);\n        }\n        else if (ppppppbVar13 == (byte ******)&DAT_00000006) {\n          pppbVar25 = *ppppbVar5;\n          if (((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))) {\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }\n          else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }\n          if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }\n        }\n      }\n      iStack_1a8 = iStack_1a8 + 1;\n    } while (iStack_1a8 < (int)pppppppbVar18[2]);\n  }\n  if (ppppbStack_84 == *(byte *****)PTR___stack_chk_guard_004bf38c) {\n    return *(byte *****)PTR___stack_chk_guard_004bf38c;\n  }\n  (*(code *)PTR___stack_chk_fail_004bf34c)();\n  pppppbVar31 = ppppppbVar21[1];\n  if (pppppbVar31 == (byte *****)0x0) {\n    *ppppppbVar13 = (byte *****)0x0;\n  }\n  else {\n    if (0 < (int)pppppbVar31) {\n      pppppbVar23 = ppppppbVar21[2];\n      pppppbVar26 = pppppbVar23 + (int)pppppbVar31;\n      do {\n        ppppbVar5 = *pppppbVar23;\n        pppppbVar23 = pppppbVar23 + 1;\n        pppppbVar31 = (byte *****)((int)pppppbVar31 + (int)ppppbVar5);\n      } while (pppppbVar23 != pppppbVar26);\n    }\n    pppppbVar23 = pppppppbVar20[8][((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3];\n    if (0 < (int)pppppbVar23) {\n      pppppbVar26 = (pppppppbVar20[8] + ((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3)[2];\n      pppppbVar28 = (byte *****)0x0;\n      do {\n        ppppbVar5 = *pppppbVar26;\n        if ((pppppbVar31 == (byte *****)*ppppbVar5) &&\n           (iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21), iVar11 != 0)) {\n          return ppppbVar5;\n        }\n        pppppbVar28 = (byte *****)((int)pppppbVar28 + 1);\n        pppppbVar26 = pppppbVar26 + 1;\n      } while (pppppbVar23 != pppppbVar28);\n    }\n    ppppbVar5 = (byte ****)(*(code *)PTR_calloc_004bf160)(0x38,1);\n    if (ppppbVar5 != (byte ****)0x0) {\n      iVar11 = FUN_0048c08c(ppppbVar5 + 1,ppppppbVar21);\n      if (iVar11 == 0) {\n        ppppbVar5[10] = (byte ***)(ppppbVar5 + 1);\n        if (0 < (int)ppppppbVar21[1]) {\n          ppppppbVar22 = *pppppppbVar20;\n          pppppbVar23 = ppppppbVar21[2];\n          pppppbVar26 = pppppbVar23 + (int)ppppppbVar21[1];\n          do {\n            ppppbVar10 = *pppppbVar23;\n            cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1);\n            if (cVar2 == '\x01') {\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }\n            pppppbVar23 = pppppbVar23 + 1;\n          } while (pppppbVar23 != pppppbVar26);\n        }\n        iVar11 = FUN_0048b6d0(pppppppbVar20,ppppbVar5,pppppbVar31);\n        if (iVar11 == 0) {\n          return ppppbVar5;\n        }\n        FUN_0048e3e8(ppppbVar5);\n      }\n      else {\n        (*(code *)PTR_free_004bf39c)(ppppbVar5);\n      }\n    }\n    *ppppppbVar13 = (byte *****)0xc;\n  }\n  return (byte ****)0x0;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "byte ****ppppbVar5;" type_identifier (pointer_declarator "****ppppbVar5" * (pointer_declarator "***ppppbVar5" * (pointer_declarator "**ppppbVar5" * (pointer_declarator "*ppppbVar5" * identifier)))) ;) (declaration "byte ******ppppppbVar6;" type_identifier (pointer_declarator "******ppppppbVar6" * (pointer_declarator "*****ppppppbVar6" * (pointer_declarator "****ppppppbVar6" * (pointer_declarator "***ppppppbVar6" * (pointer_declarator "**ppppppbVar6" * (pointer_declarator "*ppppppbVar6" * identifier)))))) ;) (declaration "byte ******ppppppbVar7;" type_identifier (pointer_declarator "******ppppppbVar7" * (pointer_declarator "*****ppppppbVar7" * (pointer_declarator "****ppppppbVar7" * (pointer_declarator "***ppppppbVar7" * (pointer_declarator "**ppppppbVar7" * (pointer_declarator "*ppppppbVar7" * identifier)))))) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "byte ****ppppbVar10;" type_identifier (pointer_declarator "****ppppbVar10" * (pointer_declarator "***ppppbVar10" * (pointer_declarator "**ppppbVar10" * (pointer_declarator "*ppppbVar10" * identifier)))) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "byte *******pppppppbVar12;" type_identifier (pointer_declarator "*******pppppppbVar12" * (pointer_declarator "******pppppppbVar12" * (pointer_declarator "*****pppppppbVar12" * (pointer_declarator "****pppppppbVar12" * (pointer_declarator "***pppppppbVar12" * (pointer_declarator "**pppppppbVar12" * (pointer_declarator "*pppppppbVar12" * identifier))))))) ;) (declaration "byte ******ppppppbVar13;" type_identifier (pointer_declarator "******ppppppbVar13" * (pointer_declarator "*****ppppppbVar13" * (pointer_declarator "****ppppppbVar13" * (pointer_declarator "***ppppppbVar13" * (pointer_declarator "**ppppppbVar13" * (pointer_declarator "*ppppppbVar13" * identifier)))))) ;) (declaration "undefined1 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "byte *******pppppppbVar18;" type_identifier (pointer_declarator "*******pppppppbVar18" * (pointer_declarator "******pppppppbVar18" * (pointer_declarator "*****pppppppbVar18" * (pointer_declarator "****pppppppbVar18" * (pointer_declarator "***pppppppbVar18" * (pointer_declarator "**pppppppbVar18" * (pointer_declarator "*pppppppbVar18" * identifier))))))) ;) (declaration "byte *******pppppppbVar19;" type_identifier (pointer_declarator "*******pppppppbVar19" * (pointer_declarator "******pppppppbVar19" * (pointer_declarator "*****pppppppbVar19" * (pointer_declarator "****pppppppbVar19" * (pointer_declarator "***pppppppbVar19" * (pointer_declarator "**pppppppbVar19" * (pointer_declarator "*pppppppbVar19" * identifier))))))) ;) (declaration "byte *******pppppppbVar20;" type_identifier (pointer_declarator "*******pppppppbVar20" * (pointer_declarator "******pppppppbVar20" * (pointer_declarator "*****pppppppbVar20" * (pointer_declarator "****pppppppbVar20" * (pointer_declarator "***pppppppbVar20" * (pointer_declarator "**pppppppbVar20" * (pointer_declarator "*pppppppbVar20" * identifier))))))) ;) (declaration "byte ******ppppppbVar21;" type_identifier (pointer_declarator "******ppppppbVar21" * (pointer_declarator "*****ppppppbVar21" * (pointer_declarator "****ppppppbVar21" * (pointer_declarator "***ppppppbVar21" * (pointer_declarator "**ppppppbVar21" * (pointer_declarator "*ppppppbVar21" * identifier)))))) ;) (declaration "byte ******ppppppbVar22;" type_identifier (pointer_declarator "******ppppppbVar22" * (pointer_declarator "*****ppppppbVar22" * (pointer_declarator "****ppppppbVar22" * (pointer_declarator "***ppppppbVar22" * (pointer_declarator "**ppppppbVar22" * (pointer_declarator "*ppppppbVar22" * identifier)))))) ;) (declaration "byte *****pppppbVar23;" type_identifier (pointer_declarator "*****pppppbVar23" * (pointer_declarator "****pppppbVar23" * (pointer_declarator "***pppppbVar23" * (pointer_declarator "**pppppbVar23" * (pointer_declarator "*pppppbVar23" * identifier))))) ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "byte ***pppbVar25;" type_identifier (pointer_declarator "***pppbVar25" * (pointer_declarator "**pppbVar25" * (pointer_declarator "*pppbVar25" * identifier))) ;) (declaration "byte *****pppppbVar26;" type_identifier (pointer_declarator "*****pppppbVar26" * (pointer_declarator "****pppppbVar26" * (pointer_declarator "***pppppbVar26" * (pointer_declarator "**pppppbVar26" * (pointer_declarator "*pppppbVar26" * identifier))))) ;) (declaration "uint uVar27;" type_identifier identifier ;) (declaration "byte *****pppppbVar28;" type_identifier (pointer_declarator "*****pppppbVar28" * (pointer_declarator "****pppppbVar28" * (pointer_declarator "***pppppbVar28" * (pointer_declarator "**pppppbVar28" * (pointer_declarator "*pppppbVar28" * identifier))))) ;) (declaration "byte *******unaff_s4;" type_identifier (pointer_declarator "*******unaff_s4" * (pointer_declarator "******unaff_s4" * (pointer_declarator "*****unaff_s4" * (pointer_declarator "****unaff_s4" * (pointer_declarator "***unaff_s4" * (pointer_declarator "**unaff_s4" * (pointer_declarator "*unaff_s4" * identifier))))))) ;) (declaration "byte *******unaff_s5;" type_identifier (pointer_declarator "*******unaff_s5" * (pointer_declarator "******unaff_s5" * (pointer_declarator "*****unaff_s5" * (pointer_declarator "****unaff_s5" * (pointer_declarator "***unaff_s5" * (pointer_declarator "**unaff_s5" * (pointer_declarator "*unaff_s5" * identifier))))))) ;) (declaration "byte *******unaff_s6;" type_identifier (pointer_declarator "*******unaff_s6" * (pointer_declarator "******unaff_s6" * (pointer_declarator "*****unaff_s6" * (pointer_declarator "****unaff_s6" * (pointer_declarator "***unaff_s6" * (pointer_declarator "**unaff_s6" * (pointer_declarator "*unaff_s6" * identifier))))))) ;) (declaration "uint uVar29;" type_identifier identifier ;) (declaration "byte *******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 "uint uVar30;" type_identifier identifier ;) (declaration "int *unaff_s8;" primitive_type (pointer_declarator "*unaff_s8" * identifier) ;) (declaration "byte *****pppppbVar31;" type_identifier (pointer_declarator "*****pppppbVar31" * (pointer_declarator "****pppppbVar31" * (pointer_declarator "***pppppbVar31" * (pointer_declarator "**pppppbVar31" * (pointer_declarator "*pppppbVar31" * identifier))))) ;) (declaration "code *pcVar32;" type_identifier (pointer_declarator "*pcVar32" * identifier) ;) (declaration "int iStack_1ac;" primitive_type identifier ;) (declaration "int iStack_1a8;" primitive_type identifier ;) (declaration "byte ******ppppppbStack_190;" type_identifier (pointer_declarator "******ppppppbStack_190" * (pointer_declarator "*****ppppppbStack_190" * (pointer_declarator "****ppppppbStack_190" * (pointer_declarator "***ppppppbStack_190" * (pointer_declarator "**ppppppbStack_190" * (pointer_declarator "*ppppppbStack_190" * identifier)))))) ;) (declaration "byte *****pppppbStack_18c;" type_identifier (pointer_declarator "*****pppppbStack_18c" * (pointer_declarator "****pppppbStack_18c" * (pointer_declarator "***pppppbStack_18c" * (pointer_declarator "**pppppbStack_18c" * (pointer_declarator "*pppppbStack_18c" * identifier))))) ;) (declaration "undefined4 uStack_188;" type_identifier identifier ;) (declaration "byte bStack_184;" type_identifier identifier ;) (declaration "undefined1 auStack_183 [255];" type_identifier (array_declarator "auStack_183 [255]" identifier [ number_literal ]) ;) (declaration "byte ****ppppbStack_84;" type_identifier (pointer_declarator "****ppppbStack_84" * (pointer_declarator "***ppppbStack_84" * (pointer_declarator "**ppppbStack_84" * (pointer_declarator "*ppppbStack_84" * identifier)))) ;) (declaration "int *piStack_80;" primitive_type (pointer_declarator "*piStack_80" * identifier) ;) (declaration "int iStack_7c;" primitive_type identifier ;) (declaration "byte *******pppppppbStack_78;" type_identifier (pointer_declarator "*******pppppppbStack_78" * (pointer_declarator "******pppppppbStack_78" * (pointer_declarator "*****pppppppbStack_78" * (pointer_declarator "****pppppppbStack_78" * (pointer_declarator "***pppppppbStack_78" * (pointer_declarator "**pppppppbStack_78" * (pointer_declarator "*pppppppbStack_78" * identifier))))))) ;) (declaration "byte ******ppppppbStack_74;" type_identifier (pointer_declarator "******ppppppbStack_74" * (pointer_declarator "*****ppppppbStack_74" * (pointer_declarator "****ppppppbStack_74" * (pointer_declarator "***ppppppbStack_74" * (pointer_declarator "**ppppppbStack_74" * (pointer_declarator "*ppppppbStack_74" * identifier)))))) ;) (declaration "byte *******pppppppbStack_70;" type_identifier (pointer_declarator "*******pppppppbStack_70" * (pointer_declarator "******pppppppbStack_70" * (pointer_declarator "*****pppppppbStack_70" * (pointer_declarator "****pppppppbStack_70" * (pointer_declarator "***pppppppbStack_70" * (pointer_declarator "**pppppppbStack_70" * (pointer_declarator "*pppppppbStack_70" * identifier))))))) ;) (declaration "byte *******pppppppbStack_6c;" type_identifier (pointer_declarator "*******pppppppbStack_6c" * (pointer_declarator "******pppppppbStack_6c" * (pointer_declarator "*****pppppppbStack_6c" * (pointer_declarator "****pppppppbStack_6c" * (pointer_declarator "***pppppppbStack_6c" * (pointer_declarator "**pppppppbStack_6c" * (pointer_declarator "*pppppppbStack_6c" * identifier))))))) ;) (declaration "byte *******pppppppbStack_68;" type_identifier (pointer_declarator "*******pppppppbStack_68" * (pointer_declarator "******pppppppbStack_68" * (pointer_declarator "*****pppppppbStack_68" * (pointer_declarator "****pppppppbStack_68" * (pointer_declarator "***pppppppbStack_68" * (pointer_declarator "**pppppppbStack_68" * (pointer_declarator "*pppppppbStack_68" * identifier))))))) ;) (declaration "byte *******pppppppbStack_64;" type_identifier (pointer_declarator "*******pppppppbStack_64" * (pointer_declarator "******pppppppbStack_64" * (pointer_declarator "*****pppppppbStack_64" * (pointer_declarator "****pppppppbStack_64" * (pointer_declarator "***pppppppbStack_64" * (pointer_declarator "**pppppppbStack_64" * (pointer_declarator "*pppppppbStack_64" * identifier))))))) ;) (declaration "int *piStack_60;" primitive_type (pointer_declarator "*piStack_60" * identifier) ;) (declaration "code *pcStack_5c;" type_identifier (pointer_declarator "*pcStack_5c" * identifier) ;) (declaration "byte *******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 "byte ******appppppbStack_34 [3];" type_identifier (pointer_declarator "******appppppbStack_34 [3]" * (pointer_declarator "*****appppppbStack_34 [3]" * (pointer_declarator "****appppppbStack_34 [3]" * (pointer_declarator "***appppppbStack_34 [3]" * (pointer_declarator "**appppppbStack_34 [3]" * (pointer_declarator "*appppppbStack_34 [3]" * (array_declarator "appppppbStack_34 [3]" identifier [ number_literal ]))))))) ;) (declaration "undefined1 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (expression_statement "appppppbStack_34[2] = *(byte *******)PTR___stack_chk_guard_004bf38c;" (assignment_expression "appppppbStack_34[2] = *(byte *******)PTR___stack_chk_guard_004bf38c" (subscript_expression "appppppbStack_34[2]" identifier [ number_literal ]) = (pointer_expression "*(byte *******)PTR___stack_chk_guard_004bf38c" * (cast_expression "(byte *******)PTR___stack_chk_guard_004bf38c" ( (type_descriptor "byte *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) identifier))) ;) (expression_statement "pppppppbVar20 = (byte *******)((int)param_2 - param_1[6]);" (assignment_expression "pppppppbVar20 = (byte *******)((int)param_2 - param_1[6])" identifier = (cast_expression "(byte *******)((int)param_2 - param_1[6])" ( (type_descriptor "byte *******" 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      *(undefined1 *)(param_1 + 4) = 0;\n      *(undefined1 *)((int)param_1 + 0x11) = 0;\n      *(undefined1 *)((int)param_1 + 0x12) = 0;\n      *(undefined1 *)((int)param_1 + 0x13) = 0;\n      *(undefined1 *)(param_1 + 5) = 0;\n      *(undefined1 *)((int)param_1 + 0x15) = 0;\n      *(undefined1 *)((int)param_1 + 0x16) = 0;\n      *(undefined1 *)((int)param_1 + 0x17) = 0;\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    iVar11 = 6;\n    if (((uint)param_3 & 1) != 0) {\n      iVar11 = 4;\n    }\n    param_1[0xf] = iVar11;\n    pppppppbVar20 = param_2;\n    if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[1] = *param_1;\n    }\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      *(undefined1 *)(param_1 + 4) = 0;\n      *(undefined1 *)((int)param_1 + 0x11) = 0;\n      *(undefined1 *)((int)param_1 + 0x12) = 0;\n      *(undefined1 *)((int)param_1 + 0x13) = 0;\n      *(undefined1 *)(param_1 + 5) = 0;\n      *(undefined1 *)((int)param_1 + 0x15) = 0;\n      *(undefined1 *)((int)param_1 + 0x16) = 0;\n      *(undefined1 *)((int)param_1 + 0x17) = 0;\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    iVar11 = 6;\n    if (((uint)param_3 & 1) != 0) {\n      iVar11 = 4;\n    }\n    param_1[0xf] = iVar11;\n    pppppppbVar20 = param_2;\n    if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[1] = *param_1;\n    }\n  }" { (if_statement "if (1 < param_1[0x14]) {\n      *(undefined1 *)(param_1 + 4) = 0;\n      *(undefined1 *)((int)param_1 + 0x11) = 0;\n      *(undefined1 *)((int)param_1 + 0x12) = 0;\n      *(undefined1 *)((int)param_1 + 0x13) = 0;\n      *(undefined1 *)(param_1 + 5) = 0;\n      *(undefined1 *)((int)param_1 + 0x15) = 0;\n      *(undefined1 *)((int)param_1 + 0x16) = 0;\n      *(undefined1 *)((int)param_1 + 0x17) = 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      *(undefined1 *)(param_1 + 4) = 0;\n      *(undefined1 *)((int)param_1 + 0x11) = 0;\n      *(undefined1 *)((int)param_1 + 0x12) = 0;\n      *(undefined1 *)((int)param_1 + 0x13) = 0;\n      *(undefined1 *)(param_1 + 5) = 0;\n      *(undefined1 *)((int)param_1 + 0x15) = 0;\n      *(undefined1 *)((int)param_1 + 0x16) = 0;\n      *(undefined1 *)((int)param_1 + 0x17) = 0;\n    }" { (expression_statement "*(undefined1 *)(param_1 + 4) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 4) = 0" (pointer_expression "*(undefined1 *)(param_1 + 4)" * (cast_expression "(undefined1 *)(param_1 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)param_1 + 0x11) = 0;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x11) = 0" (pointer_expression "*(undefined1 *)((int)param_1 + 0x11)" * (cast_expression "(undefined1 *)((int)param_1 + 0x11)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x11)" ( (binary_expression "(int)param_1 + 0x11" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)param_1 + 0x12) = 0;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x12) = 0" (pointer_expression "*(undefined1 *)((int)param_1 + 0x12)" * (cast_expression "(undefined1 *)((int)param_1 + 0x12)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x12)" ( (binary_expression "(int)param_1 + 0x12" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)param_1 + 0x13) = 0;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x13) = 0" (pointer_expression "*(undefined1 *)((int)param_1 + 0x13)" * (cast_expression "(undefined1 *)((int)param_1 + 0x13)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x13)" ( (binary_expression "(int)param_1 + 0x13" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 5) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 5) = 0" (pointer_expression "*(undefined1 *)(param_1 + 5)" * (cast_expression "(undefined1 *)(param_1 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 5)" ( (binary_expression "param_1 + 5" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)param_1 + 0x15) = 0;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x15) = 0" (pointer_expression "*(undefined1 *)((int)param_1 + 0x15)" * (cast_expression "(undefined1 *)((int)param_1 + 0x15)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x15)" ( (binary_expression "(int)param_1 + 0x15" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)param_1 + 0x16) = 0;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x16) = 0" (pointer_expression "*(undefined1 *)((int)param_1 + 0x16)" * (cast_expression "(undefined1 *)((int)param_1 + 0x16)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x16)" ( (binary_expression "(int)param_1 + 0x16" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)param_1 + 0x17) = 0;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x17) = 0" (pointer_expression "*(undefined1 *)((int)param_1 + 0x17)" * (cast_expression "(undefined1 *)((int)param_1 + 0x17)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x17)" ( (binary_expression "(int)param_1 + 0x17" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = 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 "iVar11 = 6;" (assignment_expression "iVar11 = 6" identifier = number_literal) ;) (if_statement "if (((uint)param_3 & 1) != 0) {\n      iVar11 = 4;\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      iVar11 = 4;\n    }" { (expression_statement "iVar11 = 4;" (assignment_expression "iVar11 = 4" identifier = number_literal) ;) })) (expression_statement "param_1[0xf] = iVar11;" (assignment_expression "param_1[0xf] = iVar11" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppbVar20 = param_2;" (assignment_expression "pppppppbVar20 = param_2" identifier = identifier) ;) (if_statement "if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[1] = *param_1;\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    }" { (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)) ;) })) })) (expression_statement "pppppppbVar18 = param_2;" (assignment_expression "pppppppbVar18 = param_2" identifier = identifier) ;) (expression_statement "ppppppbVar22 = param_3;" (assignment_expression "ppppppbVar22 = param_3" identifier = identifier) ;) (if_statement "if (pppppppbVar20 != (byte *******)0x0) {\n    if ((int)pppppppbVar20 < param_1[8]) {\n      if (*(char *)(param_1 + 0x13) == '\0') {\n        iVar11 = FUN_0048efec(param_1,(byte *)((int)pppppppbVar20 + -1));\n        param_1[0xf] = iVar11;\n        pppppppbVar18 = (byte *******)((int)pppppppbVar20 * 4);\n        if (param_1[0x14] < 2) {\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        else {\n          ppppppbVar22 = (byte ******)((param_1[7] - (int)pppppppbVar20) * 4);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar18 + param_1[2]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        if (cVar2 == '\0') {\n          iVar11 = param_1[7];\n        }\n        else {\n          ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar11 = param_1[7];\n        }\n        param_1[7] = iVar11 - (int)pppppppbVar20;\n        param_1[8] = param_1[8] - (int)pppppppbVar20;\n        goto LAB_00491360;\n      }\n      unaff_s6 = (byte *******)param_1[7];\n      unaff_s5 = (byte *******)param_1[3];\n      pbVar16 = (byte *)0x0;\n      pppppppbVar18 = unaff_s6;\n      do {\n        unaff_s4 = (byte *******)((int)(pbVar16 + (int)pppppppbVar18) / 2);\n        ppppppbVar6 = unaff_s5[(int)unaff_s4];\n        bVar1 = (int)pbVar16 < (int)unaff_s4;\n        pppppppbVar12 = unaff_s4;\n        if ((int)ppppppbVar6 <= (int)pppppppbVar20) {\n          pbVar16 = (byte *)((int)unaff_s4 + 1);\n          if ((int)pppppppbVar20 <= (int)ppppppbVar6) goto LAB_0049145c;\n          bVar1 = (int)pbVar16 < (int)pppppppbVar18;\n          pppppppbVar12 = pppppppbVar18;\n        }\n        pppppppbVar18 = pppppppbVar12;\n      } while (bVar1);\n      if ((int)ppppppbVar6 < (int)pppppppbVar20) {\n        unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n      }\nLAB_0049145c:\n      pppppppbVar18 = (byte *******)((int)unaff_s4 + -1);\n      iVar11 = FUN_0048efec(param_1);\n      param_1[0xf] = iVar11;\n      if ((((int)unaff_s6 <= (int)pppppppbVar20) || (pppppppbVar20 != unaff_s4)) ||\n         (param_3 = (byte ******)((int)pppppppbVar20 * 4),\n         (byte *******)unaff_s5[(int)unaff_s4] != pppppppbVar20)) {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        if ((0 < (int)unaff_s4) &&\n           ((byte *******)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pppppppbVar20)) {\n          pppppppbVar12 = unaff_s5 + (int)(unaff_s4 + 0x10000000);\n          do {\n            unaff_s4 = (byte *******)((int)unaff_s4 + -1);\n            if (unaff_s4 == (byte *******)0x0) break;\n            pppppppbVar19 = pppppppbVar12 + -2;\n            pppppppbVar12 = pppppppbVar12 + -1;\n          } while ((byte *******)*pppppppbVar19 == pppppppbVar20);\n        }\n        if ((int)unaff_s4 < (int)unaff_s6) {\n          piVar9 = (int *)(param_1[2] + (int)unaff_s4 * 4);\n          iVar11 = *piVar9;\n          while (iVar11 == -1) {\n            unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n            piVar9 = piVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            iVar11 = *piVar9;\n          }\nLAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;\n          ppppppbVar22 = (byte ******)((int)*unaff_s4 - (int)pppppppbVar20);\n          param_1[7] = (int)ppppppbVar22;\n          if (ppppppbVar22 == (byte ******)0x0) goto LAB_00491650;\n          if (0 < (int)ppppppbVar22) {\n            iVar11 = 0;\n            do {\n              *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n              iVar11 = iVar11 + 1;\n              ppppppbVar22 = (byte ******)param_1[7];\n            } while (iVar11 < (int)ppppppbVar22);\n          }\n          pppppppbVar18 = (byte *******)0xff;\n          (*(code *)PTR_memset_004bf260)(param_1[1]);\n          iVar11 = param_1[7];\n        }\n        else {\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          param_1[7] = 0;\nLAB_00491650:\n          iVar11 = param_1[7];\n        }\n        param_1[8] = iVar11;\n        goto LAB_00491360;\n      }\n      (*(code *)PTR_memmove_004bf3a4)\n                (param_1[2],param_1[2] + (int)param_3,((int)unaff_s6 - (int)pppppppbVar20) * 4);\n      ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n      pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n      (*(code *)PTR_memmove_004bf3a4)();\n      iVar11 = param_1[7];\n      param_1[7] = iVar11 - (int)pppppppbVar20;\n      param_1[8] = param_1[8] - (int)pppppppbVar20;\n      if (iVar11 - (int)pppppppbVar20 < 1) goto LAB_00491360;\n      iVar11 = 0;\n      do {\n        *(int *)(param_1[3] + iVar11 * 4) = *(int *)(param_1[3] + (int)param_3) - (int)pppppppbVar20\n        ;\n        iVar11 = iVar11 + 1;\n        param_3 = param_3 + 1;\n      } while (iVar11 < param_1[7]);\n      cVar2 = *(char *)((int)param_1 + 0x4b);\n    }\n    else {\n      unaff_s6 = (byte *******)param_1[7];\n      if (*(char *)(param_1 + 0x13) != '\0') {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n      }\n      param_1[7] = 0;\n      if (param_1[0x14] < 2) {\n        pppppppbVar18 =\n             (byte *******)(uint)*(byte *)((int)pppppppbVar20 + param_1[6] + *param_1 + -1);\n        param_1[8] = 0;\n        if (param_1[0x10] != 0) {\n          pppppppbVar18 = (byte *******)(uint)*(byte *)((int)pppppppbVar18 + param_1[0x10]);\n        }\n        iVar11 = 1;\n        if ((*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f) & 1) == 0) {\n          iVar11 = 2;\n          if (pppppppbVar18 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        param_1[0xf] = iVar11;\n        goto LAB_00491360;\n      }\n      if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0049179c:\n        iVar11 = param_1[6];\nLAB_004917a0:\n        pppppppbVar12 = (byte *******)(iVar11 + param_1[8]);\n        if ((int)pppppppbVar12 < (int)param_2) {\n          unaff_s8 = param_1 + 4;\n          unaff_s7 = (byte *******)&local_40;\n          do {\n            unaff_s5 = pppppppbVar12;\n            iVar24 = param_1[0xb];\n            local_3c = param_1[4];\n            local_38 = param_1[5];\n            pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1);\n            iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8);\n            unaff_s4 = local_40;\n            if (0xfffffffc < iVar11 - 1U) {\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }\n            pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11);\n          } while ((int)pppppppbVar12 < (int)param_2);\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n          if (unaff_s4 != (byte *******)0xffffffff) goto LAB_00491834;\n        }\n        else {\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n        }\n        pppppppbVar18 = (byte *******)((int)unaff_s6 + -1);\n        iVar11 = FUN_0048efec(param_1,pppppppbVar18,param_3);\n        param_1[0xf] = iVar11;\n      }\n      else {\n        pppppppbVar12 = (byte *******)*param_1;\n        unaff_s4 = (byte *******)((int)pppppppbVar12 + param_1[6]);\n        pppppppbVar18 = (byte *******)((int)unaff_s4 + ((int)pppppppbVar20 - param_1[0x14]));\n        if (pppppppbVar18 <= pppppppbVar12) {\n          pppppppbVar18 = pppppppbVar12;\n        }\n        pppppppbVar12 = (byte *******)((int)unaff_s4 + (int)((int)pppppppbVar20 + -1));\n        unaff_s5 = pppppppbVar20;\n        if (pppppppbVar12 < pppppppbVar18) goto LAB_0049179c;\n        bVar3 = *(byte *)pppppppbVar12;\n        unaff_s7 = pppppppbVar12;\n        while ((bVar3 & 0xc0) == 0x80) {\n          pppppppbVar19 = (byte *******)((int)unaff_s7 + -1);\n          unaff_s7 = pppppppbVar12;\n          if (pppppppbVar19 < pppppppbVar18) goto LAB_0049179c;\n          unaff_s7 = pppppppbVar19;\n          bVar3 = *(byte *)pppppppbVar19;\n        }\n        iVar11 = param_1[0x10];\n        pbVar16 = (byte *)((int)unaff_s4 + (param_1[0xc] - (int)unaff_s7));\n        pppppppbVar18 = unaff_s7;\n        if (iVar11 != 0) {\n          pbVar17 = (byte *)0x6;\n          if ((int)pbVar16 < 7) {\n            pbVar17 = pbVar16;\n          }\n          if ((int)(pbVar17 + -1) < 0) {\n            pppppppbVar18 = appppppbStack_34;\n          }\n          else {\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }\n        }\n        local_3c = 0;\n        local_38 = 0;\n        uVar29 = (*(code *)PTR_mbrtowc_004bf2ec)(&local_40);\n        uVar30 = (int)((int)unaff_s4 + (int)pppppppbVar20) - (int)unaff_s7;\n        if ((uVar29 < uVar30) || (0xfffffffd < uVar29)) goto LAB_0049179c;\n        *(undefined1 *)(param_1 + 4) = 0;\n        *(undefined1 *)((int)param_1 + 0x11) = 0;\n        *(undefined1 *)((int)param_1 + 0x12) = 0;\n        *(undefined1 *)((int)param_1 + 0x13) = 0;\n        *(undefined1 *)(param_1 + 5) = 0;\n        *(undefined1 *)((int)param_1 + 0x15) = 0;\n        *(undefined1 *)((int)param_1 + 0x16) = 0;\n        *(undefined1 *)((int)param_1 + 0x17) = 0;\n        param_1[7] = uVar29 - uVar30;\n        unaff_s4 = local_40;\n        if (local_40 == (byte *******)0xffffffff) {\n          iVar11 = param_1[6];\n          goto LAB_004917a0;\n        }\nLAB_00491834:\n        if (*(char *)((int)param_1 + 0x4e) == '\0') {\nLAB_00491840:\n          iVar11 = 2;\n          if (unaff_s4 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        else {\n          iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          iVar11 = 1;\n          if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }\n        param_1[0xf] = iVar11;\n      }\nLAB_00491854:\n      ppppppbVar22 = (byte ******)param_1[7];\n      if (ppppppbVar22 == (byte ******)0x0) {\nLAB_00491860:\n        iVar11 = param_1[7];\n      }\n      else {\n        iVar11 = 0;\n        if (0 < (int)ppppppbVar22) {\n          do {\n            *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n            iVar11 = iVar11 + 1;\n            ppppppbVar22 = (byte ******)param_1[7];\n          } while (iVar11 < (int)ppppppbVar22);\n        }\n        pppppppbVar18 = (byte *******)0xff;\n        if (*(char *)((int)param_1 + 0x4b) == '\0') goto LAB_00491860;\n        (*(code *)PTR_memset_004bf260)(param_1[1]);\n        iVar11 = param_1[7];\n      }\n      param_1[8] = iVar11;\nLAB_00491360:\n      cVar2 = *(char *)((int)param_1 + 0x4b);\n    }\n    if (cVar2 == '\0') {\n      param_1[1] = (int)((int)pppppppbVar20 + param_1[1]);\n    }\n  }" if (parenthesized_expression "(pppppppbVar20 != (byte *******)0x0)" ( (binary_expression "pppppppbVar20 != (byte *******)0x0" identifier != (cast_expression "(byte *******)0x0" ( (type_descriptor "byte *******" 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 ((int)pppppppbVar20 < param_1[8]) {\n      if (*(char *)(param_1 + 0x13) == '\0') {\n        iVar11 = FUN_0048efec(param_1,(byte *)((int)pppppppbVar20 + -1));\n        param_1[0xf] = iVar11;\n        pppppppbVar18 = (byte *******)((int)pppppppbVar20 * 4);\n        if (param_1[0x14] < 2) {\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        else {\n          ppppppbVar22 = (byte ******)((param_1[7] - (int)pppppppbVar20) * 4);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar18 + param_1[2]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        if (cVar2 == '\0') {\n          iVar11 = param_1[7];\n        }\n        else {\n          ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar11 = param_1[7];\n        }\n        param_1[7] = iVar11 - (int)pppppppbVar20;\n        param_1[8] = param_1[8] - (int)pppppppbVar20;\n        goto LAB_00491360;\n      }\n      unaff_s6 = (byte *******)param_1[7];\n      unaff_s5 = (byte *******)param_1[3];\n      pbVar16 = (byte *)0x0;\n      pppppppbVar18 = unaff_s6;\n      do {\n        unaff_s4 = (byte *******)((int)(pbVar16 + (int)pppppppbVar18) / 2);\n        ppppppbVar6 = unaff_s5[(int)unaff_s4];\n        bVar1 = (int)pbVar16 < (int)unaff_s4;\n        pppppppbVar12 = unaff_s4;\n        if ((int)ppppppbVar6 <= (int)pppppppbVar20) {\n          pbVar16 = (byte *)((int)unaff_s4 + 1);\n          if ((int)pppppppbVar20 <= (int)ppppppbVar6) goto LAB_0049145c;\n          bVar1 = (int)pbVar16 < (int)pppppppbVar18;\n          pppppppbVar12 = pppppppbVar18;\n        }\n        pppppppbVar18 = pppppppbVar12;\n      } while (bVar1);\n      if ((int)ppppppbVar6 < (int)pppppppbVar20) {\n        unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n      }\nLAB_0049145c:\n      pppppppbVar18 = (byte *******)((int)unaff_s4 + -1);\n      iVar11 = FUN_0048efec(param_1);\n      param_1[0xf] = iVar11;\n      if ((((int)unaff_s6 <= (int)pppppppbVar20) || (pppppppbVar20 != unaff_s4)) ||\n         (param_3 = (byte ******)((int)pppppppbVar20 * 4),\n         (byte *******)unaff_s5[(int)unaff_s4] != pppppppbVar20)) {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        if ((0 < (int)unaff_s4) &&\n           ((byte *******)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pppppppbVar20)) {\n          pppppppbVar12 = unaff_s5 + (int)(unaff_s4 + 0x10000000);\n          do {\n            unaff_s4 = (byte *******)((int)unaff_s4 + -1);\n            if (unaff_s4 == (byte *******)0x0) break;\n            pppppppbVar19 = pppppppbVar12 + -2;\n            pppppppbVar12 = pppppppbVar12 + -1;\n          } while ((byte *******)*pppppppbVar19 == pppppppbVar20);\n        }\n        if ((int)unaff_s4 < (int)unaff_s6) {\n          piVar9 = (int *)(param_1[2] + (int)unaff_s4 * 4);\n          iVar11 = *piVar9;\n          while (iVar11 == -1) {\n            unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n            piVar9 = piVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            iVar11 = *piVar9;\n          }\nLAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;\n          ppppppbVar22 = (byte ******)((int)*unaff_s4 - (int)pppppppbVar20);\n          param_1[7] = (int)ppppppbVar22;\n          if (ppppppbVar22 == (byte ******)0x0) goto LAB_00491650;\n          if (0 < (int)ppppppbVar22) {\n            iVar11 = 0;\n            do {\n              *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n              iVar11 = iVar11 + 1;\n              ppppppbVar22 = (byte ******)param_1[7];\n            } while (iVar11 < (int)ppppppbVar22);\n          }\n          pppppppbVar18 = (byte *******)0xff;\n          (*(code *)PTR_memset_004bf260)(param_1[1]);\n          iVar11 = param_1[7];\n        }\n        else {\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          param_1[7] = 0;\nLAB_00491650:\n          iVar11 = param_1[7];\n        }\n        param_1[8] = iVar11;\n        goto LAB_00491360;\n      }\n      (*(code *)PTR_memmove_004bf3a4)\n                (param_1[2],param_1[2] + (int)param_3,((int)unaff_s6 - (int)pppppppbVar20) * 4);\n      ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n      pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n      (*(code *)PTR_memmove_004bf3a4)();\n      iVar11 = param_1[7];\n      param_1[7] = iVar11 - (int)pppppppbVar20;\n      param_1[8] = param_1[8] - (int)pppppppbVar20;\n      if (iVar11 - (int)pppppppbVar20 < 1) goto LAB_00491360;\n      iVar11 = 0;\n      do {\n        *(int *)(param_1[3] + iVar11 * 4) = *(int *)(param_1[3] + (int)param_3) - (int)pppppppbVar20\n        ;\n        iVar11 = iVar11 + 1;\n        param_3 = param_3 + 1;\n      } while (iVar11 < param_1[7]);\n      cVar2 = *(char *)((int)param_1 + 0x4b);\n    }\n    else {\n      unaff_s6 = (byte *******)param_1[7];\n      if (*(char *)(param_1 + 0x13) != '\0') {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n      }\n      param_1[7] = 0;\n      if (param_1[0x14] < 2) {\n        pppppppbVar18 =\n             (byte *******)(uint)*(byte *)((int)pppppppbVar20 + param_1[6] + *param_1 + -1);\n        param_1[8] = 0;\n        if (param_1[0x10] != 0) {\n          pppppppbVar18 = (byte *******)(uint)*(byte *)((int)pppppppbVar18 + param_1[0x10]);\n        }\n        iVar11 = 1;\n        if ((*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f) & 1) == 0) {\n          iVar11 = 2;\n          if (pppppppbVar18 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        param_1[0xf] = iVar11;\n        goto LAB_00491360;\n      }\n      if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0049179c:\n        iVar11 = param_1[6];\nLAB_004917a0:\n        pppppppbVar12 = (byte *******)(iVar11 + param_1[8]);\n        if ((int)pppppppbVar12 < (int)param_2) {\n          unaff_s8 = param_1 + 4;\n          unaff_s7 = (byte *******)&local_40;\n          do {\n            unaff_s5 = pppppppbVar12;\n            iVar24 = param_1[0xb];\n            local_3c = param_1[4];\n            local_38 = param_1[5];\n            pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1);\n            iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8);\n            unaff_s4 = local_40;\n            if (0xfffffffc < iVar11 - 1U) {\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }\n            pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11);\n          } while ((int)pppppppbVar12 < (int)param_2);\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n          if (unaff_s4 != (byte *******)0xffffffff) goto LAB_00491834;\n        }\n        else {\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n        }\n        pppppppbVar18 = (byte *******)((int)unaff_s6 + -1);\n        iVar11 = FUN_0048efec(param_1,pppppppbVar18,param_3);\n        param_1[0xf] = iVar11;\n      }\n      else {\n        pppppppbVar12 = (byte *******)*param_1;\n        unaff_s4 = (byte *******)((int)pppppppbVar12 + param_1[6]);\n        pppppppbVar18 = (byte *******)((int)unaff_s4 + ((int)pppppppbVar20 - param_1[0x14]));\n        if (pppppppbVar18 <= pppppppbVar12) {\n          pppppppbVar18 = pppppppbVar12;\n        }\n        pppppppbVar12 = (byte *******)((int)unaff_s4 + (int)((int)pppppppbVar20 + -1));\n        unaff_s5 = pppppppbVar20;\n        if (pppppppbVar12 < pppppppbVar18) goto LAB_0049179c;\n        bVar3 = *(byte *)pppppppbVar12;\n        unaff_s7 = pppppppbVar12;\n        while ((bVar3 & 0xc0) == 0x80) {\n          pppppppbVar19 = (byte *******)((int)unaff_s7 + -1);\n          unaff_s7 = pppppppbVar12;\n          if (pppppppbVar19 < pppppppbVar18) goto LAB_0049179c;\n          unaff_s7 = pppppppbVar19;\n          bVar3 = *(byte *)pppppppbVar19;\n        }\n        iVar11 = param_1[0x10];\n        pbVar16 = (byte *)((int)unaff_s4 + (param_1[0xc] - (int)unaff_s7));\n        pppppppbVar18 = unaff_s7;\n        if (iVar11 != 0) {\n          pbVar17 = (byte *)0x6;\n          if ((int)pbVar16 < 7) {\n            pbVar17 = pbVar16;\n          }\n          if ((int)(pbVar17 + -1) < 0) {\n            pppppppbVar18 = appppppbStack_34;\n          }\n          else {\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }\n        }\n        local_3c = 0;\n        local_38 = 0;\n        uVar29 = (*(code *)PTR_mbrtowc_004bf2ec)(&local_40);\n        uVar30 = (int)((int)unaff_s4 + (int)pppppppbVar20) - (int)unaff_s7;\n        if ((uVar29 < uVar30) || (0xfffffffd < uVar29)) goto LAB_0049179c;\n        *(undefined1 *)(param_1 + 4) = 0;\n        *(undefined1 *)((int)param_1 + 0x11) = 0;\n        *(undefined1 *)((int)param_1 + 0x12) = 0;\n        *(undefined1 *)((int)param_1 + 0x13) = 0;\n        *(undefined1 *)(param_1 + 5) = 0;\n        *(undefined1 *)((int)param_1 + 0x15) = 0;\n        *(undefined1 *)((int)param_1 + 0x16) = 0;\n        *(undefined1 *)((int)param_1 + 0x17) = 0;\n        param_1[7] = uVar29 - uVar30;\n        unaff_s4 = local_40;\n        if (local_40 == (byte *******)0xffffffff) {\n          iVar11 = param_1[6];\n          goto LAB_004917a0;\n        }\nLAB_00491834:\n        if (*(char *)((int)param_1 + 0x4e) == '\0') {\nLAB_00491840:\n          iVar11 = 2;\n          if (unaff_s4 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        else {\n          iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          iVar11 = 1;\n          if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }\n        param_1[0xf] = iVar11;\n      }\nLAB_00491854:\n      ppppppbVar22 = (byte ******)param_1[7];\n      if (ppppppbVar22 == (byte ******)0x0) {\nLAB_00491860:\n        iVar11 = param_1[7];\n      }\n      else {\n        iVar11 = 0;\n        if (0 < (int)ppppppbVar22) {\n          do {\n            *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n            iVar11 = iVar11 + 1;\n            ppppppbVar22 = (byte ******)param_1[7];\n          } while (iVar11 < (int)ppppppbVar22);\n        }\n        pppppppbVar18 = (byte *******)0xff;\n        if (*(char *)((int)param_1 + 0x4b) == '\0') goto LAB_00491860;\n        (*(code *)PTR_memset_004bf260)(param_1[1]);\n        iVar11 = param_1[7];\n      }\n      param_1[8] = iVar11;\nLAB_00491360:\n      cVar2 = *(char *)((int)param_1 + 0x4b);\n    }\n    if (cVar2 == '\0') {\n      param_1[1] = (int)((int)pppppppbVar20 + param_1[1]);\n    }\n  }" { (if_statement "if ((int)pppppppbVar20 < param_1[8]) {\n      if (*(char *)(param_1 + 0x13) == '\0') {\n        iVar11 = FUN_0048efec(param_1,(byte *)((int)pppppppbVar20 + -1));\n        param_1[0xf] = iVar11;\n        pppppppbVar18 = (byte *******)((int)pppppppbVar20 * 4);\n        if (param_1[0x14] < 2) {\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        else {\n          ppppppbVar22 = (byte ******)((param_1[7] - (int)pppppppbVar20) * 4);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar18 + param_1[2]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        if (cVar2 == '\0') {\n          iVar11 = param_1[7];\n        }\n        else {\n          ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar11 = param_1[7];\n        }\n        param_1[7] = iVar11 - (int)pppppppbVar20;\n        param_1[8] = param_1[8] - (int)pppppppbVar20;\n        goto LAB_00491360;\n      }\n      unaff_s6 = (byte *******)param_1[7];\n      unaff_s5 = (byte *******)param_1[3];\n      pbVar16 = (byte *)0x0;\n      pppppppbVar18 = unaff_s6;\n      do {\n        unaff_s4 = (byte *******)((int)(pbVar16 + (int)pppppppbVar18) / 2);\n        ppppppbVar6 = unaff_s5[(int)unaff_s4];\n        bVar1 = (int)pbVar16 < (int)unaff_s4;\n        pppppppbVar12 = unaff_s4;\n        if ((int)ppppppbVar6 <= (int)pppppppbVar20) {\n          pbVar16 = (byte *)((int)unaff_s4 + 1);\n          if ((int)pppppppbVar20 <= (int)ppppppbVar6) goto LAB_0049145c;\n          bVar1 = (int)pbVar16 < (int)pppppppbVar18;\n          pppppppbVar12 = pppppppbVar18;\n        }\n        pppppppbVar18 = pppppppbVar12;\n      } while (bVar1);\n      if ((int)ppppppbVar6 < (int)pppppppbVar20) {\n        unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n      }\nLAB_0049145c:\n      pppppppbVar18 = (byte *******)((int)unaff_s4 + -1);\n      iVar11 = FUN_0048efec(param_1);\n      param_1[0xf] = iVar11;\n      if ((((int)unaff_s6 <= (int)pppppppbVar20) || (pppppppbVar20 != unaff_s4)) ||\n         (param_3 = (byte ******)((int)pppppppbVar20 * 4),\n         (byte *******)unaff_s5[(int)unaff_s4] != pppppppbVar20)) {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        if ((0 < (int)unaff_s4) &&\n           ((byte *******)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pppppppbVar20)) {\n          pppppppbVar12 = unaff_s5 + (int)(unaff_s4 + 0x10000000);\n          do {\n            unaff_s4 = (byte *******)((int)unaff_s4 + -1);\n            if (unaff_s4 == (byte *******)0x0) break;\n            pppppppbVar19 = pppppppbVar12 + -2;\n            pppppppbVar12 = pppppppbVar12 + -1;\n          } while ((byte *******)*pppppppbVar19 == pppppppbVar20);\n        }\n        if ((int)unaff_s4 < (int)unaff_s6) {\n          piVar9 = (int *)(param_1[2] + (int)unaff_s4 * 4);\n          iVar11 = *piVar9;\n          while (iVar11 == -1) {\n            unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n            piVar9 = piVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            iVar11 = *piVar9;\n          }\nLAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;\n          ppppppbVar22 = (byte ******)((int)*unaff_s4 - (int)pppppppbVar20);\n          param_1[7] = (int)ppppppbVar22;\n          if (ppppppbVar22 == (byte ******)0x0) goto LAB_00491650;\n          if (0 < (int)ppppppbVar22) {\n            iVar11 = 0;\n            do {\n              *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n              iVar11 = iVar11 + 1;\n              ppppppbVar22 = (byte ******)param_1[7];\n            } while (iVar11 < (int)ppppppbVar22);\n          }\n          pppppppbVar18 = (byte *******)0xff;\n          (*(code *)PTR_memset_004bf260)(param_1[1]);\n          iVar11 = param_1[7];\n        }\n        else {\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          param_1[7] = 0;\nLAB_00491650:\n          iVar11 = param_1[7];\n        }\n        param_1[8] = iVar11;\n        goto LAB_00491360;\n      }\n      (*(code *)PTR_memmove_004bf3a4)\n                (param_1[2],param_1[2] + (int)param_3,((int)unaff_s6 - (int)pppppppbVar20) * 4);\n      ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n      pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n      (*(code *)PTR_memmove_004bf3a4)();\n      iVar11 = param_1[7];\n      param_1[7] = iVar11 - (int)pppppppbVar20;\n      param_1[8] = param_1[8] - (int)pppppppbVar20;\n      if (iVar11 - (int)pppppppbVar20 < 1) goto LAB_00491360;\n      iVar11 = 0;\n      do {\n        *(int *)(param_1[3] + iVar11 * 4) = *(int *)(param_1[3] + (int)param_3) - (int)pppppppbVar20\n        ;\n        iVar11 = iVar11 + 1;\n        param_3 = param_3 + 1;\n      } while (iVar11 < param_1[7]);\n      cVar2 = *(char *)((int)param_1 + 0x4b);\n    }\n    else {\n      unaff_s6 = (byte *******)param_1[7];\n      if (*(char *)(param_1 + 0x13) != '\0') {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n      }\n      param_1[7] = 0;\n      if (param_1[0x14] < 2) {\n        pppppppbVar18 =\n             (byte *******)(uint)*(byte *)((int)pppppppbVar20 + param_1[6] + *param_1 + -1);\n        param_1[8] = 0;\n        if (param_1[0x10] != 0) {\n          pppppppbVar18 = (byte *******)(uint)*(byte *)((int)pppppppbVar18 + param_1[0x10]);\n        }\n        iVar11 = 1;\n        if ((*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f) & 1) == 0) {\n          iVar11 = 2;\n          if (pppppppbVar18 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        param_1[0xf] = iVar11;\n        goto LAB_00491360;\n      }\n      if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0049179c:\n        iVar11 = param_1[6];\nLAB_004917a0:\n        pppppppbVar12 = (byte *******)(iVar11 + param_1[8]);\n        if ((int)pppppppbVar12 < (int)param_2) {\n          unaff_s8 = param_1 + 4;\n          unaff_s7 = (byte *******)&local_40;\n          do {\n            unaff_s5 = pppppppbVar12;\n            iVar24 = param_1[0xb];\n            local_3c = param_1[4];\n            local_38 = param_1[5];\n            pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1);\n            iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8);\n            unaff_s4 = local_40;\n            if (0xfffffffc < iVar11 - 1U) {\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }\n            pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11);\n          } while ((int)pppppppbVar12 < (int)param_2);\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n          if (unaff_s4 != (byte *******)0xffffffff) goto LAB_00491834;\n        }\n        else {\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n        }\n        pppppppbVar18 = (byte *******)((int)unaff_s6 + -1);\n        iVar11 = FUN_0048efec(param_1,pppppppbVar18,param_3);\n        param_1[0xf] = iVar11;\n      }\n      else {\n        pppppppbVar12 = (byte *******)*param_1;\n        unaff_s4 = (byte *******)((int)pppppppbVar12 + param_1[6]);\n        pppppppbVar18 = (byte *******)((int)unaff_s4 + ((int)pppppppbVar20 - param_1[0x14]));\n        if (pppppppbVar18 <= pppppppbVar12) {\n          pppppppbVar18 = pppppppbVar12;\n        }\n        pppppppbVar12 = (byte *******)((int)unaff_s4 + (int)((int)pppppppbVar20 + -1));\n        unaff_s5 = pppppppbVar20;\n        if (pppppppbVar12 < pppppppbVar18) goto LAB_0049179c;\n        bVar3 = *(byte *)pppppppbVar12;\n        unaff_s7 = pppppppbVar12;\n        while ((bVar3 & 0xc0) == 0x80) {\n          pppppppbVar19 = (byte *******)((int)unaff_s7 + -1);\n          unaff_s7 = pppppppbVar12;\n          if (pppppppbVar19 < pppppppbVar18) goto LAB_0049179c;\n          unaff_s7 = pppppppbVar19;\n          bVar3 = *(byte *)pppppppbVar19;\n        }\n        iVar11 = param_1[0x10];\n        pbVar16 = (byte *)((int)unaff_s4 + (param_1[0xc] - (int)unaff_s7));\n        pppppppbVar18 = unaff_s7;\n        if (iVar11 != 0) {\n          pbVar17 = (byte *)0x6;\n          if ((int)pbVar16 < 7) {\n            pbVar17 = pbVar16;\n          }\n          if ((int)(pbVar17 + -1) < 0) {\n            pppppppbVar18 = appppppbStack_34;\n          }\n          else {\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }\n        }\n        local_3c = 0;\n        local_38 = 0;\n        uVar29 = (*(code *)PTR_mbrtowc_004bf2ec)(&local_40);\n        uVar30 = (int)((int)unaff_s4 + (int)pppppppbVar20) - (int)unaff_s7;\n        if ((uVar29 < uVar30) || (0xfffffffd < uVar29)) goto LAB_0049179c;\n        *(undefined1 *)(param_1 + 4) = 0;\n        *(undefined1 *)((int)param_1 + 0x11) = 0;\n        *(undefined1 *)((int)param_1 + 0x12) = 0;\n        *(undefined1 *)((int)param_1 + 0x13) = 0;\n        *(undefined1 *)(param_1 + 5) = 0;\n        *(undefined1 *)((int)param_1 + 0x15) = 0;\n        *(undefined1 *)((int)param_1 + 0x16) = 0;\n        *(undefined1 *)((int)param_1 + 0x17) = 0;\n        param_1[7] = uVar29 - uVar30;\n        unaff_s4 = local_40;\n        if (local_40 == (byte *******)0xffffffff) {\n          iVar11 = param_1[6];\n          goto LAB_004917a0;\n        }\nLAB_00491834:\n        if (*(char *)((int)param_1 + 0x4e) == '\0') {\nLAB_00491840:\n          iVar11 = 2;\n          if (unaff_s4 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        else {\n          iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          iVar11 = 1;\n          if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }\n        param_1[0xf] = iVar11;\n      }\nLAB_00491854:\n      ppppppbVar22 = (byte ******)param_1[7];\n      if (ppppppbVar22 == (byte ******)0x0) {\nLAB_00491860:\n        iVar11 = param_1[7];\n      }\n      else {\n        iVar11 = 0;\n        if (0 < (int)ppppppbVar22) {\n          do {\n            *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n            iVar11 = iVar11 + 1;\n            ppppppbVar22 = (byte ******)param_1[7];\n          } while (iVar11 < (int)ppppppbVar22);\n        }\n        pppppppbVar18 = (byte *******)0xff;\n        if (*(char *)((int)param_1 + 0x4b) == '\0') goto LAB_00491860;\n        (*(code *)PTR_memset_004bf260)(param_1[1]);\n        iVar11 = param_1[7];\n      }\n      param_1[8] = iVar11;\nLAB_00491360:\n      cVar2 = *(char *)((int)param_1 + 0x4b);\n    }" if (parenthesized_expression "((int)pppppppbVar20 < param_1[8])" ( (binary_expression "(int)pppppppbVar20 < param_1[8]" (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier) < (subscript_expression "param_1[8]" identifier [ number_literal ])) )) (compound_statement "{\n      if (*(char *)(param_1 + 0x13) == '\0') {\n        iVar11 = FUN_0048efec(param_1,(byte *)((int)pppppppbVar20 + -1));\n        param_1[0xf] = iVar11;\n        pppppppbVar18 = (byte *******)((int)pppppppbVar20 * 4);\n        if (param_1[0x14] < 2) {\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        else {\n          ppppppbVar22 = (byte ******)((param_1[7] - (int)pppppppbVar20) * 4);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar18 + param_1[2]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        if (cVar2 == '\0') {\n          iVar11 = param_1[7];\n        }\n        else {\n          ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar11 = param_1[7];\n        }\n        param_1[7] = iVar11 - (int)pppppppbVar20;\n        param_1[8] = param_1[8] - (int)pppppppbVar20;\n        goto LAB_00491360;\n      }\n      unaff_s6 = (byte *******)param_1[7];\n      unaff_s5 = (byte *******)param_1[3];\n      pbVar16 = (byte *)0x0;\n      pppppppbVar18 = unaff_s6;\n      do {\n        unaff_s4 = (byte *******)((int)(pbVar16 + (int)pppppppbVar18) / 2);\n        ppppppbVar6 = unaff_s5[(int)unaff_s4];\n        bVar1 = (int)pbVar16 < (int)unaff_s4;\n        pppppppbVar12 = unaff_s4;\n        if ((int)ppppppbVar6 <= (int)pppppppbVar20) {\n          pbVar16 = (byte *)((int)unaff_s4 + 1);\n          if ((int)pppppppbVar20 <= (int)ppppppbVar6) goto LAB_0049145c;\n          bVar1 = (int)pbVar16 < (int)pppppppbVar18;\n          pppppppbVar12 = pppppppbVar18;\n        }\n        pppppppbVar18 = pppppppbVar12;\n      } while (bVar1);\n      if ((int)ppppppbVar6 < (int)pppppppbVar20) {\n        unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n      }\nLAB_0049145c:\n      pppppppbVar18 = (byte *******)((int)unaff_s4 + -1);\n      iVar11 = FUN_0048efec(param_1);\n      param_1[0xf] = iVar11;\n      if ((((int)unaff_s6 <= (int)pppppppbVar20) || (pppppppbVar20 != unaff_s4)) ||\n         (param_3 = (byte ******)((int)pppppppbVar20 * 4),\n         (byte *******)unaff_s5[(int)unaff_s4] != pppppppbVar20)) {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        if ((0 < (int)unaff_s4) &&\n           ((byte *******)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pppppppbVar20)) {\n          pppppppbVar12 = unaff_s5 + (int)(unaff_s4 + 0x10000000);\n          do {\n            unaff_s4 = (byte *******)((int)unaff_s4 + -1);\n            if (unaff_s4 == (byte *******)0x0) break;\n            pppppppbVar19 = pppppppbVar12 + -2;\n            pppppppbVar12 = pppppppbVar12 + -1;\n          } while ((byte *******)*pppppppbVar19 == pppppppbVar20);\n        }\n        if ((int)unaff_s4 < (int)unaff_s6) {\n          piVar9 = (int *)(param_1[2] + (int)unaff_s4 * 4);\n          iVar11 = *piVar9;\n          while (iVar11 == -1) {\n            unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n            piVar9 = piVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            iVar11 = *piVar9;\n          }\nLAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;\n          ppppppbVar22 = (byte ******)((int)*unaff_s4 - (int)pppppppbVar20);\n          param_1[7] = (int)ppppppbVar22;\n          if (ppppppbVar22 == (byte ******)0x0) goto LAB_00491650;\n          if (0 < (int)ppppppbVar22) {\n            iVar11 = 0;\n            do {\n              *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n              iVar11 = iVar11 + 1;\n              ppppppbVar22 = (byte ******)param_1[7];\n            } while (iVar11 < (int)ppppppbVar22);\n          }\n          pppppppbVar18 = (byte *******)0xff;\n          (*(code *)PTR_memset_004bf260)(param_1[1]);\n          iVar11 = param_1[7];\n        }\n        else {\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          param_1[7] = 0;\nLAB_00491650:\n          iVar11 = param_1[7];\n        }\n        param_1[8] = iVar11;\n        goto LAB_00491360;\n      }\n      (*(code *)PTR_memmove_004bf3a4)\n                (param_1[2],param_1[2] + (int)param_3,((int)unaff_s6 - (int)pppppppbVar20) * 4);\n      ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n      pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n      (*(code *)PTR_memmove_004bf3a4)();\n      iVar11 = param_1[7];\n      param_1[7] = iVar11 - (int)pppppppbVar20;\n      param_1[8] = param_1[8] - (int)pppppppbVar20;\n      if (iVar11 - (int)pppppppbVar20 < 1) goto LAB_00491360;\n      iVar11 = 0;\n      do {\n        *(int *)(param_1[3] + iVar11 * 4) = *(int *)(param_1[3] + (int)param_3) - (int)pppppppbVar20\n        ;\n        iVar11 = iVar11 + 1;\n        param_3 = param_3 + 1;\n      } while (iVar11 < param_1[7]);\n      cVar2 = *(char *)((int)param_1 + 0x4b);\n    }" { (if_statement "if (*(char *)(param_1 + 0x13) == '\0') {\n        iVar11 = FUN_0048efec(param_1,(byte *)((int)pppppppbVar20 + -1));\n        param_1[0xf] = iVar11;\n        pppppppbVar18 = (byte *******)((int)pppppppbVar20 * 4);\n        if (param_1[0x14] < 2) {\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        else {\n          ppppppbVar22 = (byte ******)((param_1[7] - (int)pppppppbVar20) * 4);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar18 + param_1[2]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        if (cVar2 == '\0') {\n          iVar11 = param_1[7];\n        }\n        else {\n          ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar11 = param_1[7];\n        }\n        param_1[7] = iVar11 - (int)pppppppbVar20;\n        param_1[8] = param_1[8] - (int)pppppppbVar20;\n        goto LAB_00491360;\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        iVar11 = FUN_0048efec(param_1,(byte *)((int)pppppppbVar20 + -1));\n        param_1[0xf] = iVar11;\n        pppppppbVar18 = (byte *******)((int)pppppppbVar20 * 4);\n        if (param_1[0x14] < 2) {\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        else {\n          ppppppbVar22 = (byte ******)((param_1[7] - (int)pppppppbVar20) * 4);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar18 + param_1[2]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        if (cVar2 == '\0') {\n          iVar11 = param_1[7];\n        }\n        else {\n          ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar11 = param_1[7];\n        }\n        param_1[7] = iVar11 - (int)pppppppbVar20;\n        param_1[8] = param_1[8] - (int)pppppppbVar20;\n        goto LAB_00491360;\n      }" { (expression_statement "iVar11 = FUN_0048efec(param_1,(byte *)((int)pppppppbVar20 + -1));" (assignment_expression "iVar11 = FUN_0048efec(param_1,(byte *)((int)pppppppbVar20 + -1))" identifier = (call_expression "FUN_0048efec(param_1,(byte *)((int)pppppppbVar20 + -1))" identifier (argument_list "(param_1,(byte *)((int)pppppppbVar20 + -1))" ( identifier , (cast_expression "(byte *)((int)pppppppbVar20 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppppbVar20 + -1)" ( (binary_expression "(int)pppppppbVar20 + -1" (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )))) ;) (expression_statement "param_1[0xf] = iVar11;" (assignment_expression "param_1[0xf] = iVar11" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pppppppbVar18 = (byte *******)((int)pppppppbVar20 * 4);" (assignment_expression "pppppppbVar18 = (byte *******)((int)pppppppbVar20 * 4)" identifier = (cast_expression "(byte *******)((int)pppppppbVar20 * 4)" ( (type_descriptor "byte *******" 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)pppppppbVar20 * 4)" ( (binary_expression "(int)pppppppbVar20 * 4" (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (if_statement "if (param_1[0x14] < 2) {\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        else {\n          ppppppbVar22 = (byte ******)((param_1[7] - (int)pppppppbVar20) * 4);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar18 + param_1[2]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }" if (parenthesized_expression "(param_1[0x14] < 2)" ( (binary_expression "param_1[0x14] < 2" (subscript_expression "param_1[0x14]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }" { (expression_statement "cVar2 = *(char *)((int)param_1 + 0x4b);" (assignment_expression "cVar2 = *(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          ppppppbVar22 = (byte ******)((param_1[7] - (int)pppppppbVar20) * 4);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar18 + param_1[2]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }" else (compound_statement "{\n          ppppppbVar22 = (byte ******)((param_1[7] - (int)pppppppbVar20) * 4);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar18 + param_1[2]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }" { (expression_statement "ppppppbVar22 = (byte ******)((param_1[7] - (int)pppppppbVar20) * 4);" (assignment_expression "ppppppbVar22 = (byte ******)((param_1[7] - (int)pppppppbVar20) * 4)" identifier = (cast_expression "(byte ******)((param_1[7] - (int)pppppppbVar20) * 4)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((param_1[7] - (int)pppppppbVar20) * 4)" ( (binary_expression "(param_1[7] - (int)pppppppbVar20) * 4" (parenthesized_expression "(param_1[7] - (int)pppppppbVar20)" ( (binary_expression "param_1[7] - (int)pppppppbVar20" (subscript_expression "param_1[7]" identifier [ number_literal ]) - (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal) )))) ;) (expression_statement "pppppppbVar18 = (byte *******)((int)pppppppbVar18 + param_1[2]);" (assignment_expression "pppppppbVar18 = (byte *******)((int)pppppppbVar18 + param_1[2])" identifier = (cast_expression "(byte *******)((int)pppppppbVar18 + param_1[2])" ( (type_descriptor "byte *******" 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)pppppppbVar18 + param_1[2])" ( (binary_expression "(int)pppppppbVar18 + param_1[2]" (cast_expression "(int)pppppppbVar18" ( (type_descriptor "int" primitive_type) ) identifier) + (subscript_expression "param_1[2]" identifier [ number_literal ])) )))) ;) (expression_statement "(*(code *)PTR_memmove_004bf3a4)();" (call_expression "(*(code *)PTR_memmove_004bf3a4)()" (parenthesized_expression "(*(code *)PTR_memmove_004bf3a4)" ( (pointer_expression "*(code *)PTR_memmove_004bf3a4" * (cast_expression "(code *)PTR_memmove_004bf3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "cVar2 = *(char *)((int)param_1 + 0x4b);" (assignment_expression "cVar2 = *(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 (cVar2 == '\0') {\n          iVar11 = param_1[7];\n        }\n        else {\n          ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar11 = param_1[7];\n        }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          iVar11 = param_1[7];\n        }" { (expression_statement "iVar11 = param_1[7];" (assignment_expression "iVar11 = param_1[7]" identifier = (subscript_expression "param_1[7]" identifier [ number_literal ])) ;) }) (else_clause "else {\n          ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar11 = param_1[7];\n        }" else (compound_statement "{\n          ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar11 = param_1[7];\n        }" { (expression_statement "ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);" (assignment_expression "ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20)" identifier = (cast_expression "(byte ******)(param_1[7] - (int)pppppppbVar20)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(param_1[7] - (int)pppppppbVar20)" ( (binary_expression "param_1[7] - (int)pppppppbVar20" (subscript_expression "param_1[7]" identifier [ number_literal ]) - (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);" (assignment_expression "pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1])" identifier = (cast_expression "(byte *******)((int)pppppppbVar20 + param_1[1])" ( (type_descriptor "byte *******" 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)pppppppbVar20 + param_1[1])" ( (binary_expression "(int)pppppppbVar20 + param_1[1]" (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier) + (subscript_expression "param_1[1]" identifier [ number_literal ])) )))) ;) (expression_statement "(*(code *)PTR_memmove_004bf3a4)();" (call_expression "(*(code *)PTR_memmove_004bf3a4)()" (parenthesized_expression "(*(code *)PTR_memmove_004bf3a4)" ( (pointer_expression "*(code *)PTR_memmove_004bf3a4" * (cast_expression "(code *)PTR_memmove_004bf3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar11 = param_1[7];" (assignment_expression "iVar11 = param_1[7]" identifier = (subscript_expression "param_1[7]" identifier [ number_literal ])) ;) }))) (expression_statement "param_1[7] = iVar11 - (int)pppppppbVar20;" (assignment_expression "param_1[7] = iVar11 - (int)pppppppbVar20" (subscript_expression "param_1[7]" identifier [ number_literal ]) = (binary_expression "iVar11 - (int)pppppppbVar20" identifier - (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "param_1[8] = param_1[8] - (int)pppppppbVar20;" (assignment_expression "param_1[8] = param_1[8] - (int)pppppppbVar20" (subscript_expression "param_1[8]" identifier [ number_literal ]) = (binary_expression "param_1[8] - (int)pppppppbVar20" (subscript_expression "param_1[8]" identifier [ number_literal ]) - (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (goto_statement "goto LAB_00491360;" goto statement_identifier ;) })) (expression_statement "unaff_s6 = (byte *******)param_1[7];" (assignment_expression "unaff_s6 = (byte *******)param_1[7]" identifier = (cast_expression "(byte *******)param_1[7]" ( (type_descriptor "byte *******" 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 "unaff_s5 = (byte *******)param_1[3];" (assignment_expression "unaff_s5 = (byte *******)param_1[3]" identifier = (cast_expression "(byte *******)param_1[3]" ( (type_descriptor "byte *******" 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 "pbVar16 = (byte *)0x0;" (assignment_expression "pbVar16 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pppppppbVar18 = unaff_s6;" (assignment_expression "pppppppbVar18 = unaff_s6" identifier = identifier) ;) (do_statement "do {\n        unaff_s4 = (byte *******)((int)(pbVar16 + (int)pppppppbVar18) / 2);\n        ppppppbVar6 = unaff_s5[(int)unaff_s4];\n        bVar1 = (int)pbVar16 < (int)unaff_s4;\n        pppppppbVar12 = unaff_s4;\n        if ((int)ppppppbVar6 <= (int)pppppppbVar20) {\n          pbVar16 = (byte *)((int)unaff_s4 + 1);\n          if ((int)pppppppbVar20 <= (int)ppppppbVar6) goto LAB_0049145c;\n          bVar1 = (int)pbVar16 < (int)pppppppbVar18;\n          pppppppbVar12 = pppppppbVar18;\n        }\n        pppppppbVar18 = pppppppbVar12;\n      } while (bVar1);" do (compound_statement "{\n        unaff_s4 = (byte *******)((int)(pbVar16 + (int)pppppppbVar18) / 2);\n        ppppppbVar6 = unaff_s5[(int)unaff_s4];\n        bVar1 = (int)pbVar16 < (int)unaff_s4;\n        pppppppbVar12 = unaff_s4;\n        if ((int)ppppppbVar6 <= (int)pppppppbVar20) {\n          pbVar16 = (byte *)((int)unaff_s4 + 1);\n          if ((int)pppppppbVar20 <= (int)ppppppbVar6) goto LAB_0049145c;\n          bVar1 = (int)pbVar16 < (int)pppppppbVar18;\n          pppppppbVar12 = pppppppbVar18;\n        }\n        pppppppbVar18 = pppppppbVar12;\n      }" { (expression_statement "unaff_s4 = (byte *******)((int)(pbVar16 + (int)pppppppbVar18) / 2);" (assignment_expression "unaff_s4 = (byte *******)((int)(pbVar16 + (int)pppppppbVar18) / 2)" identifier = (cast_expression "(byte *******)((int)(pbVar16 + (int)pppppppbVar18) / 2)" ( (type_descriptor "byte *******" 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)(pbVar16 + (int)pppppppbVar18) / 2)" ( (binary_expression "(int)(pbVar16 + (int)pppppppbVar18) / 2" (cast_expression "(int)(pbVar16 + (int)pppppppbVar18)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar16 + (int)pppppppbVar18)" ( (binary_expression "pbVar16 + (int)pppppppbVar18" identifier + (cast_expression "(int)pppppppbVar18" ( (type_descriptor "int" primitive_type) ) identifier)) ))) / number_literal) )))) ;) (expression_statement "ppppppbVar6 = unaff_s5[(int)unaff_s4];" (assignment_expression "ppppppbVar6 = unaff_s5[(int)unaff_s4]" identifier = (subscript_expression "unaff_s5[(int)unaff_s4]" identifier [ (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) ])) ;) (expression_statement "bVar1 = (int)pbVar16 < (int)unaff_s4;" (assignment_expression "bVar1 = (int)pbVar16 < (int)unaff_s4" identifier = (binary_expression "(int)pbVar16 < (int)unaff_s4" (cast_expression "(int)pbVar16" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pppppppbVar12 = unaff_s4;" (assignment_expression "pppppppbVar12 = unaff_s4" identifier = identifier) ;) (if_statement "if ((int)ppppppbVar6 <= (int)pppppppbVar20) {\n          pbVar16 = (byte *)((int)unaff_s4 + 1);\n          if ((int)pppppppbVar20 <= (int)ppppppbVar6) goto LAB_0049145c;\n          bVar1 = (int)pbVar16 < (int)pppppppbVar18;\n          pppppppbVar12 = pppppppbVar18;\n        }" if (parenthesized_expression "((int)ppppppbVar6 <= (int)pppppppbVar20)" ( (binary_expression "(int)ppppppbVar6 <= (int)pppppppbVar20" (cast_expression "(int)ppppppbVar6" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          pbVar16 = (byte *)((int)unaff_s4 + 1);\n          if ((int)pppppppbVar20 <= (int)ppppppbVar6) goto LAB_0049145c;\n          bVar1 = (int)pbVar16 < (int)pppppppbVar18;\n          pppppppbVar12 = pppppppbVar18;\n        }" { (expression_statement "pbVar16 = (byte *)((int)unaff_s4 + 1);" (assignment_expression "pbVar16 = (byte *)((int)unaff_s4 + 1)" identifier = (cast_expression "(byte *)((int)unaff_s4 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 1)" ( (binary_expression "(int)unaff_s4 + 1" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((int)pppppppbVar20 <= (int)ppppppbVar6) goto LAB_0049145c;" if (parenthesized_expression "((int)pppppppbVar20 <= (int)ppppppbVar6)" ( (binary_expression "(int)pppppppbVar20 <= (int)ppppppbVar6" (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)ppppppbVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0049145c;" goto statement_identifier ;)) (expression_statement "bVar1 = (int)pbVar16 < (int)pppppppbVar18;" (assignment_expression "bVar1 = (int)pbVar16 < (int)pppppppbVar18" identifier = (binary_expression "(int)pbVar16 < (int)pppppppbVar18" (cast_expression "(int)pbVar16" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pppppppbVar18" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pppppppbVar12 = pppppppbVar18;" (assignment_expression "pppppppbVar12 = pppppppbVar18" identifier = identifier) ;) })) (expression_statement "pppppppbVar18 = pppppppbVar12;" (assignment_expression "pppppppbVar18 = pppppppbVar12" identifier = identifier) ;) }) while (parenthesized_expression "(bVar1)" ( identifier )) ;) (if_statement "if ((int)ppppppbVar6 < (int)pppppppbVar20) {\n        unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n      }" if (parenthesized_expression "((int)ppppppbVar6 < (int)pppppppbVar20)" ( (binary_expression "(int)ppppppbVar6 < (int)pppppppbVar20" (cast_expression "(int)ppppppbVar6" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n      }" { (expression_statement "unaff_s4 = (byte *******)((int)unaff_s4 + 1);" (assignment_expression "unaff_s4 = (byte *******)((int)unaff_s4 + 1)" identifier = (cast_expression "(byte *******)((int)unaff_s4 + 1)" ( (type_descriptor "byte *******" 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_s4 + 1)" ( (binary_expression "(int)unaff_s4 + 1" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (labeled_statement "LAB_0049145c:\n      pppppppbVar18 = (byte *******)((int)unaff_s4 + -1);" statement_identifier : (expression_statement "pppppppbVar18 = (byte *******)((int)unaff_s4 + -1);" (assignment_expression "pppppppbVar18 = (byte *******)((int)unaff_s4 + -1)" identifier = (cast_expression "(byte *******)((int)unaff_s4 + -1)" ( (type_descriptor "byte *******" 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_s4 + -1)" ( (binary_expression "(int)unaff_s4 + -1" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) (expression_statement "iVar11 = FUN_0048efec(param_1);" (assignment_expression "iVar11 = FUN_0048efec(param_1)" identifier = (call_expression "FUN_0048efec(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "param_1[0xf] = iVar11;" (assignment_expression "param_1[0xf] = iVar11" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((((int)unaff_s6 <= (int)pppppppbVar20) || (pppppppbVar20 != unaff_s4)) ||\n         (param_3 = (byte ******)((int)pppppppbVar20 * 4),\n         (byte *******)unaff_s5[(int)unaff_s4] != pppppppbVar20)) {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        if ((0 < (int)unaff_s4) &&\n           ((byte *******)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pppppppbVar20)) {\n          pppppppbVar12 = unaff_s5 + (int)(unaff_s4 + 0x10000000);\n          do {\n            unaff_s4 = (byte *******)((int)unaff_s4 + -1);\n            if (unaff_s4 == (byte *******)0x0) break;\n            pppppppbVar19 = pppppppbVar12 + -2;\n            pppppppbVar12 = pppppppbVar12 + -1;\n          } while ((byte *******)*pppppppbVar19 == pppppppbVar20);\n        }\n        if ((int)unaff_s4 < (int)unaff_s6) {\n          piVar9 = (int *)(param_1[2] + (int)unaff_s4 * 4);\n          iVar11 = *piVar9;\n          while (iVar11 == -1) {\n            unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n            piVar9 = piVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            iVar11 = *piVar9;\n          }\nLAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;\n          ppppppbVar22 = (byte ******)((int)*unaff_s4 - (int)pppppppbVar20);\n          param_1[7] = (int)ppppppbVar22;\n          if (ppppppbVar22 == (byte ******)0x0) goto LAB_00491650;\n          if (0 < (int)ppppppbVar22) {\n            iVar11 = 0;\n            do {\n              *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n              iVar11 = iVar11 + 1;\n              ppppppbVar22 = (byte ******)param_1[7];\n            } while (iVar11 < (int)ppppppbVar22);\n          }\n          pppppppbVar18 = (byte *******)0xff;\n          (*(code *)PTR_memset_004bf260)(param_1[1]);\n          iVar11 = param_1[7];\n        }\n        else {\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          param_1[7] = 0;\nLAB_00491650:\n          iVar11 = param_1[7];\n        }\n        param_1[8] = iVar11;\n        goto LAB_00491360;\n      }" if (parenthesized_expression "((((int)unaff_s6 <= (int)pppppppbVar20) || (pppppppbVar20 != unaff_s4)) ||\n         (param_3 = (byte ******)((int)pppppppbVar20 * 4),\n         (byte *******)unaff_s5[(int)unaff_s4] != pppppppbVar20))" ( (binary_expression "(((int)unaff_s6 <= (int)pppppppbVar20) || (pppppppbVar20 != unaff_s4)) ||\n         (param_3 = (byte ******)((int)pppppppbVar20 * 4),\n         (byte *******)unaff_s5[(int)unaff_s4] != pppppppbVar20)" (parenthesized_expression "(((int)unaff_s6 <= (int)pppppppbVar20) || (pppppppbVar20 != unaff_s4))" ( (binary_expression "((int)unaff_s6 <= (int)pppppppbVar20) || (pppppppbVar20 != unaff_s4)" (parenthesized_expression "((int)unaff_s6 <= (int)pppppppbVar20)" ( (binary_expression "(int)unaff_s6 <= (int)pppppppbVar20" (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "(pppppppbVar20 != unaff_s4)" ( (binary_expression "pppppppbVar20 != unaff_s4" identifier != identifier) ))) )) || (parenthesized_expression "(param_3 = (byte ******)((int)pppppppbVar20 * 4),\n         (byte *******)unaff_s5[(int)unaff_s4] != pppppppbVar20)" ( (comma_expression "param_3 = (byte ******)((int)pppppppbVar20 * 4),\n         (byte *******)unaff_s5[(int)unaff_s4] != pppppppbVar20" (assignment_expression "param_3 = (byte ******)((int)pppppppbVar20 * 4)" identifier = (cast_expression "(byte ******)((int)pppppppbVar20 * 4)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)pppppppbVar20 * 4)" ( (binary_expression "(int)pppppppbVar20 * 4" (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) , (binary_expression "(byte *******)unaff_s5[(int)unaff_s4] != pppppppbVar20" (cast_expression "(byte *******)unaff_s5[(int)unaff_s4]" ( (type_descriptor "byte *******" 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_s5[(int)unaff_s4]" identifier [ (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) ])) != identifier)) ))) )) (compound_statement "{\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        if ((0 < (int)unaff_s4) &&\n           ((byte *******)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pppppppbVar20)) {\n          pppppppbVar12 = unaff_s5 + (int)(unaff_s4 + 0x10000000);\n          do {\n            unaff_s4 = (byte *******)((int)unaff_s4 + -1);\n            if (unaff_s4 == (byte *******)0x0) break;\n            pppppppbVar19 = pppppppbVar12 + -2;\n            pppppppbVar12 = pppppppbVar12 + -1;\n          } while ((byte *******)*pppppppbVar19 == pppppppbVar20);\n        }\n        if ((int)unaff_s4 < (int)unaff_s6) {\n          piVar9 = (int *)(param_1[2] + (int)unaff_s4 * 4);\n          iVar11 = *piVar9;\n          while (iVar11 == -1) {\n            unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n            piVar9 = piVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            iVar11 = *piVar9;\n          }\nLAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;\n          ppppppbVar22 = (byte ******)((int)*unaff_s4 - (int)pppppppbVar20);\n          param_1[7] = (int)ppppppbVar22;\n          if (ppppppbVar22 == (byte ******)0x0) goto LAB_00491650;\n          if (0 < (int)ppppppbVar22) {\n            iVar11 = 0;\n            do {\n              *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n              iVar11 = iVar11 + 1;\n              ppppppbVar22 = (byte ******)param_1[7];\n            } while (iVar11 < (int)ppppppbVar22);\n          }\n          pppppppbVar18 = (byte *******)0xff;\n          (*(code *)PTR_memset_004bf260)(param_1[1]);\n          iVar11 = param_1[7];\n        }\n        else {\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          param_1[7] = 0;\nLAB_00491650:\n          iVar11 = param_1[7];\n        }\n        param_1[8] = iVar11;\n        goto LAB_00491360;\n      }" { (expression_statement "param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));" (assignment_expression "param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2))" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (cast_expression "(int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)pppppppbVar20 + (param_1[0xb] - (int)param_2))" ( (binary_expression "(int)pppppppbVar20 + (param_1[0xb] - (int)param_2)" (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier) + (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 "param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));" (assignment_expression "param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2))" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = (cast_expression "(int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)pppppppbVar20 + (param_1[0xd] - (int)param_2))" ( (binary_expression "(int)pppppppbVar20 + (param_1[0xd] - (int)param_2)" (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier) + (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)) ))) )))) ;) (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) ;) (if_statement "if ((0 < (int)unaff_s4) &&\n           ((byte *******)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pppppppbVar20)) {\n          pppppppbVar12 = unaff_s5 + (int)(unaff_s4 + 0x10000000);\n          do {\n            unaff_s4 = (byte *******)((int)unaff_s4 + -1);\n            if (unaff_s4 == (byte *******)0x0) break;\n            pppppppbVar19 = pppppppbVar12 + -2;\n            pppppppbVar12 = pppppppbVar12 + -1;\n          } while ((byte *******)*pppppppbVar19 == pppppppbVar20);\n        }" if (parenthesized_expression "((0 < (int)unaff_s4) &&\n           ((byte *******)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pppppppbVar20))" ( (binary_expression "(0 < (int)unaff_s4) &&\n           ((byte *******)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pppppppbVar20)" (parenthesized_expression "(0 < (int)unaff_s4)" ( (binary_expression "0 < (int)unaff_s4" number_literal < (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "((byte *******)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pppppppbVar20)" ( (binary_expression "(byte *******)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pppppppbVar20" (cast_expression "(byte *******)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)]" ( (type_descriptor "byte *******" 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_s5[(int)((int)unaff_s4 + 0x3fffffff)]" identifier [ (cast_expression "(int)((int)unaff_s4 + 0x3fffffff)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)unaff_s4 + 0x3fffffff)" ( (binary_expression "(int)unaff_s4 + 0x3fffffff" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ])) == identifier) ))) )) (compound_statement "{\n          pppppppbVar12 = unaff_s5 + (int)(unaff_s4 + 0x10000000);\n          do {\n            unaff_s4 = (byte *******)((int)unaff_s4 + -1);\n            if (unaff_s4 == (byte *******)0x0) break;\n            pppppppbVar19 = pppppppbVar12 + -2;\n            pppppppbVar12 = pppppppbVar12 + -1;\n          } while ((byte *******)*pppppppbVar19 == pppppppbVar20);\n        }" { (expression_statement "pppppppbVar12 = unaff_s5 + (int)(unaff_s4 + 0x10000000);" (assignment_expression "pppppppbVar12 = unaff_s5 + (int)(unaff_s4 + 0x10000000)" identifier = (binary_expression "unaff_s5 + (int)(unaff_s4 + 0x10000000)" identifier + (cast_expression "(int)(unaff_s4 + 0x10000000)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(unaff_s4 + 0x10000000)" ( (binary_expression "unaff_s4 + 0x10000000" identifier + number_literal) ))))) ;) (do_statement "do {\n            unaff_s4 = (byte *******)((int)unaff_s4 + -1);\n            if (unaff_s4 == (byte *******)0x0) break;\n            pppppppbVar19 = pppppppbVar12 + -2;\n            pppppppbVar12 = pppppppbVar12 + -1;\n          } while ((byte *******)*pppppppbVar19 == pppppppbVar20);" do (compound_statement "{\n            unaff_s4 = (byte *******)((int)unaff_s4 + -1);\n            if (unaff_s4 == (byte *******)0x0) break;\n            pppppppbVar19 = pppppppbVar12 + -2;\n            pppppppbVar12 = pppppppbVar12 + -1;\n          }" { (expression_statement "unaff_s4 = (byte *******)((int)unaff_s4 + -1);" (assignment_expression "unaff_s4 = (byte *******)((int)unaff_s4 + -1)" identifier = (cast_expression "(byte *******)((int)unaff_s4 + -1)" ( (type_descriptor "byte *******" 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_s4 + -1)" ( (binary_expression "(int)unaff_s4 + -1" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (unaff_s4 == (byte *******)0x0) break;" if (parenthesized_expression "(unaff_s4 == (byte *******)0x0)" ( (binary_expression "unaff_s4 == (byte *******)0x0" identifier == (cast_expression "(byte *******)0x0" ( (type_descriptor "byte *******" 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 "pppppppbVar19 = pppppppbVar12 + -2;" (assignment_expression "pppppppbVar19 = pppppppbVar12 + -2" identifier = (binary_expression "pppppppbVar12 + -2" identifier + number_literal)) ;) (expression_statement "pppppppbVar12 = pppppppbVar12 + -1;" (assignment_expression "pppppppbVar12 = pppppppbVar12 + -1" identifier = (binary_expression "pppppppbVar12 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "((byte *******)*pppppppbVar19 == pppppppbVar20)" ( (binary_expression "(byte *******)*pppppppbVar19 == pppppppbVar20" (cast_expression "(byte *******)*pppppppbVar19" ( (type_descriptor "byte *******" 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 "*pppppppbVar19" * identifier)) == identifier) )) ;) })) (if_statement "if ((int)unaff_s4 < (int)unaff_s6) {\n          piVar9 = (int *)(param_1[2] + (int)unaff_s4 * 4);\n          iVar11 = *piVar9;\n          while (iVar11 == -1) {\n            unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n            piVar9 = piVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            iVar11 = *piVar9;\n          }\nLAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;\n          ppppppbVar22 = (byte ******)((int)*unaff_s4 - (int)pppppppbVar20);\n          param_1[7] = (int)ppppppbVar22;\n          if (ppppppbVar22 == (byte ******)0x0) goto LAB_00491650;\n          if (0 < (int)ppppppbVar22) {\n            iVar11 = 0;\n            do {\n              *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n              iVar11 = iVar11 + 1;\n              ppppppbVar22 = (byte ******)param_1[7];\n            } while (iVar11 < (int)ppppppbVar22);\n          }\n          pppppppbVar18 = (byte *******)0xff;\n          (*(code *)PTR_memset_004bf260)(param_1[1]);\n          iVar11 = param_1[7];\n        }\n        else {\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          param_1[7] = 0;\nLAB_00491650:\n          iVar11 = param_1[7];\n        }" if (parenthesized_expression "((int)unaff_s4 < (int)unaff_s6)" ( (binary_expression "(int)unaff_s4 < (int)unaff_s6" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          piVar9 = (int *)(param_1[2] + (int)unaff_s4 * 4);\n          iVar11 = *piVar9;\n          while (iVar11 == -1) {\n            unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n            piVar9 = piVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            iVar11 = *piVar9;\n          }\nLAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;\n          ppppppbVar22 = (byte ******)((int)*unaff_s4 - (int)pppppppbVar20);\n          param_1[7] = (int)ppppppbVar22;\n          if (ppppppbVar22 == (byte ******)0x0) goto LAB_00491650;\n          if (0 < (int)ppppppbVar22) {\n            iVar11 = 0;\n            do {\n              *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n              iVar11 = iVar11 + 1;\n              ppppppbVar22 = (byte ******)param_1[7];\n            } while (iVar11 < (int)ppppppbVar22);\n          }\n          pppppppbVar18 = (byte *******)0xff;\n          (*(code *)PTR_memset_004bf260)(param_1[1]);\n          iVar11 = param_1[7];\n        }" { (expression_statement "piVar9 = (int *)(param_1[2] + (int)unaff_s4 * 4);" (assignment_expression "piVar9 = (int *)(param_1[2] + (int)unaff_s4 * 4)" identifier = (cast_expression "(int *)(param_1[2] + (int)unaff_s4 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[2] + (int)unaff_s4 * 4)" ( (binary_expression "param_1[2] + (int)unaff_s4 * 4" (subscript_expression "param_1[2]" identifier [ number_literal ]) + (binary_expression "(int)unaff_s4 * 4" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (expression_statement "iVar11 = *piVar9;" (assignment_expression "iVar11 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (while_statement "while (iVar11 == -1) {\n            unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n            piVar9 = piVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            iVar11 = *piVar9;\n          }" while (parenthesized_expression "(iVar11 == -1)" ( (binary_expression "iVar11 == -1" identifier == number_literal) )) (compound_statement "{\n            unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n            piVar9 = piVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            iVar11 = *piVar9;\n          }" { (expression_statement "unaff_s4 = (byte *******)((int)unaff_s4 + 1);" (assignment_expression "unaff_s4 = (byte *******)((int)unaff_s4 + 1)" identifier = (cast_expression "(byte *******)((int)unaff_s4 + 1)" ( (type_descriptor "byte *******" 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_s4 + 1)" ( (binary_expression "(int)unaff_s4 + 1" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar9 = piVar9 + 1;" (assignment_expression "piVar9 = piVar9 + 1" identifier = (binary_expression "piVar9 + 1" identifier + number_literal)) ;) (if_statement "if (unaff_s6 == unaff_s4) goto LAB_0049164c;" if (parenthesized_expression "(unaff_s6 == unaff_s4)" ( (binary_expression "unaff_s6 == unaff_s4" identifier == identifier) )) (goto_statement "goto LAB_0049164c;" goto statement_identifier ;)) (expression_statement "iVar11 = *piVar9;" (assignment_expression "iVar11 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) })) (labeled_statement "LAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;" statement_identifier : (expression_statement "unaff_s4 = unaff_s5 + (int)unaff_s4;" (assignment_expression "unaff_s4 = unaff_s5 + (int)unaff_s4" identifier = (binary_expression "unaff_s5 + (int)unaff_s4" identifier + (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (expression_statement "ppppppbVar22 = (byte ******)((int)*unaff_s4 - (int)pppppppbVar20);" (assignment_expression "ppppppbVar22 = (byte ******)((int)*unaff_s4 - (int)pppppppbVar20)" identifier = (cast_expression "(byte ******)((int)*unaff_s4 - (int)pppppppbVar20)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)*unaff_s4 - (int)pppppppbVar20)" ( (binary_expression "(int)*unaff_s4 - (int)pppppppbVar20" (cast_expression "(int)*unaff_s4" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*unaff_s4" * identifier)) - (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "param_1[7] = (int)ppppppbVar22;" (assignment_expression "param_1[7] = (int)ppppppbVar22" (subscript_expression "param_1[7]" identifier [ number_literal ]) = (cast_expression "(int)ppppppbVar22" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (ppppppbVar22 == (byte ******)0x0) goto LAB_00491650;" if (parenthesized_expression "(ppppppbVar22 == (byte ******)0x0)" ( (binary_expression "ppppppbVar22 == (byte ******)0x0" identifier == (cast_expression "(byte ******)0x0" ( (type_descriptor "byte ******" 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_00491650;" goto statement_identifier ;)) (if_statement "if (0 < (int)ppppppbVar22) {\n            iVar11 = 0;\n            do {\n              *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n              iVar11 = iVar11 + 1;\n              ppppppbVar22 = (byte ******)param_1[7];\n            } while (iVar11 < (int)ppppppbVar22);\n          }" if (parenthesized_expression "(0 < (int)ppppppbVar22)" ( (binary_expression "0 < (int)ppppppbVar22" number_literal < (cast_expression "(int)ppppppbVar22" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            iVar11 = 0;\n            do {\n              *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n              iVar11 = iVar11 + 1;\n              ppppppbVar22 = (byte ******)param_1[7];\n            } while (iVar11 < (int)ppppppbVar22);\n          }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n              *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n              iVar11 = iVar11 + 1;\n              ppppppbVar22 = (byte ******)param_1[7];\n            } while (iVar11 < (int)ppppppbVar22);" do (compound_statement "{\n              *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n              iVar11 = iVar11 + 1;\n              ppppppbVar22 = (byte ******)param_1[7];\n            }" { (expression_statement "*(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;" (assignment_expression "*(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff" (pointer_expression "*(undefined4 *)(param_1[2] + iVar11 * 4)" * (cast_expression "(undefined4 *)(param_1[2] + iVar11 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[2] + iVar11 * 4)" ( (binary_expression "param_1[2] + iVar11 * 4" (subscript_expression "param_1[2]" identifier [ number_literal ]) + (binary_expression "iVar11 * 4" identifier * number_literal)) )))) = number_literal) ;) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (expression_statement "ppppppbVar22 = (byte ******)param_1[7];" (assignment_expression "ppppppbVar22 = (byte ******)param_1[7]" identifier = (cast_expression "(byte ******)param_1[7]" ( (type_descriptor "byte ******" type_identifier (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 ]))) ;) }) while (parenthesized_expression "(iVar11 < (int)ppppppbVar22)" ( (binary_expression "iVar11 < (int)ppppppbVar22" identifier < (cast_expression "(int)ppppppbVar22" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "pppppppbVar18 = (byte *******)0xff;" (assignment_expression "pppppppbVar18 = (byte *******)0xff" identifier = (cast_expression "(byte *******)0xff" ( (type_descriptor "byte *******" 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 "(*(code *)PTR_memset_004bf260)(param_1[1]);" (call_expression "(*(code *)PTR_memset_004bf260)(param_1[1])" (parenthesized_expression "(*(code *)PTR_memset_004bf260)" ( (pointer_expression "*(code *)PTR_memset_004bf260" * (cast_expression "(code *)PTR_memset_004bf260" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1[1])" ( (subscript_expression "param_1[1]" identifier [ number_literal ]) ))) ;) (expression_statement "iVar11 = param_1[7];" (assignment_expression "iVar11 = param_1[7]" identifier = (subscript_expression "param_1[7]" identifier [ number_literal ])) ;) }) (else_clause "else {\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          param_1[7] = 0;\nLAB_00491650:\n          iVar11 = param_1[7];\n        }" else (compound_statement "{\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          param_1[7] = 0;\nLAB_00491650:\n          iVar11 = param_1[7];\n        }" { (if_statement "if (unaff_s4 != unaff_s6) goto LAB_00491534;" if (parenthesized_expression "(unaff_s4 != unaff_s6)" ( (binary_expression "unaff_s4 != unaff_s6" identifier != identifier) )) (goto_statement "goto LAB_00491534;" goto statement_identifier ;)) (labeled_statement "LAB_0049164c:\n          param_1[7] = 0;" statement_identifier : (expression_statement "param_1[7] = 0;" (assignment_expression "param_1[7] = 0" (subscript_expression "param_1[7]" identifier [ number_literal ]) = number_literal) ;)) (labeled_statement "LAB_00491650:\n          iVar11 = param_1[7];" statement_identifier : (expression_statement "iVar11 = param_1[7];" (assignment_expression "iVar11 = param_1[7]" identifier = (subscript_expression "param_1[7]" identifier [ number_literal ])) ;)) }))) (expression_statement "param_1[8] = iVar11;" (assignment_expression "param_1[8] = iVar11" (subscript_expression "param_1[8]" identifier [ number_literal ]) = identifier) ;) (goto_statement "goto LAB_00491360;" goto statement_identifier ;) })) (expression_statement "(*(code *)PTR_memmove_004bf3a4)\n                (param_1[2],param_1[2] + (int)param_3,((int)unaff_s6 - (int)pppppppbVar20) * 4);" (call_expression "(*(code *)PTR_memmove_004bf3a4)\n                (param_1[2],param_1[2] + (int)param_3,((int)unaff_s6 - (int)pppppppbVar20) * 4)" (parenthesized_expression "(*(code *)PTR_memmove_004bf3a4)" ( (pointer_expression "*(code *)PTR_memmove_004bf3a4" * (cast_expression "(code *)PTR_memmove_004bf3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1[2],param_1[2] + (int)param_3,((int)unaff_s6 - (int)pppppppbVar20) * 4)" ( (subscript_expression "param_1[2]" identifier [ number_literal ]) , (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_s6 - (int)pppppppbVar20) * 4" (parenthesized_expression "((int)unaff_s6 - (int)pppppppbVar20)" ( (binary_expression "(int)unaff_s6 - (int)pppppppbVar20" (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )) * number_literal) ))) ;) (expression_statement "ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);" (assignment_expression "ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20)" identifier = (cast_expression "(byte ******)(param_1[7] - (int)pppppppbVar20)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(param_1[7] - (int)pppppppbVar20)" ( (binary_expression "param_1[7] - (int)pppppppbVar20" (subscript_expression "param_1[7]" identifier [ number_literal ]) - (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);" (assignment_expression "pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1])" identifier = (cast_expression "(byte *******)((int)pppppppbVar20 + param_1[1])" ( (type_descriptor "byte *******" 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)pppppppbVar20 + param_1[1])" ( (binary_expression "(int)pppppppbVar20 + param_1[1]" (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier) + (subscript_expression "param_1[1]" identifier [ number_literal ])) )))) ;) (expression_statement "(*(code *)PTR_memmove_004bf3a4)();" (call_expression "(*(code *)PTR_memmove_004bf3a4)()" (parenthesized_expression "(*(code *)PTR_memmove_004bf3a4)" ( (pointer_expression "*(code *)PTR_memmove_004bf3a4" * (cast_expression "(code *)PTR_memmove_004bf3a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar11 = param_1[7];" (assignment_expression "iVar11 = param_1[7]" identifier = (subscript_expression "param_1[7]" identifier [ number_literal ])) ;) (expression_statement "param_1[7] = iVar11 - (int)pppppppbVar20;" (assignment_expression "param_1[7] = iVar11 - (int)pppppppbVar20" (subscript_expression "param_1[7]" identifier [ number_literal ]) = (binary_expression "iVar11 - (int)pppppppbVar20" identifier - (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "param_1[8] = param_1[8] - (int)pppppppbVar20;" (assignment_expression "param_1[8] = param_1[8] - (int)pppppppbVar20" (subscript_expression "param_1[8]" identifier [ number_literal ]) = (binary_expression "param_1[8] - (int)pppppppbVar20" (subscript_expression "param_1[8]" identifier [ number_literal ]) - (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (iVar11 - (int)pppppppbVar20 < 1) goto LAB_00491360;" if (parenthesized_expression "(iVar11 - (int)pppppppbVar20 < 1)" ( (binary_expression "iVar11 - (int)pppppppbVar20 < 1" (binary_expression "iVar11 - (int)pppppppbVar20" identifier - (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier)) < number_literal) )) (goto_statement "goto LAB_00491360;" goto statement_identifier ;)) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n        *(int *)(param_1[3] + iVar11 * 4) = *(int *)(param_1[3] + (int)param_3) - (int)pppppppbVar20\n        ;\n        iVar11 = iVar11 + 1;\n        param_3 = param_3 + 1;\n      } while (iVar11 < param_1[7]);" do (compound_statement "{\n        *(int *)(param_1[3] + iVar11 * 4) = *(int *)(param_1[3] + (int)param_3) - (int)pppppppbVar20\n        ;\n        iVar11 = iVar11 + 1;\n        param_3 = param_3 + 1;\n      }" { (expression_statement "*(int *)(param_1[3] + iVar11 * 4) = *(int *)(param_1[3] + (int)param_3) - (int)pppppppbVar20\n        ;" (assignment_expression "*(int *)(param_1[3] + iVar11 * 4) = *(int *)(param_1[3] + (int)param_3) - (int)pppppppbVar20" (pointer_expression "*(int *)(param_1[3] + iVar11 * 4)" * (cast_expression "(int *)(param_1[3] + iVar11 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[3] + iVar11 * 4)" ( (binary_expression "param_1[3] + iVar11 * 4" (subscript_expression "param_1[3]" identifier [ number_literal ]) + (binary_expression "iVar11 * 4" identifier * number_literal)) )))) = (binary_expression "*(int *)(param_1[3] + (int)param_3) - (int)pppppppbVar20" (pointer_expression "*(int *)(param_1[3] + (int)param_3)" * (cast_expression "(int *)(param_1[3] + (int)param_3)" ( (type_descriptor "int *" primitive_type (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)) )))) - (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (expression_statement "param_3 = param_3 + 1;" (assignment_expression "param_3 = param_3 + 1" identifier = (binary_expression "param_3 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar11 < param_1[7])" ( (binary_expression "iVar11 < param_1[7]" identifier < (subscript_expression "param_1[7]" identifier [ number_literal ])) )) ;) (expression_statement "cVar2 = *(char *)((int)param_1 + 0x4b);" (assignment_expression "cVar2 = *(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      unaff_s6 = (byte *******)param_1[7];\n      if (*(char *)(param_1 + 0x13) != '\0') {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n      }\n      param_1[7] = 0;\n      if (param_1[0x14] < 2) {\n        pppppppbVar18 =\n             (byte *******)(uint)*(byte *)((int)pppppppbVar20 + param_1[6] + *param_1 + -1);\n        param_1[8] = 0;\n        if (param_1[0x10] != 0) {\n          pppppppbVar18 = (byte *******)(uint)*(byte *)((int)pppppppbVar18 + param_1[0x10]);\n        }\n        iVar11 = 1;\n        if ((*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f) & 1) == 0) {\n          iVar11 = 2;\n          if (pppppppbVar18 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        param_1[0xf] = iVar11;\n        goto LAB_00491360;\n      }\n      if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0049179c:\n        iVar11 = param_1[6];\nLAB_004917a0:\n        pppppppbVar12 = (byte *******)(iVar11 + param_1[8]);\n        if ((int)pppppppbVar12 < (int)param_2) {\n          unaff_s8 = param_1 + 4;\n          unaff_s7 = (byte *******)&local_40;\n          do {\n            unaff_s5 = pppppppbVar12;\n            iVar24 = param_1[0xb];\n            local_3c = param_1[4];\n            local_38 = param_1[5];\n            pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1);\n            iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8);\n            unaff_s4 = local_40;\n            if (0xfffffffc < iVar11 - 1U) {\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }\n            pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11);\n          } while ((int)pppppppbVar12 < (int)param_2);\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n          if (unaff_s4 != (byte *******)0xffffffff) goto LAB_00491834;\n        }\n        else {\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n        }\n        pppppppbVar18 = (byte *******)((int)unaff_s6 + -1);\n        iVar11 = FUN_0048efec(param_1,pppppppbVar18,param_3);\n        param_1[0xf] = iVar11;\n      }\n      else {\n        pppppppbVar12 = (byte *******)*param_1;\n        unaff_s4 = (byte *******)((int)pppppppbVar12 + param_1[6]);\n        pppppppbVar18 = (byte *******)((int)unaff_s4 + ((int)pppppppbVar20 - param_1[0x14]));\n        if (pppppppbVar18 <= pppppppbVar12) {\n          pppppppbVar18 = pppppppbVar12;\n        }\n        pppppppbVar12 = (byte *******)((int)unaff_s4 + (int)((int)pppppppbVar20 + -1));\n        unaff_s5 = pppppppbVar20;\n        if (pppppppbVar12 < pppppppbVar18) goto LAB_0049179c;\n        bVar3 = *(byte *)pppppppbVar12;\n        unaff_s7 = pppppppbVar12;\n        while ((bVar3 & 0xc0) == 0x80) {\n          pppppppbVar19 = (byte *******)((int)unaff_s7 + -1);\n          unaff_s7 = pppppppbVar12;\n          if (pppppppbVar19 < pppppppbVar18) goto LAB_0049179c;\n          unaff_s7 = pppppppbVar19;\n          bVar3 = *(byte *)pppppppbVar19;\n        }\n        iVar11 = param_1[0x10];\n        pbVar16 = (byte *)((int)unaff_s4 + (param_1[0xc] - (int)unaff_s7));\n        pppppppbVar18 = unaff_s7;\n        if (iVar11 != 0) {\n          pbVar17 = (byte *)0x6;\n          if ((int)pbVar16 < 7) {\n            pbVar17 = pbVar16;\n          }\n          if ((int)(pbVar17 + -1) < 0) {\n            pppppppbVar18 = appppppbStack_34;\n          }\n          else {\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }\n        }\n        local_3c = 0;\n        local_38 = 0;\n        uVar29 = (*(code *)PTR_mbrtowc_004bf2ec)(&local_40);\n        uVar30 = (int)((int)unaff_s4 + (int)pppppppbVar20) - (int)unaff_s7;\n        if ((uVar29 < uVar30) || (0xfffffffd < uVar29)) goto LAB_0049179c;\n        *(undefined1 *)(param_1 + 4) = 0;\n        *(undefined1 *)((int)param_1 + 0x11) = 0;\n        *(undefined1 *)((int)param_1 + 0x12) = 0;\n        *(undefined1 *)((int)param_1 + 0x13) = 0;\n        *(undefined1 *)(param_1 + 5) = 0;\n        *(undefined1 *)((int)param_1 + 0x15) = 0;\n        *(undefined1 *)((int)param_1 + 0x16) = 0;\n        *(undefined1 *)((int)param_1 + 0x17) = 0;\n        param_1[7] = uVar29 - uVar30;\n        unaff_s4 = local_40;\n        if (local_40 == (byte *******)0xffffffff) {\n          iVar11 = param_1[6];\n          goto LAB_004917a0;\n        }\nLAB_00491834:\n        if (*(char *)((int)param_1 + 0x4e) == '\0') {\nLAB_00491840:\n          iVar11 = 2;\n          if (unaff_s4 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        else {\n          iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          iVar11 = 1;\n          if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }\n        param_1[0xf] = iVar11;\n      }\nLAB_00491854:\n      ppppppbVar22 = (byte ******)param_1[7];\n      if (ppppppbVar22 == (byte ******)0x0) {\nLAB_00491860:\n        iVar11 = param_1[7];\n      }\n      else {\n        iVar11 = 0;\n        if (0 < (int)ppppppbVar22) {\n          do {\n            *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n            iVar11 = iVar11 + 1;\n            ppppppbVar22 = (byte ******)param_1[7];\n          } while (iVar11 < (int)ppppppbVar22);\n        }\n        pppppppbVar18 = (byte *******)0xff;\n        if (*(char *)((int)param_1 + 0x4b) == '\0') goto LAB_00491860;\n        (*(code *)PTR_memset_004bf260)(param_1[1]);\n        iVar11 = param_1[7];\n      }\n      param_1[8] = iVar11;\nLAB_00491360:\n      cVar2 = *(char *)((int)param_1 + 0x4b);\n    }" else (compound_statement "{\n      unaff_s6 = (byte *******)param_1[7];\n      if (*(char *)(param_1 + 0x13) != '\0') {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n      }\n      param_1[7] = 0;\n      if (param_1[0x14] < 2) {\n        pppppppbVar18 =\n             (byte *******)(uint)*(byte *)((int)pppppppbVar20 + param_1[6] + *param_1 + -1);\n        param_1[8] = 0;\n        if (param_1[0x10] != 0) {\n          pppppppbVar18 = (byte *******)(uint)*(byte *)((int)pppppppbVar18 + param_1[0x10]);\n        }\n        iVar11 = 1;\n        if ((*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f) & 1) == 0) {\n          iVar11 = 2;\n          if (pppppppbVar18 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        param_1[0xf] = iVar11;\n        goto LAB_00491360;\n      }\n      if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0049179c:\n        iVar11 = param_1[6];\nLAB_004917a0:\n        pppppppbVar12 = (byte *******)(iVar11 + param_1[8]);\n        if ((int)pppppppbVar12 < (int)param_2) {\n          unaff_s8 = param_1 + 4;\n          unaff_s7 = (byte *******)&local_40;\n          do {\n            unaff_s5 = pppppppbVar12;\n            iVar24 = param_1[0xb];\n            local_3c = param_1[4];\n            local_38 = param_1[5];\n            pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1);\n            iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8);\n            unaff_s4 = local_40;\n            if (0xfffffffc < iVar11 - 1U) {\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }\n            pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11);\n          } while ((int)pppppppbVar12 < (int)param_2);\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n          if (unaff_s4 != (byte *******)0xffffffff) goto LAB_00491834;\n        }\n        else {\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n        }\n        pppppppbVar18 = (byte *******)((int)unaff_s6 + -1);\n        iVar11 = FUN_0048efec(param_1,pppppppbVar18,param_3);\n        param_1[0xf] = iVar11;\n      }\n      else {\n        pppppppbVar12 = (byte *******)*param_1;\n        unaff_s4 = (byte *******)((int)pppppppbVar12 + param_1[6]);\n        pppppppbVar18 = (byte *******)((int)unaff_s4 + ((int)pppppppbVar20 - param_1[0x14]));\n        if (pppppppbVar18 <= pppppppbVar12) {\n          pppppppbVar18 = pppppppbVar12;\n        }\n        pppppppbVar12 = (byte *******)((int)unaff_s4 + (int)((int)pppppppbVar20 + -1));\n        unaff_s5 = pppppppbVar20;\n        if (pppppppbVar12 < pppppppbVar18) goto LAB_0049179c;\n        bVar3 = *(byte *)pppppppbVar12;\n        unaff_s7 = pppppppbVar12;\n        while ((bVar3 & 0xc0) == 0x80) {\n          pppppppbVar19 = (byte *******)((int)unaff_s7 + -1);\n          unaff_s7 = pppppppbVar12;\n          if (pppppppbVar19 < pppppppbVar18) goto LAB_0049179c;\n          unaff_s7 = pppppppbVar19;\n          bVar3 = *(byte *)pppppppbVar19;\n        }\n        iVar11 = param_1[0x10];\n        pbVar16 = (byte *)((int)unaff_s4 + (param_1[0xc] - (int)unaff_s7));\n        pppppppbVar18 = unaff_s7;\n        if (iVar11 != 0) {\n          pbVar17 = (byte *)0x6;\n          if ((int)pbVar16 < 7) {\n            pbVar17 = pbVar16;\n          }\n          if ((int)(pbVar17 + -1) < 0) {\n            pppppppbVar18 = appppppbStack_34;\n          }\n          else {\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }\n        }\n        local_3c = 0;\n        local_38 = 0;\n        uVar29 = (*(code *)PTR_mbrtowc_004bf2ec)(&local_40);\n        uVar30 = (int)((int)unaff_s4 + (int)pppppppbVar20) - (int)unaff_s7;\n        if ((uVar29 < uVar30) || (0xfffffffd < uVar29)) goto LAB_0049179c;\n        *(undefined1 *)(param_1 + 4) = 0;\n        *(undefined1 *)((int)param_1 + 0x11) = 0;\n        *(undefined1 *)((int)param_1 + 0x12) = 0;\n        *(undefined1 *)((int)param_1 + 0x13) = 0;\n        *(undefined1 *)(param_1 + 5) = 0;\n        *(undefined1 *)((int)param_1 + 0x15) = 0;\n        *(undefined1 *)((int)param_1 + 0x16) = 0;\n        *(undefined1 *)((int)param_1 + 0x17) = 0;\n        param_1[7] = uVar29 - uVar30;\n        unaff_s4 = local_40;\n        if (local_40 == (byte *******)0xffffffff) {\n          iVar11 = param_1[6];\n          goto LAB_004917a0;\n        }\nLAB_00491834:\n        if (*(char *)((int)param_1 + 0x4e) == '\0') {\nLAB_00491840:\n          iVar11 = 2;\n          if (unaff_s4 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        else {\n          iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          iVar11 = 1;\n          if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }\n        param_1[0xf] = iVar11;\n      }\nLAB_00491854:\n      ppppppbVar22 = (byte ******)param_1[7];\n      if (ppppppbVar22 == (byte ******)0x0) {\nLAB_00491860:\n        iVar11 = param_1[7];\n      }\n      else {\n        iVar11 = 0;\n        if (0 < (int)ppppppbVar22) {\n          do {\n            *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n            iVar11 = iVar11 + 1;\n            ppppppbVar22 = (byte ******)param_1[7];\n          } while (iVar11 < (int)ppppppbVar22);\n        }\n        pppppppbVar18 = (byte *******)0xff;\n        if (*(char *)((int)param_1 + 0x4b) == '\0') goto LAB_00491860;\n        (*(code *)PTR_memset_004bf260)(param_1[1]);\n        iVar11 = param_1[7];\n      }\n      param_1[8] = iVar11;\nLAB_00491360:\n      cVar2 = *(char *)((int)param_1 + 0x4b);\n    }" { (expression_statement "unaff_s6 = (byte *******)param_1[7];" (assignment_expression "unaff_s6 = (byte *******)param_1[7]" identifier = (cast_expression "(byte *******)param_1[7]" ( (type_descriptor "byte *******" 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 (*(char *)(param_1 + 0x13) != '\0') {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\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        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n      }" { (expression_statement "param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));" (assignment_expression "param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2))" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (cast_expression "(int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)pppppppbVar20 + (param_1[0xb] - (int)param_2))" ( (binary_expression "(int)pppppppbVar20 + (param_1[0xb] - (int)param_2)" (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier) + (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 "param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));" (assignment_expression "param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2))" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = (cast_expression "(int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)pppppppbVar20 + (param_1[0xd] - (int)param_2))" ( (binary_expression "(int)pppppppbVar20 + (param_1[0xd] - (int)param_2)" (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier) + (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)) ))) )))) ;) (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[7] = 0;" (assignment_expression "param_1[7] = 0" (subscript_expression "param_1[7]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (param_1[0x14] < 2) {\n        pppppppbVar18 =\n             (byte *******)(uint)*(byte *)((int)pppppppbVar20 + param_1[6] + *param_1 + -1);\n        param_1[8] = 0;\n        if (param_1[0x10] != 0) {\n          pppppppbVar18 = (byte *******)(uint)*(byte *)((int)pppppppbVar18 + param_1[0x10]);\n        }\n        iVar11 = 1;\n        if ((*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f) & 1) == 0) {\n          iVar11 = 2;\n          if (pppppppbVar18 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        param_1[0xf] = iVar11;\n        goto LAB_00491360;\n      }" if (parenthesized_expression "(param_1[0x14] < 2)" ( (binary_expression "param_1[0x14] < 2" (subscript_expression "param_1[0x14]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n        pppppppbVar18 =\n             (byte *******)(uint)*(byte *)((int)pppppppbVar20 + param_1[6] + *param_1 + -1);\n        param_1[8] = 0;\n        if (param_1[0x10] != 0) {\n          pppppppbVar18 = (byte *******)(uint)*(byte *)((int)pppppppbVar18 + param_1[0x10]);\n        }\n        iVar11 = 1;\n        if ((*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f) & 1) == 0) {\n          iVar11 = 2;\n          if (pppppppbVar18 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        param_1[0xf] = iVar11;\n        goto LAB_00491360;\n      }" { (expression_statement "pppppppbVar18 =\n             (byte *******)(uint)*(byte *)((int)pppppppbVar20 + param_1[6] + *param_1 + -1);" (assignment_expression "pppppppbVar18 =\n             (byte *******)(uint)*(byte *)((int)pppppppbVar20 + param_1[6] + *param_1 + -1)" identifier = (binary_expression "(byte *******)(uint)*(byte *)((int)pppppppbVar20 + param_1[6] + *param_1 + -1)" (cast_expression "(byte *******)(uint)" ( (type_descriptor "byte *******" 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)" ( identifier ))) * (cast_expression "(byte *)((int)pppppppbVar20 + param_1[6] + *param_1 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppppbVar20 + param_1[6] + *param_1 + -1)" ( (binary_expression "(int)pppppppbVar20 + param_1[6] + *param_1 + -1" (binary_expression "(int)pppppppbVar20 + param_1[6] + *param_1" (binary_expression "(int)pppppppbVar20 + param_1[6]" (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier) + (subscript_expression "param_1[6]" identifier [ number_literal ])) + (pointer_expression "*param_1" * 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          pppppppbVar18 = (byte *******)(uint)*(byte *)((int)pppppppbVar18 + param_1[0x10]);\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          pppppppbVar18 = (byte *******)(uint)*(byte *)((int)pppppppbVar18 + param_1[0x10]);\n        }" { (expression_statement "pppppppbVar18 = (byte *******)(uint)*(byte *)((int)pppppppbVar18 + param_1[0x10]);" (assignment_expression "pppppppbVar18 = (byte *******)(uint)*(byte *)((int)pppppppbVar18 + param_1[0x10])" identifier = (binary_expression "(byte *******)(uint)*(byte *)((int)pppppppbVar18 + param_1[0x10])" (cast_expression "(byte *******)(uint)" ( (type_descriptor "byte *******" 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)" ( identifier ))) * (cast_expression "(byte *)((int)pppppppbVar18 + param_1[0x10])" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppppbVar18 + param_1[0x10])" ( (binary_expression "(int)pppppppbVar18 + param_1[0x10]" (cast_expression "(int)pppppppbVar18" ( (type_descriptor "int" primitive_type) ) identifier) + (subscript_expression "param_1[0x10]" identifier [ number_literal ])) ))))) ;) })) (expression_statement "iVar11 = 1;" (assignment_expression "iVar11 = 1" identifier = number_literal) ;) (if_statement "if ((*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f) & 1) == 0) {\n          iVar11 = 2;\n          if (pppppppbVar18 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }" if (parenthesized_expression "((*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f) & 1) == 0)" ( (binary_expression "(*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f) & 1) == 0" (parenthesized_expression "(*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f) & 1)" ( (binary_expression "*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f) & 1" (binary_expression "*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f)" (pointer_expression "*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4)" * (cast_expression "(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4)" ( (binary_expression "param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4" (subscript_expression "param_1[0x11]" identifier [ number_literal ]) + (binary_expression "((int)pppppppbVar18 >> 5) * 4" (parenthesized_expression "((int)pppppppbVar18 >> 5)" ( (binary_expression "(int)pppppppbVar18 >> 5" (cast_expression "(int)pppppppbVar18" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) * number_literal)) )))) >> (parenthesized_expression "((uint)pppppppbVar18 & 0x1f)" ( (binary_expression "(uint)pppppppbVar18 & 0x1f" (cast_expression "(uint)pppppppbVar18" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) & number_literal) )) == number_literal) )) (compound_statement "{\n          iVar11 = 2;\n          if (pppppppbVar18 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }" { (expression_statement "iVar11 = 2;" (assignment_expression "iVar11 = 2" identifier = number_literal) ;) (if_statement "if (pppppppbVar18 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }" if (parenthesized_expression "(pppppppbVar18 == (byte *******)&DAT_0000000a)" ( (binary_expression "pppppppbVar18 == (byte *******)&DAT_0000000a" identifier == (cast_expression "(byte *******)&DAT_0000000a" ( (type_descriptor "byte *******" 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 "&DAT_0000000a" & identifier))) )) (compound_statement "{\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }" { (if_statement "if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 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              iVar11 = 0;\n            }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) })) }) (else_clause "else {\n            iVar11 = 0;\n          }" else (compound_statement "{\n            iVar11 = 0;\n          }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) }))) })) (expression_statement "param_1[0xf] = iVar11;" (assignment_expression "param_1[0xf] = iVar11" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = identifier) ;) (goto_statement "goto LAB_00491360;" goto statement_identifier ;) })) (if_statement "if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0049179c:\n        iVar11 = param_1[6];\nLAB_004917a0:\n        pppppppbVar12 = (byte *******)(iVar11 + param_1[8]);\n        if ((int)pppppppbVar12 < (int)param_2) {\n          unaff_s8 = param_1 + 4;\n          unaff_s7 = (byte *******)&local_40;\n          do {\n            unaff_s5 = pppppppbVar12;\n            iVar24 = param_1[0xb];\n            local_3c = param_1[4];\n            local_38 = param_1[5];\n            pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1);\n            iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8);\n            unaff_s4 = local_40;\n            if (0xfffffffc < iVar11 - 1U) {\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }\n            pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11);\n          } while ((int)pppppppbVar12 < (int)param_2);\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n          if (unaff_s4 != (byte *******)0xffffffff) goto LAB_00491834;\n        }\n        else {\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n        }\n        pppppppbVar18 = (byte *******)((int)unaff_s6 + -1);\n        iVar11 = FUN_0048efec(param_1,pppppppbVar18,param_3);\n        param_1[0xf] = iVar11;\n      }\n      else {\n        pppppppbVar12 = (byte *******)*param_1;\n        unaff_s4 = (byte *******)((int)pppppppbVar12 + param_1[6]);\n        pppppppbVar18 = (byte *******)((int)unaff_s4 + ((int)pppppppbVar20 - param_1[0x14]));\n        if (pppppppbVar18 <= pppppppbVar12) {\n          pppppppbVar18 = pppppppbVar12;\n        }\n        pppppppbVar12 = (byte *******)((int)unaff_s4 + (int)((int)pppppppbVar20 + -1));\n        unaff_s5 = pppppppbVar20;\n        if (pppppppbVar12 < pppppppbVar18) goto LAB_0049179c;\n        bVar3 = *(byte *)pppppppbVar12;\n        unaff_s7 = pppppppbVar12;\n        while ((bVar3 & 0xc0) == 0x80) {\n          pppppppbVar19 = (byte *******)((int)unaff_s7 + -1);\n          unaff_s7 = pppppppbVar12;\n          if (pppppppbVar19 < pppppppbVar18) goto LAB_0049179c;\n          unaff_s7 = pppppppbVar19;\n          bVar3 = *(byte *)pppppppbVar19;\n        }\n        iVar11 = param_1[0x10];\n        pbVar16 = (byte *)((int)unaff_s4 + (param_1[0xc] - (int)unaff_s7));\n        pppppppbVar18 = unaff_s7;\n        if (iVar11 != 0) {\n          pbVar17 = (byte *)0x6;\n          if ((int)pbVar16 < 7) {\n            pbVar17 = pbVar16;\n          }\n          if ((int)(pbVar17 + -1) < 0) {\n            pppppppbVar18 = appppppbStack_34;\n          }\n          else {\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }\n        }\n        local_3c = 0;\n        local_38 = 0;\n        uVar29 = (*(code *)PTR_mbrtowc_004bf2ec)(&local_40);\n        uVar30 = (int)((int)unaff_s4 + (int)pppppppbVar20) - (int)unaff_s7;\n        if ((uVar29 < uVar30) || (0xfffffffd < uVar29)) goto LAB_0049179c;\n        *(undefined1 *)(param_1 + 4) = 0;\n        *(undefined1 *)((int)param_1 + 0x11) = 0;\n        *(undefined1 *)((int)param_1 + 0x12) = 0;\n        *(undefined1 *)((int)param_1 + 0x13) = 0;\n        *(undefined1 *)(param_1 + 5) = 0;\n        *(undefined1 *)((int)param_1 + 0x15) = 0;\n        *(undefined1 *)((int)param_1 + 0x16) = 0;\n        *(undefined1 *)((int)param_1 + 0x17) = 0;\n        param_1[7] = uVar29 - uVar30;\n        unaff_s4 = local_40;\n        if (local_40 == (byte *******)0xffffffff) {\n          iVar11 = param_1[6];\n          goto LAB_004917a0;\n        }\nLAB_00491834:\n        if (*(char *)((int)param_1 + 0x4e) == '\0') {\nLAB_00491840:\n          iVar11 = 2;\n          if (unaff_s4 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        else {\n          iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          iVar11 = 1;\n          if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }\n        param_1[0xf] = iVar11;\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_0049179c:\n        iVar11 = param_1[6];\nLAB_004917a0:\n        pppppppbVar12 = (byte *******)(iVar11 + param_1[8]);\n        if ((int)pppppppbVar12 < (int)param_2) {\n          unaff_s8 = param_1 + 4;\n          unaff_s7 = (byte *******)&local_40;\n          do {\n            unaff_s5 = pppppppbVar12;\n            iVar24 = param_1[0xb];\n            local_3c = param_1[4];\n            local_38 = param_1[5];\n            pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1);\n            iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8);\n            unaff_s4 = local_40;\n            if (0xfffffffc < iVar11 - 1U) {\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }\n            pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11);\n          } while ((int)pppppppbVar12 < (int)param_2);\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n          if (unaff_s4 != (byte *******)0xffffffff) goto LAB_00491834;\n        }\n        else {\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n        }\n        pppppppbVar18 = (byte *******)((int)unaff_s6 + -1);\n        iVar11 = FUN_0048efec(param_1,pppppppbVar18,param_3);\n        param_1[0xf] = iVar11;\n      }" { (labeled_statement "LAB_0049179c:\n        iVar11 = param_1[6];" statement_identifier : (expression_statement "iVar11 = param_1[6];" (assignment_expression "iVar11 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;)) (labeled_statement "LAB_004917a0:\n        pppppppbVar12 = (byte *******)(iVar11 + param_1[8]);" statement_identifier : (expression_statement "pppppppbVar12 = (byte *******)(iVar11 + param_1[8]);" (assignment_expression "pppppppbVar12 = (byte *******)(iVar11 + param_1[8])" identifier = (cast_expression "(byte *******)(iVar11 + param_1[8])" ( (type_descriptor "byte *******" 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 "(iVar11 + param_1[8])" ( (binary_expression "iVar11 + param_1[8]" identifier + (subscript_expression "param_1[8]" identifier [ number_literal ])) )))) ;)) (if_statement "if ((int)pppppppbVar12 < (int)param_2) {\n          unaff_s8 = param_1 + 4;\n          unaff_s7 = (byte *******)&local_40;\n          do {\n            unaff_s5 = pppppppbVar12;\n            iVar24 = param_1[0xb];\n            local_3c = param_1[4];\n            local_38 = param_1[5];\n            pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1);\n            iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8);\n            unaff_s4 = local_40;\n            if (0xfffffffc < iVar11 - 1U) {\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }\n            pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11);\n          } while ((int)pppppppbVar12 < (int)param_2);\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n          if (unaff_s4 != (byte *******)0xffffffff) goto LAB_00491834;\n        }\n        else {\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n        }" if (parenthesized_expression "((int)pppppppbVar12 < (int)param_2)" ( (binary_expression "(int)pppppppbVar12 < (int)param_2" (cast_expression "(int)pppppppbVar12" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          unaff_s8 = param_1 + 4;\n          unaff_s7 = (byte *******)&local_40;\n          do {\n            unaff_s5 = pppppppbVar12;\n            iVar24 = param_1[0xb];\n            local_3c = param_1[4];\n            local_38 = param_1[5];\n            pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1);\n            iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8);\n            unaff_s4 = local_40;\n            if (0xfffffffc < iVar11 - 1U) {\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }\n            pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11);\n          } while ((int)pppppppbVar12 < (int)param_2);\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n          if (unaff_s4 != (byte *******)0xffffffff) goto LAB_00491834;\n        }" { (expression_statement "unaff_s8 = param_1 + 4;" (assignment_expression "unaff_s8 = param_1 + 4" identifier = (binary_expression "param_1 + 4" identifier + number_literal)) ;) (expression_statement "unaff_s7 = (byte *******)&local_40;" (assignment_expression "unaff_s7 = (byte *******)&local_40" identifier = (cast_expression "(byte *******)&local_40" ( (type_descriptor "byte *******" 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            unaff_s5 = pppppppbVar12;\n            iVar24 = param_1[0xb];\n            local_3c = param_1[4];\n            local_38 = param_1[5];\n            pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1);\n            iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8);\n            unaff_s4 = local_40;\n            if (0xfffffffc < iVar11 - 1U) {\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }\n            pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11);\n          } while ((int)pppppppbVar12 < (int)param_2);" do (compound_statement "{\n            unaff_s5 = pppppppbVar12;\n            iVar24 = param_1[0xb];\n            local_3c = param_1[4];\n            local_38 = param_1[5];\n            pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1);\n            iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8);\n            unaff_s4 = local_40;\n            if (0xfffffffc < iVar11 - 1U) {\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }\n            pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11);\n          }" { (expression_statement "unaff_s5 = pppppppbVar12;" (assignment_expression "unaff_s5 = pppppppbVar12" identifier = identifier) ;) (expression_statement "iVar24 = param_1[0xb];" (assignment_expression "iVar24 = param_1[0xb]" identifier = (subscript_expression "param_1[0xb]" identifier [ number_literal ])) ;) (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 "pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1);" (assignment_expression "pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1)" identifier = (cast_expression "(byte *******)((int)unaff_s5 + *param_1)" ( (type_descriptor "byte *******" 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_s5 + *param_1)" ( (binary_expression "(int)unaff_s5 + *param_1" (cast_expression "(int)unaff_s5" ( (type_descriptor "int" primitive_type) ) identifier) + (pointer_expression "*param_1" * identifier)) )))) ;) (expression_statement "iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8);" (assignment_expression "iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8)" identifier = (call_expression "(*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8)" (parenthesized_expression "(*(code *)PTR_mbrtowc_004bf2ec)" ( (pointer_expression "*(code *)PTR_mbrtowc_004bf2ec" * (cast_expression "(code *)PTR_mbrtowc_004bf2ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8)" ( identifier , identifier , (binary_expression "iVar24 - (int)unaff_s5" identifier - (cast_expression "(int)unaff_s5" ( (type_descriptor "int" primitive_type) ) identifier)) , identifier )))) ;) (expression_statement "unaff_s4 = local_40;" (assignment_expression "unaff_s4 = local_40" identifier = identifier) ;) (if_statement "if (0xfffffffc < iVar11 - 1U) {\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }" if (parenthesized_expression "(0xfffffffc < iVar11 - 1U)" ( (binary_expression "0xfffffffc < iVar11 - 1U" number_literal < (binary_expression "iVar11 - 1U" identifier - number_literal)) )) (compound_statement "{\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }" { (if_statement "if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                unaff_s4 = (byte *******)0x0;\n              }" { (expression_statement "unaff_s4 = (byte *******)0x0;" (assignment_expression "unaff_s4 = (byte *******)0x0" identifier = (cast_expression "(byte *******)0x0" ( (type_descriptor "byte *******" 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 if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }" else (if_statement "if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }" if (parenthesized_expression "(iVar24 - (int)unaff_s5 == 0)" ( (binary_expression "iVar24 - (int)unaff_s5 == 0" (binary_expression "iVar24 - (int)unaff_s5" identifier - (cast_expression "(int)unaff_s5" ( (type_descriptor "int" primitive_type) ) identifier)) == number_literal) )) (compound_statement "{\n                unaff_s4 = (byte *******)0x0;\n              }" { (expression_statement "unaff_s4 = (byte *******)0x0;" (assignment_expression "unaff_s4 = (byte *******)0x0" identifier = (cast_expression "(byte *******)0x0" ( (type_descriptor "byte *******" 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_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }" else (compound_statement "{\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }" { (expression_statement "unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);" (assignment_expression "unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1)" identifier = (binary_expression "(byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1)" (cast_expression "(byte *******)(uint)" ( (type_descriptor "byte *******" 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)" ( identifier ))) * (cast_expression "(byte *)((int)unaff_s5 + *param_1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s5 + *param_1)" ( (binary_expression "(int)unaff_s5 + *param_1" (cast_expression "(int)unaff_s5" ( (type_descriptor "int" primitive_type) ) identifier) + (pointer_expression "*param_1" * identifier)) ))))) ;) }))))) (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 "iVar11 = 1;" (assignment_expression "iVar11 = 1" identifier = number_literal) ;) })) (expression_statement "pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11);" (assignment_expression "pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11)" identifier = (cast_expression "(byte *******)((int)unaff_s5 + iVar11)" ( (type_descriptor "byte *******" 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_s5 + iVar11)" ( (binary_expression "(int)unaff_s5 + iVar11" (cast_expression "(int)unaff_s5" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) }) while (parenthesized_expression "((int)pppppppbVar12 < (int)param_2)" ( (binary_expression "(int)pppppppbVar12 < (int)param_2" (cast_expression "(int)pppppppbVar12" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (expression_statement "param_1[7] = (int)pppppppbVar12 - (int)param_2;" (assignment_expression "param_1[7] = (int)pppppppbVar12 - (int)param_2" (subscript_expression "param_1[7]" identifier [ number_literal ]) = (binary_expression "(int)pppppppbVar12 - (int)param_2" (cast_expression "(int)pppppppbVar12" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (unaff_s4 != (byte *******)0xffffffff) goto LAB_00491834;" if (parenthesized_expression "(unaff_s4 != (byte *******)0xffffffff)" ( (binary_expression "unaff_s4 != (byte *******)0xffffffff" identifier != (cast_expression "(byte *******)0xffffffff" ( (type_descriptor "byte *******" 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_00491834;" goto statement_identifier ;)) }) (else_clause "else {\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n        }" else (compound_statement "{\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n        }" { (expression_statement "param_1[7] = (int)pppppppbVar12 - (int)param_2;" (assignment_expression "param_1[7] = (int)pppppppbVar12 - (int)param_2" (subscript_expression "param_1[7]" identifier [ number_literal ]) = (binary_expression "(int)pppppppbVar12 - (int)param_2" (cast_expression "(int)pppppppbVar12" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }))) (expression_statement "pppppppbVar18 = (byte *******)((int)unaff_s6 + -1);" (assignment_expression "pppppppbVar18 = (byte *******)((int)unaff_s6 + -1)" identifier = (cast_expression "(byte *******)((int)unaff_s6 + -1)" ( (type_descriptor "byte *******" 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_s6 + -1)" ( (binary_expression "(int)unaff_s6 + -1" (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "iVar11 = FUN_0048efec(param_1,pppppppbVar18,param_3);" (assignment_expression "iVar11 = FUN_0048efec(param_1,pppppppbVar18,param_3)" identifier = (call_expression "FUN_0048efec(param_1,pppppppbVar18,param_3)" identifier (argument_list "(param_1,pppppppbVar18,param_3)" ( identifier , identifier , identifier )))) ;) (expression_statement "param_1[0xf] = iVar11;" (assignment_expression "param_1[0xf] = iVar11" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n        pppppppbVar12 = (byte *******)*param_1;\n        unaff_s4 = (byte *******)((int)pppppppbVar12 + param_1[6]);\n        pppppppbVar18 = (byte *******)((int)unaff_s4 + ((int)pppppppbVar20 - param_1[0x14]));\n        if (pppppppbVar18 <= pppppppbVar12) {\n          pppppppbVar18 = pppppppbVar12;\n        }\n        pppppppbVar12 = (byte *******)((int)unaff_s4 + (int)((int)pppppppbVar20 + -1));\n        unaff_s5 = pppppppbVar20;\n        if (pppppppbVar12 < pppppppbVar18) goto LAB_0049179c;\n        bVar3 = *(byte *)pppppppbVar12;\n        unaff_s7 = pppppppbVar12;\n        while ((bVar3 & 0xc0) == 0x80) {\n          pppppppbVar19 = (byte *******)((int)unaff_s7 + -1);\n          unaff_s7 = pppppppbVar12;\n          if (pppppppbVar19 < pppppppbVar18) goto LAB_0049179c;\n          unaff_s7 = pppppppbVar19;\n          bVar3 = *(byte *)pppppppbVar19;\n        }\n        iVar11 = param_1[0x10];\n        pbVar16 = (byte *)((int)unaff_s4 + (param_1[0xc] - (int)unaff_s7));\n        pppppppbVar18 = unaff_s7;\n        if (iVar11 != 0) {\n          pbVar17 = (byte *)0x6;\n          if ((int)pbVar16 < 7) {\n            pbVar17 = pbVar16;\n          }\n          if ((int)(pbVar17 + -1) < 0) {\n            pppppppbVar18 = appppppbStack_34;\n          }\n          else {\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }\n        }\n        local_3c = 0;\n        local_38 = 0;\n        uVar29 = (*(code *)PTR_mbrtowc_004bf2ec)(&local_40);\n        uVar30 = (int)((int)unaff_s4 + (int)pppppppbVar20) - (int)unaff_s7;\n        if ((uVar29 < uVar30) || (0xfffffffd < uVar29)) goto LAB_0049179c;\n        *(undefined1 *)(param_1 + 4) = 0;\n        *(undefined1 *)((int)param_1 + 0x11) = 0;\n        *(undefined1 *)((int)param_1 + 0x12) = 0;\n        *(undefined1 *)((int)param_1 + 0x13) = 0;\n        *(undefined1 *)(param_1 + 5) = 0;\n        *(undefined1 *)((int)param_1 + 0x15) = 0;\n        *(undefined1 *)((int)param_1 + 0x16) = 0;\n        *(undefined1 *)((int)param_1 + 0x17) = 0;\n        param_1[7] = uVar29 - uVar30;\n        unaff_s4 = local_40;\n        if (local_40 == (byte *******)0xffffffff) {\n          iVar11 = param_1[6];\n          goto LAB_004917a0;\n        }\nLAB_00491834:\n        if (*(char *)((int)param_1 + 0x4e) == '\0') {\nLAB_00491840:\n          iVar11 = 2;\n          if (unaff_s4 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        else {\n          iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          iVar11 = 1;\n          if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }\n        param_1[0xf] = iVar11;\n      }" else (compound_statement "{\n        pppppppbVar12 = (byte *******)*param_1;\n        unaff_s4 = (byte *******)((int)pppppppbVar12 + param_1[6]);\n        pppppppbVar18 = (byte *******)((int)unaff_s4 + ((int)pppppppbVar20 - param_1[0x14]));\n        if (pppppppbVar18 <= pppppppbVar12) {\n          pppppppbVar18 = pppppppbVar12;\n        }\n        pppppppbVar12 = (byte *******)((int)unaff_s4 + (int)((int)pppppppbVar20 + -1));\n        unaff_s5 = pppppppbVar20;\n        if (pppppppbVar12 < pppppppbVar18) goto LAB_0049179c;\n        bVar3 = *(byte *)pppppppbVar12;\n        unaff_s7 = pppppppbVar12;\n        while ((bVar3 & 0xc0) == 0x80) {\n          pppppppbVar19 = (byte *******)((int)unaff_s7 + -1);\n          unaff_s7 = pppppppbVar12;\n          if (pppppppbVar19 < pppppppbVar18) goto LAB_0049179c;\n          unaff_s7 = pppppppbVar19;\n          bVar3 = *(byte *)pppppppbVar19;\n        }\n        iVar11 = param_1[0x10];\n        pbVar16 = (byte *)((int)unaff_s4 + (param_1[0xc] - (int)unaff_s7));\n        pppppppbVar18 = unaff_s7;\n        if (iVar11 != 0) {\n          pbVar17 = (byte *)0x6;\n          if ((int)pbVar16 < 7) {\n            pbVar17 = pbVar16;\n          }\n          if ((int)(pbVar17 + -1) < 0) {\n            pppppppbVar18 = appppppbStack_34;\n          }\n          else {\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }\n        }\n        local_3c = 0;\n        local_38 = 0;\n        uVar29 = (*(code *)PTR_mbrtowc_004bf2ec)(&local_40);\n        uVar30 = (int)((int)unaff_s4 + (int)pppppppbVar20) - (int)unaff_s7;\n        if ((uVar29 < uVar30) || (0xfffffffd < uVar29)) goto LAB_0049179c;\n        *(undefined1 *)(param_1 + 4) = 0;\n        *(undefined1 *)((int)param_1 + 0x11) = 0;\n        *(undefined1 *)((int)param_1 + 0x12) = 0;\n        *(undefined1 *)((int)param_1 + 0x13) = 0;\n        *(undefined1 *)(param_1 + 5) = 0;\n        *(undefined1 *)((int)param_1 + 0x15) = 0;\n        *(undefined1 *)((int)param_1 + 0x16) = 0;\n        *(undefined1 *)((int)param_1 + 0x17) = 0;\n        param_1[7] = uVar29 - uVar30;\n        unaff_s4 = local_40;\n        if (local_40 == (byte *******)0xffffffff) {\n          iVar11 = param_1[6];\n          goto LAB_004917a0;\n        }\nLAB_00491834:\n        if (*(char *)((int)param_1 + 0x4e) == '\0') {\nLAB_00491840:\n          iVar11 = 2;\n          if (unaff_s4 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        else {\n          iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          iVar11 = 1;\n          if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }\n        param_1[0xf] = iVar11;\n      }" { (expression_statement "pppppppbVar12 = (byte *******)*param_1;" (assignment_expression "pppppppbVar12 = (byte *******)*param_1" identifier = (cast_expression "(byte *******)*param_1" ( (type_descriptor "byte *******" 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_s4 = (byte *******)((int)pppppppbVar12 + param_1[6]);" (assignment_expression "unaff_s4 = (byte *******)((int)pppppppbVar12 + param_1[6])" identifier = (cast_expression "(byte *******)((int)pppppppbVar12 + param_1[6])" ( (type_descriptor "byte *******" 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)pppppppbVar12 + param_1[6])" ( (binary_expression "(int)pppppppbVar12 + param_1[6]" (cast_expression "(int)pppppppbVar12" ( (type_descriptor "int" primitive_type) ) identifier) + (subscript_expression "param_1[6]" identifier [ number_literal ])) )))) ;) (expression_statement "pppppppbVar18 = (byte *******)((int)unaff_s4 + ((int)pppppppbVar20 - param_1[0x14]));" (assignment_expression "pppppppbVar18 = (byte *******)((int)unaff_s4 + ((int)pppppppbVar20 - param_1[0x14]))" identifier = (cast_expression "(byte *******)((int)unaff_s4 + ((int)pppppppbVar20 - param_1[0x14]))" ( (type_descriptor "byte *******" 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_s4 + ((int)pppppppbVar20 - param_1[0x14]))" ( (binary_expression "(int)unaff_s4 + ((int)pppppppbVar20 - param_1[0x14])" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((int)pppppppbVar20 - param_1[0x14])" ( (binary_expression "(int)pppppppbVar20 - param_1[0x14]" (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier) - (subscript_expression "param_1[0x14]" identifier [ number_literal ])) ))) )))) ;) (if_statement "if (pppppppbVar18 <= pppppppbVar12) {\n          pppppppbVar18 = pppppppbVar12;\n        }" if (parenthesized_expression "(pppppppbVar18 <= pppppppbVar12)" ( (binary_expression "pppppppbVar18 <= pppppppbVar12" identifier <= identifier) )) (compound_statement "{\n          pppppppbVar18 = pppppppbVar12;\n        }" { (expression_statement "pppppppbVar18 = pppppppbVar12;" (assignment_expression "pppppppbVar18 = pppppppbVar12" identifier = identifier) ;) })) (expression_statement "pppppppbVar12 = (byte *******)((int)unaff_s4 + (int)((int)pppppppbVar20 + -1));" (assignment_expression "pppppppbVar12 = (byte *******)((int)unaff_s4 + (int)((int)pppppppbVar20 + -1))" identifier = (cast_expression "(byte *******)((int)unaff_s4 + (int)((int)pppppppbVar20 + -1))" ( (type_descriptor "byte *******" 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_s4 + (int)((int)pppppppbVar20 + -1))" ( (binary_expression "(int)unaff_s4 + (int)((int)pppppppbVar20 + -1)" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)((int)pppppppbVar20 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)pppppppbVar20 + -1)" ( (binary_expression "(int)pppppppbVar20 + -1" (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (expression_statement "unaff_s5 = pppppppbVar20;" (assignment_expression "unaff_s5 = pppppppbVar20" identifier = identifier) ;) (if_statement "if (pppppppbVar12 < pppppppbVar18) goto LAB_0049179c;" if (parenthesized_expression "(pppppppbVar12 < pppppppbVar18)" ( (binary_expression "pppppppbVar12 < pppppppbVar18" identifier < identifier) )) (goto_statement "goto LAB_0049179c;" goto statement_identifier ;)) (expression_statement "bVar3 = *(byte *)pppppppbVar12;" (assignment_expression "bVar3 = *(byte *)pppppppbVar12" identifier = (pointer_expression "*(byte *)pppppppbVar12" * (cast_expression "(byte *)pppppppbVar12" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "unaff_s7 = pppppppbVar12;" (assignment_expression "unaff_s7 = pppppppbVar12" identifier = identifier) ;) (while_statement "while ((bVar3 & 0xc0) == 0x80) {\n          pppppppbVar19 = (byte *******)((int)unaff_s7 + -1);\n          unaff_s7 = pppppppbVar12;\n          if (pppppppbVar19 < pppppppbVar18) goto LAB_0049179c;\n          unaff_s7 = pppppppbVar19;\n          bVar3 = *(byte *)pppppppbVar19;\n        }" while (parenthesized_expression "((bVar3 & 0xc0) == 0x80)" ( (binary_expression "(bVar3 & 0xc0) == 0x80" (parenthesized_expression "(bVar3 & 0xc0)" ( (binary_expression "bVar3 & 0xc0" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          pppppppbVar19 = (byte *******)((int)unaff_s7 + -1);\n          unaff_s7 = pppppppbVar12;\n          if (pppppppbVar19 < pppppppbVar18) goto LAB_0049179c;\n          unaff_s7 = pppppppbVar19;\n          bVar3 = *(byte *)pppppppbVar19;\n        }" { (expression_statement "pppppppbVar19 = (byte *******)((int)unaff_s7 + -1);" (assignment_expression "pppppppbVar19 = (byte *******)((int)unaff_s7 + -1)" identifier = (cast_expression "(byte *******)((int)unaff_s7 + -1)" ( (type_descriptor "byte *******" 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 + -1)" ( (binary_expression "(int)unaff_s7 + -1" (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "unaff_s7 = pppppppbVar12;" (assignment_expression "unaff_s7 = pppppppbVar12" identifier = identifier) ;) (if_statement "if (pppppppbVar19 < pppppppbVar18) goto LAB_0049179c;" if (parenthesized_expression "(pppppppbVar19 < pppppppbVar18)" ( (binary_expression "pppppppbVar19 < pppppppbVar18" identifier < identifier) )) (goto_statement "goto LAB_0049179c;" goto statement_identifier ;)) (expression_statement "unaff_s7 = pppppppbVar19;" (assignment_expression "unaff_s7 = pppppppbVar19" identifier = identifier) ;) (expression_statement "bVar3 = *(byte *)pppppppbVar19;" (assignment_expression "bVar3 = *(byte *)pppppppbVar19" identifier = (pointer_expression "*(byte *)pppppppbVar19" * (cast_expression "(byte *)pppppppbVar19" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) })) (expression_statement "iVar11 = param_1[0x10];" (assignment_expression "iVar11 = param_1[0x10]" identifier = (subscript_expression "param_1[0x10]" identifier [ number_literal ])) ;) (expression_statement "pbVar16 = (byte *)((int)unaff_s4 + (param_1[0xc] - (int)unaff_s7));" (assignment_expression "pbVar16 = (byte *)((int)unaff_s4 + (param_1[0xc] - (int)unaff_s7))" identifier = (cast_expression "(byte *)((int)unaff_s4 + (param_1[0xc] - (int)unaff_s7))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + (param_1[0xc] - (int)unaff_s7))" ( (binary_expression "(int)unaff_s4 + (param_1[0xc] - (int)unaff_s7)" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(param_1[0xc] - (int)unaff_s7)" ( (binary_expression "param_1[0xc] - (int)unaff_s7" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) - (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "pppppppbVar18 = unaff_s7;" (assignment_expression "pppppppbVar18 = unaff_s7" identifier = identifier) ;) (if_statement "if (iVar11 != 0) {\n          pbVar17 = (byte *)0x6;\n          if ((int)pbVar16 < 7) {\n            pbVar17 = pbVar16;\n          }\n          if ((int)(pbVar17 + -1) < 0) {\n            pppppppbVar18 = appppppbStack_34;\n          }\n          else {\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }\n        }" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (compound_statement "{\n          pbVar17 = (byte *)0x6;\n          if ((int)pbVar16 < 7) {\n            pbVar17 = pbVar16;\n          }\n          if ((int)(pbVar17 + -1) < 0) {\n            pppppppbVar18 = appppppbStack_34;\n          }\n          else {\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }\n        }" { (expression_statement "pbVar17 = (byte *)0x6;" (assignment_expression "pbVar17 = (byte *)0x6" identifier = (cast_expression "(byte *)0x6" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((int)pbVar16 < 7) {\n            pbVar17 = pbVar16;\n          }" if (parenthesized_expression "((int)pbVar16 < 7)" ( (binary_expression "(int)pbVar16 < 7" (cast_expression "(int)pbVar16" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            pbVar17 = pbVar16;\n          }" { (expression_statement "pbVar17 = pbVar16;" (assignment_expression "pbVar17 = pbVar16" identifier = identifier) ;) })) (if_statement "if ((int)(pbVar17 + -1) < 0) {\n            pppppppbVar18 = appppppbStack_34;\n          }\n          else {\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }" if (parenthesized_expression "((int)(pbVar17 + -1) < 0)" ( (binary_expression "(int)(pbVar17 + -1) < 0" (cast_expression "(int)(pbVar17 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar17 + -1)" ( (binary_expression "pbVar17 + -1" identifier + number_literal) ))) < number_literal) )) (compound_statement "{\n            pppppppbVar18 = appppppbStack_34;\n          }" { (expression_statement "pppppppbVar18 = appppppbStack_34;" (assignment_expression "pppppppbVar18 = appppppbStack_34" identifier = identifier) ;) }) (else_clause "else {\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }" else (compound_statement "{\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }" { (expression_statement "pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));" (assignment_expression "pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1))" identifier = (cast_expression "(byte *)((int)unaff_s7 + (int)(pbVar17 + -1))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s7 + (int)(pbVar17 + -1))" ( (binary_expression "(int)unaff_s7 + (int)(pbVar17 + -1)" (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(pbVar17 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar17 + -1)" ( (binary_expression "pbVar17 + -1" identifier + number_literal) )))) )))) ;) (expression_statement "ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);" (assignment_expression "ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17)" identifier = (cast_expression "(byte ******)((int)appppppbStack_34 + (int)pbVar17)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)appppppbStack_34 + (int)pbVar17)" ( (binary_expression "(int)appppppbStack_34 + (int)pbVar17" (cast_expression "(int)appppppbStack_34" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pbVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (do_statement "do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);" do (compound_statement "{\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            }" { (expression_statement "*(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);" (assignment_expression "*(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16)" (pointer_expression "*(byte *)((int)ppppppbVar22 + -1)" * (cast_expression "(byte *)((int)ppppppbVar22 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppbVar22 + -1)" ( (binary_expression "(int)ppppppbVar22 + -1" (cast_expression "(int)ppppppbVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(byte *)(iVar11 + (uint)*pbVar16)" * (cast_expression "(byte *)(iVar11 + (uint)*pbVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + (uint)*pbVar16)" ( (binary_expression "iVar11 + (uint)*pbVar16" identifier + (binary_expression "(uint)*pbVar16" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ))))) ;) (expression_statement "ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);" (assignment_expression "ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1)" identifier = (cast_expression "(byte ******)((int)ppppppbVar22 + -1)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)ppppppbVar22 + -1)" ( (binary_expression "(int)ppppppbVar22 + -1" (cast_expression "(int)ppppppbVar22" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pbVar16 = pbVar16 + -1;" (assignment_expression "pbVar16 = pbVar16 + -1" identifier = (binary_expression "pbVar16 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "((byte *******)ppppppbVar22 != appppppbStack_34)" ( (binary_expression "(byte *******)ppppppbVar22 != appppppbStack_34" (cast_expression "(byte *******)ppppppbVar22" ( (type_descriptor "byte *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) identifier) != identifier) )) ;) (expression_statement "pppppppbVar18 = appppppbStack_34;" (assignment_expression "pppppppbVar18 = appppppbStack_34" 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 "uVar29 = (*(code *)PTR_mbrtowc_004bf2ec)(&local_40);" (assignment_expression "uVar29 = (*(code *)PTR_mbrtowc_004bf2ec)(&local_40)" identifier = (call_expression "(*(code *)PTR_mbrtowc_004bf2ec)(&local_40)" (parenthesized_expression "(*(code *)PTR_mbrtowc_004bf2ec)" ( (pointer_expression "*(code *)PTR_mbrtowc_004bf2ec" * (cast_expression "(code *)PTR_mbrtowc_004bf2ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_40)" ( (pointer_expression "&local_40" & identifier) )))) ;) (expression_statement "uVar30 = (int)((int)unaff_s4 + (int)pppppppbVar20) - (int)unaff_s7;" (assignment_expression "uVar30 = (int)((int)unaff_s4 + (int)pppppppbVar20) - (int)unaff_s7" identifier = (binary_expression "(int)((int)unaff_s4 + (int)pppppppbVar20) - (int)unaff_s7" (cast_expression "(int)((int)unaff_s4 + (int)pppppppbVar20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)unaff_s4 + (int)pppppppbVar20)" ( (binary_expression "(int)unaff_s4 + (int)pppppppbVar20" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier)) ))) - (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((uVar29 < uVar30) || (0xfffffffd < uVar29)) goto LAB_0049179c;" if (parenthesized_expression "((uVar29 < uVar30) || (0xfffffffd < uVar29))" ( (binary_expression "(uVar29 < uVar30) || (0xfffffffd < uVar29)" (parenthesized_expression "(uVar29 < uVar30)" ( (binary_expression "uVar29 < uVar30" identifier < identifier) )) || (parenthesized_expression "(0xfffffffd < uVar29)" ( (binary_expression "0xfffffffd < uVar29" number_literal < identifier) ))) )) (goto_statement "goto LAB_0049179c;" goto statement_identifier ;)) (expression_statement "*(undefined1 *)(param_1 + 4) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 4) = 0" (pointer_expression "*(undefined1 *)(param_1 + 4)" * (cast_expression "(undefined1 *)(param_1 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)param_1 + 0x11) = 0;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x11) = 0" (pointer_expression "*(undefined1 *)((int)param_1 + 0x11)" * (cast_expression "(undefined1 *)((int)param_1 + 0x11)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x11)" ( (binary_expression "(int)param_1 + 0x11" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)param_1 + 0x12) = 0;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x12) = 0" (pointer_expression "*(undefined1 *)((int)param_1 + 0x12)" * (cast_expression "(undefined1 *)((int)param_1 + 0x12)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x12)" ( (binary_expression "(int)param_1 + 0x12" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)param_1 + 0x13) = 0;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x13) = 0" (pointer_expression "*(undefined1 *)((int)param_1 + 0x13)" * (cast_expression "(undefined1 *)((int)param_1 + 0x13)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x13)" ( (binary_expression "(int)param_1 + 0x13" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 5) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 5) = 0" (pointer_expression "*(undefined1 *)(param_1 + 5)" * (cast_expression "(undefined1 *)(param_1 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 5)" ( (binary_expression "param_1 + 5" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)param_1 + 0x15) = 0;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x15) = 0" (pointer_expression "*(undefined1 *)((int)param_1 + 0x15)" * (cast_expression "(undefined1 *)((int)param_1 + 0x15)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x15)" ( (binary_expression "(int)param_1 + 0x15" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)param_1 + 0x16) = 0;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x16) = 0" (pointer_expression "*(undefined1 *)((int)param_1 + 0x16)" * (cast_expression "(undefined1 *)((int)param_1 + 0x16)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x16)" ( (binary_expression "(int)param_1 + 0x16" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)param_1 + 0x17) = 0;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x17) = 0" (pointer_expression "*(undefined1 *)((int)param_1 + 0x17)" * (cast_expression "(undefined1 *)((int)param_1 + 0x17)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x17)" ( (binary_expression "(int)param_1 + 0x17" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "param_1[7] = uVar29 - uVar30;" (assignment_expression "param_1[7] = uVar29 - uVar30" (subscript_expression "param_1[7]" identifier [ number_literal ]) = (binary_expression "uVar29 - uVar30" identifier - identifier)) ;) (expression_statement "unaff_s4 = local_40;" (assignment_expression "unaff_s4 = local_40" identifier = identifier) ;) (if_statement "if (local_40 == (byte *******)0xffffffff) {\n          iVar11 = param_1[6];\n          goto LAB_004917a0;\n        }" if (parenthesized_expression "(local_40 == (byte *******)0xffffffff)" ( (binary_expression "local_40 == (byte *******)0xffffffff" identifier == (cast_expression "(byte *******)0xffffffff" ( (type_descriptor "byte *******" 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          iVar11 = param_1[6];\n          goto LAB_004917a0;\n        }" { (expression_statement "iVar11 = param_1[6];" (assignment_expression "iVar11 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_004917a0;" goto statement_identifier ;) })) (labeled_statement "LAB_00491834:\n        if (*(char *)((int)param_1 + 0x4e) == '\0') {\nLAB_00491840:\n          iVar11 = 2;\n          if (unaff_s4 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        else {\n          iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          iVar11 = 1;\n          if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }" statement_identifier : (if_statement "if (*(char *)((int)param_1 + 0x4e) == '\0') {\nLAB_00491840:\n          iVar11 = 2;\n          if (unaff_s4 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        else {\n          iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          iVar11 = 1;\n          if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }" if (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 ')) )) (compound_statement "{\nLAB_00491840:\n          iVar11 = 2;\n          if (unaff_s4 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }" { (labeled_statement "LAB_00491840:\n          iVar11 = 2;" statement_identifier : (expression_statement "iVar11 = 2;" (assignment_expression "iVar11 = 2" identifier = number_literal) ;)) (if_statement "if (unaff_s4 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }" if (parenthesized_expression "(unaff_s4 == (byte *******)&DAT_0000000a)" ( (binary_expression "unaff_s4 == (byte *******)&DAT_0000000a" identifier == (cast_expression "(byte *******)&DAT_0000000a" ( (type_descriptor "byte *******" 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 "&DAT_0000000a" & identifier))) )) (compound_statement "{\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }" { (if_statement "if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 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              iVar11 = 0;\n            }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) })) }) (else_clause "else {\n            iVar11 = 0;\n          }" else (compound_statement "{\n            iVar11 = 0;\n          }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n          iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          iVar11 = 1;\n          if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }" else (compound_statement "{\n          iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          iVar11 = 1;\n          if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }" { (expression_statement "iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);" (assignment_expression "iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4)" identifier = (call_expression "(*(code *)PTR_iswalnum_004bf25c)(unaff_s4)" (parenthesized_expression "(*(code *)PTR_iswalnum_004bf25c)" ( (pointer_expression "*(code *)PTR_iswalnum_004bf25c" * (cast_expression "(code *)PTR_iswalnum_004bf25c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s4)" ( identifier )))) ;) (expression_statement "iVar11 = 1;" (assignment_expression "iVar11 = 1" identifier = number_literal) ;) (if_statement "if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (compound_statement "{\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }" { (if_statement "if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }" if (parenthesized_expression "(unaff_s4 == (byte *******)0x5f)" ( (binary_expression "unaff_s4 == (byte *******)0x5f" identifier == (cast_expression "(byte *******)0x5f" ( (type_descriptor "byte *******" 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              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }" { (expression_statement "param_1[0xf] = 1;" (assignment_expression "param_1[0xf] = 1" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_00491854;" goto statement_identifier ;) })) (goto_statement "goto LAB_00491840;" goto statement_identifier ;) })) })))) (expression_statement "param_1[0xf] = iVar11;" (assignment_expression "param_1[0xf] = iVar11" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = identifier) ;) }))) (labeled_statement "LAB_00491854:\n      ppppppbVar22 = (byte ******)param_1[7];" statement_identifier : (expression_statement "ppppppbVar22 = (byte ******)param_1[7];" (assignment_expression "ppppppbVar22 = (byte ******)param_1[7]" identifier = (cast_expression "(byte ******)param_1[7]" ( (type_descriptor "byte ******" type_identifier (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 (ppppppbVar22 == (byte ******)0x0) {\nLAB_00491860:\n        iVar11 = param_1[7];\n      }\n      else {\n        iVar11 = 0;\n        if (0 < (int)ppppppbVar22) {\n          do {\n            *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n            iVar11 = iVar11 + 1;\n            ppppppbVar22 = (byte ******)param_1[7];\n          } while (iVar11 < (int)ppppppbVar22);\n        }\n        pppppppbVar18 = (byte *******)0xff;\n        if (*(char *)((int)param_1 + 0x4b) == '\0') goto LAB_00491860;\n        (*(code *)PTR_memset_004bf260)(param_1[1]);\n        iVar11 = param_1[7];\n      }" if (parenthesized_expression "(ppppppbVar22 == (byte ******)0x0)" ( (binary_expression "ppppppbVar22 == (byte ******)0x0" identifier == (cast_expression "(byte ******)0x0" ( (type_descriptor "byte ******" 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_00491860:\n        iVar11 = param_1[7];\n      }" { (labeled_statement "LAB_00491860:\n        iVar11 = param_1[7];" statement_identifier : (expression_statement "iVar11 = param_1[7];" (assignment_expression "iVar11 = param_1[7]" identifier = (subscript_expression "param_1[7]" identifier [ number_literal ])) ;)) }) (else_clause "else {\n        iVar11 = 0;\n        if (0 < (int)ppppppbVar22) {\n          do {\n            *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n            iVar11 = iVar11 + 1;\n            ppppppbVar22 = (byte ******)param_1[7];\n          } while (iVar11 < (int)ppppppbVar22);\n        }\n        pppppppbVar18 = (byte *******)0xff;\n        if (*(char *)((int)param_1 + 0x4b) == '\0') goto LAB_00491860;\n        (*(code *)PTR_memset_004bf260)(param_1[1]);\n        iVar11 = param_1[7];\n      }" else (compound_statement "{\n        iVar11 = 0;\n        if (0 < (int)ppppppbVar22) {\n          do {\n            *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n            iVar11 = iVar11 + 1;\n            ppppppbVar22 = (byte ******)param_1[7];\n          } while (iVar11 < (int)ppppppbVar22);\n        }\n        pppppppbVar18 = (byte *******)0xff;\n        if (*(char *)((int)param_1 + 0x4b) == '\0') goto LAB_00491860;\n        (*(code *)PTR_memset_004bf260)(param_1[1]);\n        iVar11 = param_1[7];\n      }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)ppppppbVar22) {\n          do {\n            *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n            iVar11 = iVar11 + 1;\n            ppppppbVar22 = (byte ******)param_1[7];\n          } while (iVar11 < (int)ppppppbVar22);\n        }" if (parenthesized_expression "(0 < (int)ppppppbVar22)" ( (binary_expression "0 < (int)ppppppbVar22" number_literal < (cast_expression "(int)ppppppbVar22" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          do {\n            *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n            iVar11 = iVar11 + 1;\n            ppppppbVar22 = (byte ******)param_1[7];\n          } while (iVar11 < (int)ppppppbVar22);\n        }" { (do_statement "do {\n            *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n            iVar11 = iVar11 + 1;\n            ppppppbVar22 = (byte ******)param_1[7];\n          } while (iVar11 < (int)ppppppbVar22);" do (compound_statement "{\n            *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n            iVar11 = iVar11 + 1;\n            ppppppbVar22 = (byte ******)param_1[7];\n          }" { (expression_statement "*(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;" (assignment_expression "*(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff" (pointer_expression "*(undefined4 *)(param_1[2] + iVar11 * 4)" * (cast_expression "(undefined4 *)(param_1[2] + iVar11 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[2] + iVar11 * 4)" ( (binary_expression "param_1[2] + iVar11 * 4" (subscript_expression "param_1[2]" identifier [ number_literal ]) + (binary_expression "iVar11 * 4" identifier * number_literal)) )))) = number_literal) ;) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (expression_statement "ppppppbVar22 = (byte ******)param_1[7];" (assignment_expression "ppppppbVar22 = (byte ******)param_1[7]" identifier = (cast_expression "(byte ******)param_1[7]" ( (type_descriptor "byte ******" type_identifier (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 ]))) ;) }) while (parenthesized_expression "(iVar11 < (int)ppppppbVar22)" ( (binary_expression "iVar11 < (int)ppppppbVar22" identifier < (cast_expression "(int)ppppppbVar22" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "pppppppbVar18 = (byte *******)0xff;" (assignment_expression "pppppppbVar18 = (byte *******)0xff" identifier = (cast_expression "(byte *******)0xff" ( (type_descriptor "byte *******" 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 (*(char *)((int)param_1 + 0x4b) == '\0') goto LAB_00491860;" 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 ')) )) (goto_statement "goto LAB_00491860;" goto statement_identifier ;)) (expression_statement "(*(code *)PTR_memset_004bf260)(param_1[1]);" (call_expression "(*(code *)PTR_memset_004bf260)(param_1[1])" (parenthesized_expression "(*(code *)PTR_memset_004bf260)" ( (pointer_expression "*(code *)PTR_memset_004bf260" * (cast_expression "(code *)PTR_memset_004bf260" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1[1])" ( (subscript_expression "param_1[1]" identifier [ number_literal ]) ))) ;) (expression_statement "iVar11 = param_1[7];" (assignment_expression "iVar11 = param_1[7]" identifier = (subscript_expression "param_1[7]" identifier [ number_literal ])) ;) }))) (expression_statement "param_1[8] = iVar11;" (assignment_expression "param_1[8] = iVar11" (subscript_expression "param_1[8]" identifier [ number_literal ]) = identifier) ;) (labeled_statement "LAB_00491360:\n      cVar2 = *(char *)((int)param_1 + 0x4b);" statement_identifier : (expression_statement "cVar2 = *(char *)((int)param_1 + 0x4b);" (assignment_expression "cVar2 = *(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 (cVar2 == '\0') {\n      param_1[1] = (int)((int)pppppppbVar20 + param_1[1]);\n    }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      param_1[1] = (int)((int)pppppppbVar20 + param_1[1]);\n    }" { (expression_statement "param_1[1] = (int)((int)pppppppbVar20 + param_1[1]);" (assignment_expression "param_1[1] = (int)((int)pppppppbVar20 + param_1[1])" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (cast_expression "(int)((int)pppppppbVar20 + param_1[1])" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)pppppppbVar20 + param_1[1])" ( (binary_expression "(int)pppppppbVar20 + param_1[1]" (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier) + (subscript_expression "param_1[1]" 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 "iVar11 = param_1[0xc];" (assignment_expression "iVar11 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) (expression_statement "param_1[0xc] = iVar11 - (int)pppppppbVar20;" (assignment_expression "param_1[0xc] = iVar11 - (int)pppppppbVar20" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (binary_expression "iVar11 - (int)pppppppbVar20" identifier - (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar24 = param_1[0xe] - (int)pppppppbVar20;" (assignment_expression "iVar24 = param_1[0xe] - (int)pppppppbVar20" identifier = (binary_expression "param_1[0xe] - (int)pppppppbVar20" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) - (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "param_1[0xe] = iVar24;" (assignment_expression "param_1[0xe] = iVar24" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (param_1[0x14] < 2) {\n    if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[7] = iVar11 - (int)pppppppbVar20;\n      goto LAB_00491aa8;\n    }\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      if (param_1[0x10] == 0) goto LAB_00491aa8;\n      FUN_00489d80();\n      param_1[10] = 0;\n    }\n    else {\n      FUN_0048b84c(param_1);\n      param_1[10] = 0;\n    }\n  }\n  else {\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      FUN_0048b928(param_1);\n      param_1[10] = 0;\n      goto LAB_00491aac;\n    }\n    ppppbVar5 = (byte ****)FUN_0048c3a4();\n    if (ppppbVar5 != (byte ****)0x0) goto LAB_00491ab0;\nLAB_00491aa8:\n    param_1[10] = 0;\n  }" if (parenthesized_expression "(param_1[0x14] < 2)" ( (binary_expression "param_1[0x14] < 2" (subscript_expression "param_1[0x14]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n    if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[7] = iVar11 - (int)pppppppbVar20;\n      goto LAB_00491aa8;\n    }\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      if (param_1[0x10] == 0) goto LAB_00491aa8;\n      FUN_00489d80();\n      param_1[10] = 0;\n    }\n    else {\n      FUN_0048b84c(param_1);\n      param_1[10] = 0;\n    }\n  }" { (if_statement "if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[7] = iVar11 - (int)pppppppbVar20;\n      goto LAB_00491aa8;\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[7] = iVar11 - (int)pppppppbVar20;\n      goto LAB_00491aa8;\n    }" { (expression_statement "param_1[7] = iVar11 - (int)pppppppbVar20;" (assignment_expression "param_1[7] = iVar11 - (int)pppppppbVar20" (subscript_expression "param_1[7]" identifier [ number_literal ]) = (binary_expression "iVar11 - (int)pppppppbVar20" identifier - (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (goto_statement "goto LAB_00491aa8;" goto statement_identifier ;) })) (if_statement "if (*(char *)(param_1 + 0x12) == '\0') {\n      if (param_1[0x10] == 0) goto LAB_00491aa8;\n      FUN_00489d80();\n      param_1[10] = 0;\n    }\n    else {\n      FUN_0048b84c(param_1);\n      param_1[10] = 0;\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      if (param_1[0x10] == 0) goto LAB_00491aa8;\n      FUN_00489d80();\n      param_1[10] = 0;\n    }" { (if_statement "if (param_1[0x10] == 0) goto LAB_00491aa8;" if (parenthesized_expression "(param_1[0x10] == 0)" ( (binary_expression "param_1[0x10] == 0" (subscript_expression "param_1[0x10]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_00491aa8;" goto statement_identifier ;)) (expression_statement "FUN_00489d80();" (call_expression "FUN_00489d80()" identifier (argument_list "()" ( ))) ;) (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 {\n      FUN_0048b84c(param_1);\n      param_1[10] = 0;\n    }" else (compound_statement "{\n      FUN_0048b84c(param_1);\n      param_1[10] = 0;\n    }" { (expression_statement "FUN_0048b84c(param_1);" (call_expression "FUN_0048b84c(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (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 {\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      FUN_0048b928(param_1);\n      param_1[10] = 0;\n      goto LAB_00491aac;\n    }\n    ppppbVar5 = (byte ****)FUN_0048c3a4();\n    if (ppppbVar5 != (byte ****)0x0) goto LAB_00491ab0;\nLAB_00491aa8:\n    param_1[10] = 0;\n  }" else (compound_statement "{\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      FUN_0048b928(param_1);\n      param_1[10] = 0;\n      goto LAB_00491aac;\n    }\n    ppppbVar5 = (byte ****)FUN_0048c3a4();\n    if (ppppbVar5 != (byte ****)0x0) goto LAB_00491ab0;\nLAB_00491aa8:\n    param_1[10] = 0;\n  }" { (if_statement "if (*(char *)(param_1 + 0x12) == '\0') {\n      FUN_0048b928(param_1);\n      param_1[10] = 0;\n      goto LAB_00491aac;\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_0048b928(param_1);\n      param_1[10] = 0;\n      goto LAB_00491aac;\n    }" { (expression_statement "FUN_0048b928(param_1);" (call_expression "FUN_0048b928(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "param_1[10] = 0;" (assignment_expression "param_1[10] = 0" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_00491aac;" goto statement_identifier ;) })) (expression_statement "ppppbVar5 = (byte ****)FUN_0048c3a4();" (assignment_expression "ppppbVar5 = (byte ****)FUN_0048c3a4()" identifier = (cast_expression "(byte ****)FUN_0048c3a4()" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "FUN_0048c3a4()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (ppppbVar5 != (byte ****)0x0) goto LAB_00491ab0;" if (parenthesized_expression "(ppppbVar5 != (byte ****)0x0)" ( (binary_expression "ppppbVar5 != (byte ****)0x0" identifier != (cast_expression "(byte ****)0x0" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (goto_statement "goto LAB_00491ab0;" goto statement_identifier ;)) (labeled_statement "LAB_00491aa8:\n    param_1[10] = 0;" statement_identifier : (expression_statement "param_1[10] = 0;" (assignment_expression "param_1[10] = 0" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) ;)) }))) (labeled_statement "LAB_00491aac:\n  ppppbVar5 = (byte ****)0x0;" statement_identifier : (expression_statement "ppppbVar5 = (byte ****)0x0;" (assignment_expression "ppppbVar5 = (byte ****)0x0" identifier = (cast_expression "(byte ****)0x0" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;)) (labeled_statement "LAB_00491ab0:\n  if (appppppbStack_34[2] == *(byte *******)PTR___stack_chk_guard_004bf38c) {\n    return ppppbVar5;\n  }" statement_identifier : (if_statement "if (appppppbStack_34[2] == *(byte *******)PTR___stack_chk_guard_004bf38c) {\n    return ppppbVar5;\n  }" if (parenthesized_expression "(appppppbStack_34[2] == *(byte *******)PTR___stack_chk_guard_004bf38c)" ( (binary_expression "appppppbStack_34[2] == *(byte *******)PTR___stack_chk_guard_004bf38c" (subscript_expression "appppppbStack_34[2]" identifier [ number_literal ]) == (pointer_expression "*(byte *******)PTR___stack_chk_guard_004bf38c" * (cast_expression "(byte *******)PTR___stack_chk_guard_004bf38c" ( (type_descriptor "byte *******" type_identifier (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 ppppbVar5;\n  }" { (return_statement "return ppppbVar5;" return identifier ;) }))) (expression_statement "pcVar32 = FUN_00491b60;" (assignment_expression "pcVar32 = FUN_00491b60" identifier = identifier) ;) (expression_statement "ppppppbVar6 = appppppbStack_34[2];" (assignment_expression "ppppppbVar6 = appppppbStack_34[2]" identifier = (subscript_expression "appppppbStack_34[2]" identifier [ number_literal ])) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_004bf34c)();" (call_expression "(*(code *)PTR___stack_chk_fail_004bf34c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_004bf34c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_004bf34c" * (cast_expression "(code *)PTR___stack_chk_fail_004bf34c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "ppppbStack_84 = *(byte *****)PTR___stack_chk_guard_004bf38c;" (assignment_expression "ppppbStack_84 = *(byte *****)PTR___stack_chk_guard_004bf38c" identifier = (pointer_expression "*(byte *****)PTR___stack_chk_guard_004bf38c" * (cast_expression "(byte *****)PTR___stack_chk_guard_004bf38c" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier))) ;) (expression_statement "pppppbVar31 = *ppppppbVar6;" (assignment_expression "pppppbVar31 = *ppppppbVar6" identifier = (pointer_expression "*ppppppbVar6" * identifier)) ;) (if_statement "if (pppppbVar31[0x17] == (byte ****)0x1) {\n    uVar29 = (uint)((int)ppppppbVar6[3] << 9) >> 0x1f;\n  }\n  else {\n    uVar29 = 0;\n  }" if (parenthesized_expression "(pppppbVar31[0x17] == (byte ****)0x1)" ( (binary_expression "pppppbVar31[0x17] == (byte ****)0x1" (subscript_expression "pppppbVar31[0x17]" identifier [ number_literal ]) == (cast_expression "(byte ****)0x1" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (compound_statement "{\n    uVar29 = (uint)((int)ppppppbVar6[3] << 9) >> 0x1f;\n  }" { (expression_statement "uVar29 = (uint)((int)ppppppbVar6[3] << 9) >> 0x1f;" (assignment_expression "uVar29 = (uint)((int)ppppppbVar6[3] << 9) >> 0x1f" identifier = (binary_expression "(uint)((int)ppppppbVar6[3] << 9) >> 0x1f" (call_expression "(uint)((int)ppppppbVar6[3] << 9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)ppppppbVar6[3] << 9)" ( (binary_expression "(int)ppppppbVar6[3] << 9" (cast_expression "(int)ppppppbVar6[3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppppppbVar6[3]" identifier [ number_literal ])) << number_literal) ))) >> number_literal)) ;) }) (else_clause "else {\n    uVar29 = 0;\n  }" else (compound_statement "{\n    uVar29 = 0;\n  }" { (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" identifier = number_literal) ;) }))) (expression_statement "ppppppbVar13 = ppppppbVar6;" (assignment_expression "ppppppbVar13 = ppppppbVar6" identifier = identifier) ;) (expression_statement "pppppppbVar20 = pppppppbVar18;" (assignment_expression "pppppppbVar20 = pppppppbVar18" identifier = identifier) ;) (expression_statement "ppppppbVar21 = ppppppbVar22;" (assignment_expression "ppppppbVar21 = ppppppbVar22" identifier = identifier) ;) (expression_statement "piStack_80 = param_1;" (assignment_expression "piStack_80 = param_1" identifier = identifier) ;) (expression_statement "iStack_7c = iVar24;" (assignment_expression "iStack_7c = iVar24" identifier = identifier) ;) (expression_statement "pppppppbStack_78 = param_2;" (assignment_expression "pppppppbStack_78 = param_2" identifier = identifier) ;) (expression_statement "ppppppbStack_74 = param_3;" (assignment_expression "ppppppbStack_74 = param_3" identifier = identifier) ;) (expression_statement "pppppppbStack_70 = unaff_s4;" (assignment_expression "pppppppbStack_70 = unaff_s4" identifier = identifier) ;) (expression_statement "pppppppbStack_6c = unaff_s5;" (assignment_expression "pppppppbStack_6c = unaff_s5" identifier = identifier) ;) (expression_statement "pppppppbStack_68 = unaff_s6;" (assignment_expression "pppppppbStack_68 = unaff_s6" identifier = identifier) ;) (expression_statement "pppppppbStack_64 = unaff_s7;" (assignment_expression "pppppppbStack_64 = unaff_s7" identifier = identifier) ;) (expression_statement "piStack_60 = unaff_s8;" (assignment_expression "piStack_60 = unaff_s8" identifier = identifier) ;) (expression_statement "pcStack_5c = pcVar32;" (assignment_expression "pcStack_5c = pcVar32" identifier = identifier) ;) (if_statement "if (0 < (int)pppppppbVar18[2]) {\n    iStack_1a8 = 0;\n    do {\n      pppppbVar23 = pppppppbVar18[3][iStack_1a8];\n      ppppppbVar7 = (byte ******)((int)pppppbVar23 * 8);\n      ppppbVar5 = *pppppbVar31 + (int)pppppbVar23 * 2;\n      ppppppbVar13 = (byte ******)(uint)*(byte *)(ppppbVar5 + 1);\n      pppppppbVar20 = (byte *******)&DAT_00000001;\n      if (ppppppbVar13 == (byte ******)&DAT_00000001) {\n        uVar30 = (uint)*(byte *)ppppbVar5;\n        *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        if (uVar29 != 0) {\n          if (uVar30 + 0x80 < 0x180) {\n            piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n          }\n          *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        }\n        if (((int)ppppppbVar6[3] << 9 < 0) &&\n           (ppppppbVar13 = ppppppbVar7, 1 < (int)pppppbVar31[0x17])) {\n          bStack_184 = *(byte *)(*pppppbVar31 + (int)pppppbVar23 * 2);\n          if ((byte ****)((int)pppppbVar23 + 1U) < pppppbVar31[2]) {\n            ppppbVar5 = (byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2));\n            ppppppbVar7 = ppppppbVar7 + 4;\n            if (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400) {\n              puVar15 = auStack_183;\n              do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar14 = auStack_183;\n            }\n          }\n          else {\n            puVar14 = auStack_183;\n          }\n          pppppbStack_18c = (byte *****)0x0;\n          uStack_188 = 0;\n          pppppppbVar20 = (byte *******)&bStack_184;\n          iVar11 = -(int)pppppppbVar20;\n          ppppppbVar13 = (byte ******)&ppppppbStack_190;\n          ppppppbVar21 = (byte ******)(puVar14 + iVar11);\n          ppppppbVar7 = (byte ******)(*(code *)PTR_mbrtowc_004bf2ec)();\n          if ((byte ******)(puVar14 + iVar11) == ppppppbVar7) {\n            pppppppbVar20 = (byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190);\n            ppppppbVar21 = &pppppbStack_18c;\n            ppppppbVar13 = (byte ******)&bStack_184;\n            iVar11 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar11 != -1) {\n              *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n            }\n          }\n        }\n      }\n      else {\n        pppppppbVar20 = (byte *******)&DAT_00000006;\n        if (ppppppbVar13 == (byte ******)0x3) {\n          iStack_1ac = 0;\n          iVar11 = 0;\n          do {\n            uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac);\n            uVar30 = 0;\n            iVar24 = iVar11;\n            do {\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            } while (uVar30 != 0x20);\n            iVar11 = iVar11 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar11 != 0x100);\n        }\n        else if (ppppppbVar13 == (byte ******)&DAT_00000006) {\n          pppbVar25 = *ppppbVar5;\n          if (((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))) {\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }\n          else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }\n          if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }\n        }\n      }\n      iStack_1a8 = iStack_1a8 + 1;\n    } while (iStack_1a8 < (int)pppppppbVar18[2]);\n  }" if (parenthesized_expression "(0 < (int)pppppppbVar18[2])" ( (binary_expression "0 < (int)pppppppbVar18[2]" number_literal < (cast_expression "(int)pppppppbVar18[2]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppbVar18[2]" identifier [ number_literal ]))) )) (compound_statement "{\n    iStack_1a8 = 0;\n    do {\n      pppppbVar23 = pppppppbVar18[3][iStack_1a8];\n      ppppppbVar7 = (byte ******)((int)pppppbVar23 * 8);\n      ppppbVar5 = *pppppbVar31 + (int)pppppbVar23 * 2;\n      ppppppbVar13 = (byte ******)(uint)*(byte *)(ppppbVar5 + 1);\n      pppppppbVar20 = (byte *******)&DAT_00000001;\n      if (ppppppbVar13 == (byte ******)&DAT_00000001) {\n        uVar30 = (uint)*(byte *)ppppbVar5;\n        *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        if (uVar29 != 0) {\n          if (uVar30 + 0x80 < 0x180) {\n            piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n          }\n          *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        }\n        if (((int)ppppppbVar6[3] << 9 < 0) &&\n           (ppppppbVar13 = ppppppbVar7, 1 < (int)pppppbVar31[0x17])) {\n          bStack_184 = *(byte *)(*pppppbVar31 + (int)pppppbVar23 * 2);\n          if ((byte ****)((int)pppppbVar23 + 1U) < pppppbVar31[2]) {\n            ppppbVar5 = (byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2));\n            ppppppbVar7 = ppppppbVar7 + 4;\n            if (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400) {\n              puVar15 = auStack_183;\n              do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar14 = auStack_183;\n            }\n          }\n          else {\n            puVar14 = auStack_183;\n          }\n          pppppbStack_18c = (byte *****)0x0;\n          uStack_188 = 0;\n          pppppppbVar20 = (byte *******)&bStack_184;\n          iVar11 = -(int)pppppppbVar20;\n          ppppppbVar13 = (byte ******)&ppppppbStack_190;\n          ppppppbVar21 = (byte ******)(puVar14 + iVar11);\n          ppppppbVar7 = (byte ******)(*(code *)PTR_mbrtowc_004bf2ec)();\n          if ((byte ******)(puVar14 + iVar11) == ppppppbVar7) {\n            pppppppbVar20 = (byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190);\n            ppppppbVar21 = &pppppbStack_18c;\n            ppppppbVar13 = (byte ******)&bStack_184;\n            iVar11 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar11 != -1) {\n              *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n            }\n          }\n        }\n      }\n      else {\n        pppppppbVar20 = (byte *******)&DAT_00000006;\n        if (ppppppbVar13 == (byte ******)0x3) {\n          iStack_1ac = 0;\n          iVar11 = 0;\n          do {\n            uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac);\n            uVar30 = 0;\n            iVar24 = iVar11;\n            do {\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            } while (uVar30 != 0x20);\n            iVar11 = iVar11 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar11 != 0x100);\n        }\n        else if (ppppppbVar13 == (byte ******)&DAT_00000006) {\n          pppbVar25 = *ppppbVar5;\n          if (((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))) {\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }\n          else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }\n          if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }\n        }\n      }\n      iStack_1a8 = iStack_1a8 + 1;\n    } while (iStack_1a8 < (int)pppppppbVar18[2]);\n  }" { (expression_statement "iStack_1a8 = 0;" (assignment_expression "iStack_1a8 = 0" identifier = number_literal) ;) (do_statement "do {\n      pppppbVar23 = pppppppbVar18[3][iStack_1a8];\n      ppppppbVar7 = (byte ******)((int)pppppbVar23 * 8);\n      ppppbVar5 = *pppppbVar31 + (int)pppppbVar23 * 2;\n      ppppppbVar13 = (byte ******)(uint)*(byte *)(ppppbVar5 + 1);\n      pppppppbVar20 = (byte *******)&DAT_00000001;\n      if (ppppppbVar13 == (byte ******)&DAT_00000001) {\n        uVar30 = (uint)*(byte *)ppppbVar5;\n        *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        if (uVar29 != 0) {\n          if (uVar30 + 0x80 < 0x180) {\n            piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n          }\n          *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        }\n        if (((int)ppppppbVar6[3] << 9 < 0) &&\n           (ppppppbVar13 = ppppppbVar7, 1 < (int)pppppbVar31[0x17])) {\n          bStack_184 = *(byte *)(*pppppbVar31 + (int)pppppbVar23 * 2);\n          if ((byte ****)((int)pppppbVar23 + 1U) < pppppbVar31[2]) {\n            ppppbVar5 = (byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2));\n            ppppppbVar7 = ppppppbVar7 + 4;\n            if (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400) {\n              puVar15 = auStack_183;\n              do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar14 = auStack_183;\n            }\n          }\n          else {\n            puVar14 = auStack_183;\n          }\n          pppppbStack_18c = (byte *****)0x0;\n          uStack_188 = 0;\n          pppppppbVar20 = (byte *******)&bStack_184;\n          iVar11 = -(int)pppppppbVar20;\n          ppppppbVar13 = (byte ******)&ppppppbStack_190;\n          ppppppbVar21 = (byte ******)(puVar14 + iVar11);\n          ppppppbVar7 = (byte ******)(*(code *)PTR_mbrtowc_004bf2ec)();\n          if ((byte ******)(puVar14 + iVar11) == ppppppbVar7) {\n            pppppppbVar20 = (byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190);\n            ppppppbVar21 = &pppppbStack_18c;\n            ppppppbVar13 = (byte ******)&bStack_184;\n            iVar11 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar11 != -1) {\n              *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n            }\n          }\n        }\n      }\n      else {\n        pppppppbVar20 = (byte *******)&DAT_00000006;\n        if (ppppppbVar13 == (byte ******)0x3) {\n          iStack_1ac = 0;\n          iVar11 = 0;\n          do {\n            uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac);\n            uVar30 = 0;\n            iVar24 = iVar11;\n            do {\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            } while (uVar30 != 0x20);\n            iVar11 = iVar11 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar11 != 0x100);\n        }\n        else if (ppppppbVar13 == (byte ******)&DAT_00000006) {\n          pppbVar25 = *ppppbVar5;\n          if (((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))) {\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }\n          else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }\n          if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }\n        }\n      }\n      iStack_1a8 = iStack_1a8 + 1;\n    } while (iStack_1a8 < (int)pppppppbVar18[2]);" do (compound_statement "{\n      pppppbVar23 = pppppppbVar18[3][iStack_1a8];\n      ppppppbVar7 = (byte ******)((int)pppppbVar23 * 8);\n      ppppbVar5 = *pppppbVar31 + (int)pppppbVar23 * 2;\n      ppppppbVar13 = (byte ******)(uint)*(byte *)(ppppbVar5 + 1);\n      pppppppbVar20 = (byte *******)&DAT_00000001;\n      if (ppppppbVar13 == (byte ******)&DAT_00000001) {\n        uVar30 = (uint)*(byte *)ppppbVar5;\n        *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        if (uVar29 != 0) {\n          if (uVar30 + 0x80 < 0x180) {\n            piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n          }\n          *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        }\n        if (((int)ppppppbVar6[3] << 9 < 0) &&\n           (ppppppbVar13 = ppppppbVar7, 1 < (int)pppppbVar31[0x17])) {\n          bStack_184 = *(byte *)(*pppppbVar31 + (int)pppppbVar23 * 2);\n          if ((byte ****)((int)pppppbVar23 + 1U) < pppppbVar31[2]) {\n            ppppbVar5 = (byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2));\n            ppppppbVar7 = ppppppbVar7 + 4;\n            if (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400) {\n              puVar15 = auStack_183;\n              do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar14 = auStack_183;\n            }\n          }\n          else {\n            puVar14 = auStack_183;\n          }\n          pppppbStack_18c = (byte *****)0x0;\n          uStack_188 = 0;\n          pppppppbVar20 = (byte *******)&bStack_184;\n          iVar11 = -(int)pppppppbVar20;\n          ppppppbVar13 = (byte ******)&ppppppbStack_190;\n          ppppppbVar21 = (byte ******)(puVar14 + iVar11);\n          ppppppbVar7 = (byte ******)(*(code *)PTR_mbrtowc_004bf2ec)();\n          if ((byte ******)(puVar14 + iVar11) == ppppppbVar7) {\n            pppppppbVar20 = (byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190);\n            ppppppbVar21 = &pppppbStack_18c;\n            ppppppbVar13 = (byte ******)&bStack_184;\n            iVar11 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar11 != -1) {\n              *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n            }\n          }\n        }\n      }\n      else {\n        pppppppbVar20 = (byte *******)&DAT_00000006;\n        if (ppppppbVar13 == (byte ******)0x3) {\n          iStack_1ac = 0;\n          iVar11 = 0;\n          do {\n            uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac);\n            uVar30 = 0;\n            iVar24 = iVar11;\n            do {\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            } while (uVar30 != 0x20);\n            iVar11 = iVar11 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar11 != 0x100);\n        }\n        else if (ppppppbVar13 == (byte ******)&DAT_00000006) {\n          pppbVar25 = *ppppbVar5;\n          if (((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))) {\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }\n          else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }\n          if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }\n        }\n      }\n      iStack_1a8 = iStack_1a8 + 1;\n    }" { (expression_statement "pppppbVar23 = pppppppbVar18[3][iStack_1a8];" (assignment_expression "pppppbVar23 = pppppppbVar18[3][iStack_1a8]" identifier = (subscript_expression "pppppppbVar18[3][iStack_1a8]" (subscript_expression "pppppppbVar18[3]" identifier [ number_literal ]) [ identifier ])) ;) (expression_statement "ppppppbVar7 = (byte ******)((int)pppppbVar23 * 8);" (assignment_expression "ppppppbVar7 = (byte ******)((int)pppppbVar23 * 8)" identifier = (cast_expression "(byte ******)((int)pppppbVar23 * 8)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)pppppbVar23 * 8)" ( (binary_expression "(int)pppppbVar23 * 8" (cast_expression "(int)pppppbVar23" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "ppppbVar5 = *pppppbVar31 + (int)pppppbVar23 * 2;" (assignment_expression "ppppbVar5 = *pppppbVar31 + (int)pppppbVar23 * 2" identifier = (binary_expression "*pppppbVar31 + (int)pppppbVar23 * 2" (pointer_expression "*pppppbVar31" * identifier) + (binary_expression "(int)pppppbVar23 * 2" (cast_expression "(int)pppppbVar23" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (expression_statement "ppppppbVar13 = (byte ******)(uint)*(byte *)(ppppbVar5 + 1);" (assignment_expression "ppppppbVar13 = (byte ******)(uint)*(byte *)(ppppbVar5 + 1)" identifier = (binary_expression "(byte ******)(uint)*(byte *)(ppppbVar5 + 1)" (cast_expression "(byte ******)(uint)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)(ppppbVar5 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppbVar5 + 1)" ( (binary_expression "ppppbVar5 + 1" identifier + number_literal) ))))) ;) (expression_statement "pppppppbVar20 = (byte *******)&DAT_00000001;" (assignment_expression "pppppppbVar20 = (byte *******)&DAT_00000001" identifier = (cast_expression "(byte *******)&DAT_00000001" ( (type_descriptor "byte *******" 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 "&DAT_00000001" & identifier))) ;) (if_statement "if (ppppppbVar13 == (byte ******)&DAT_00000001) {\n        uVar30 = (uint)*(byte *)ppppbVar5;\n        *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        if (uVar29 != 0) {\n          if (uVar30 + 0x80 < 0x180) {\n            piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n          }\n          *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        }\n        if (((int)ppppppbVar6[3] << 9 < 0) &&\n           (ppppppbVar13 = ppppppbVar7, 1 < (int)pppppbVar31[0x17])) {\n          bStack_184 = *(byte *)(*pppppbVar31 + (int)pppppbVar23 * 2);\n          if ((byte ****)((int)pppppbVar23 + 1U) < pppppbVar31[2]) {\n            ppppbVar5 = (byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2));\n            ppppppbVar7 = ppppppbVar7 + 4;\n            if (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400) {\n              puVar15 = auStack_183;\n              do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar14 = auStack_183;\n            }\n          }\n          else {\n            puVar14 = auStack_183;\n          }\n          pppppbStack_18c = (byte *****)0x0;\n          uStack_188 = 0;\n          pppppppbVar20 = (byte *******)&bStack_184;\n          iVar11 = -(int)pppppppbVar20;\n          ppppppbVar13 = (byte ******)&ppppppbStack_190;\n          ppppppbVar21 = (byte ******)(puVar14 + iVar11);\n          ppppppbVar7 = (byte ******)(*(code *)PTR_mbrtowc_004bf2ec)();\n          if ((byte ******)(puVar14 + iVar11) == ppppppbVar7) {\n            pppppppbVar20 = (byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190);\n            ppppppbVar21 = &pppppbStack_18c;\n            ppppppbVar13 = (byte ******)&bStack_184;\n            iVar11 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar11 != -1) {\n              *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n            }\n          }\n        }\n      }\n      else {\n        pppppppbVar20 = (byte *******)&DAT_00000006;\n        if (ppppppbVar13 == (byte ******)0x3) {\n          iStack_1ac = 0;\n          iVar11 = 0;\n          do {\n            uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac);\n            uVar30 = 0;\n            iVar24 = iVar11;\n            do {\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            } while (uVar30 != 0x20);\n            iVar11 = iVar11 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar11 != 0x100);\n        }\n        else if (ppppppbVar13 == (byte ******)&DAT_00000006) {\n          pppbVar25 = *ppppbVar5;\n          if (((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))) {\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }\n          else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }\n          if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }\n        }\n      }" if (parenthesized_expression "(ppppppbVar13 == (byte ******)&DAT_00000001)" ( (binary_expression "ppppppbVar13 == (byte ******)&DAT_00000001" identifier == (cast_expression "(byte ******)&DAT_00000001" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (pointer_expression "&DAT_00000001" & identifier))) )) (compound_statement "{\n        uVar30 = (uint)*(byte *)ppppbVar5;\n        *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        if (uVar29 != 0) {\n          if (uVar30 + 0x80 < 0x180) {\n            piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n          }\n          *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        }\n        if (((int)ppppppbVar6[3] << 9 < 0) &&\n           (ppppppbVar13 = ppppppbVar7, 1 < (int)pppppbVar31[0x17])) {\n          bStack_184 = *(byte *)(*pppppbVar31 + (int)pppppbVar23 * 2);\n          if ((byte ****)((int)pppppbVar23 + 1U) < pppppbVar31[2]) {\n            ppppbVar5 = (byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2));\n            ppppppbVar7 = ppppppbVar7 + 4;\n            if (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400) {\n              puVar15 = auStack_183;\n              do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar14 = auStack_183;\n            }\n          }\n          else {\n            puVar14 = auStack_183;\n          }\n          pppppbStack_18c = (byte *****)0x0;\n          uStack_188 = 0;\n          pppppppbVar20 = (byte *******)&bStack_184;\n          iVar11 = -(int)pppppppbVar20;\n          ppppppbVar13 = (byte ******)&ppppppbStack_190;\n          ppppppbVar21 = (byte ******)(puVar14 + iVar11);\n          ppppppbVar7 = (byte ******)(*(code *)PTR_mbrtowc_004bf2ec)();\n          if ((byte ******)(puVar14 + iVar11) == ppppppbVar7) {\n            pppppppbVar20 = (byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190);\n            ppppppbVar21 = &pppppbStack_18c;\n            ppppppbVar13 = (byte ******)&bStack_184;\n            iVar11 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar11 != -1) {\n              *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n            }\n          }\n        }\n      }" { (expression_statement "uVar30 = (uint)*(byte *)ppppbVar5;" (assignment_expression "uVar30 = (uint)*(byte *)ppppbVar5" identifier = (binary_expression "(uint)*(byte *)ppppbVar5" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)ppppbVar5" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;" (assignment_expression "*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1" (pointer_expression "*(undefined1 *)((int)ppppppbVar22 + uVar30)" * (cast_expression "(undefined1 *)((int)ppppppbVar22 + uVar30)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppbVar22 + uVar30)" ( (binary_expression "(int)ppppppbVar22 + uVar30" (cast_expression "(int)ppppppbVar22" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (if_statement "if (uVar29 != 0) {\n          if (uVar30 + 0x80 < 0x180) {\n            piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n          }\n          *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        }" if (parenthesized_expression "(uVar29 != 0)" ( (binary_expression "uVar29 != 0" identifier != number_literal) )) (compound_statement "{\n          if (uVar30 + 0x80 < 0x180) {\n            piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n          }\n          *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        }" { (if_statement "if (uVar30 + 0x80 < 0x180) {\n            piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n          }" if (parenthesized_expression "(uVar30 + 0x80 < 0x180)" ( (binary_expression "uVar30 + 0x80 < 0x180" (binary_expression "uVar30 + 0x80" identifier + number_literal) < number_literal) )) (compound_statement "{\n            piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n          }" { (expression_statement "piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();" (assignment_expression "piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_tolower_loc_004bf16c)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_004bf16c)" ( (pointer_expression "*(code *)PTR___ctype_tolower_loc_004bf16c" * (cast_expression "(code *)PTR___ctype_tolower_loc_004bf16c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar30 = *(uint *)(*piVar9 + uVar30 * 4);" (assignment_expression "uVar30 = *(uint *)(*piVar9 + uVar30 * 4)" identifier = (pointer_expression "*(uint *)(*piVar9 + uVar30 * 4)" * (cast_expression "(uint *)(*piVar9 + uVar30 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar9 + uVar30 * 4)" ( (binary_expression "*piVar9 + uVar30 * 4" (pointer_expression "*piVar9" * identifier) + (binary_expression "uVar30 * 4" identifier * number_literal)) ))))) ;) })) (expression_statement "*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;" (assignment_expression "*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1" (pointer_expression "*(undefined1 *)((int)ppppppbVar22 + uVar30)" * (cast_expression "(undefined1 *)((int)ppppppbVar22 + uVar30)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppbVar22 + uVar30)" ( (binary_expression "(int)ppppppbVar22 + uVar30" (cast_expression "(int)ppppppbVar22" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) })) (if_statement "if (((int)ppppppbVar6[3] << 9 < 0) &&\n           (ppppppbVar13 = ppppppbVar7, 1 < (int)pppppbVar31[0x17])) {\n          bStack_184 = *(byte *)(*pppppbVar31 + (int)pppppbVar23 * 2);\n          if ((byte ****)((int)pppppbVar23 + 1U) < pppppbVar31[2]) {\n            ppppbVar5 = (byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2));\n            ppppppbVar7 = ppppppbVar7 + 4;\n            if (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400) {\n              puVar15 = auStack_183;\n              do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar14 = auStack_183;\n            }\n          }\n          else {\n            puVar14 = auStack_183;\n          }\n          pppppbStack_18c = (byte *****)0x0;\n          uStack_188 = 0;\n          pppppppbVar20 = (byte *******)&bStack_184;\n          iVar11 = -(int)pppppppbVar20;\n          ppppppbVar13 = (byte ******)&ppppppbStack_190;\n          ppppppbVar21 = (byte ******)(puVar14 + iVar11);\n          ppppppbVar7 = (byte ******)(*(code *)PTR_mbrtowc_004bf2ec)();\n          if ((byte ******)(puVar14 + iVar11) == ppppppbVar7) {\n            pppppppbVar20 = (byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190);\n            ppppppbVar21 = &pppppbStack_18c;\n            ppppppbVar13 = (byte ******)&bStack_184;\n            iVar11 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar11 != -1) {\n              *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n            }\n          }\n        }" if (parenthesized_expression "(((int)ppppppbVar6[3] << 9 < 0) &&\n           (ppppppbVar13 = ppppppbVar7, 1 < (int)pppppbVar31[0x17]))" ( (binary_expression "((int)ppppppbVar6[3] << 9 < 0) &&\n           (ppppppbVar13 = ppppppbVar7, 1 < (int)pppppbVar31[0x17])" (parenthesized_expression "((int)ppppppbVar6[3] << 9 < 0)" ( (binary_expression "(int)ppppppbVar6[3] << 9 < 0" (binary_expression "(int)ppppppbVar6[3] << 9" (cast_expression "(int)ppppppbVar6[3]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppppppbVar6[3]" identifier [ number_literal ])) << number_literal) < number_literal) )) && (parenthesized_expression "(ppppppbVar13 = ppppppbVar7, 1 < (int)pppppbVar31[0x17])" ( (comma_expression "ppppppbVar13 = ppppppbVar7, 1 < (int)pppppbVar31[0x17]" (assignment_expression "ppppppbVar13 = ppppppbVar7" identifier = identifier) , (binary_expression "1 < (int)pppppbVar31[0x17]" number_literal < (cast_expression "(int)pppppbVar31[0x17]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppbVar31[0x17]" identifier [ number_literal ])))) ))) )) (compound_statement "{\n          bStack_184 = *(byte *)(*pppppbVar31 + (int)pppppbVar23 * 2);\n          if ((byte ****)((int)pppppbVar23 + 1U) < pppppbVar31[2]) {\n            ppppbVar5 = (byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2));\n            ppppppbVar7 = ppppppbVar7 + 4;\n            if (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400) {\n              puVar15 = auStack_183;\n              do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar14 = auStack_183;\n            }\n          }\n          else {\n            puVar14 = auStack_183;\n          }\n          pppppbStack_18c = (byte *****)0x0;\n          uStack_188 = 0;\n          pppppppbVar20 = (byte *******)&bStack_184;\n          iVar11 = -(int)pppppppbVar20;\n          ppppppbVar13 = (byte ******)&ppppppbStack_190;\n          ppppppbVar21 = (byte ******)(puVar14 + iVar11);\n          ppppppbVar7 = (byte ******)(*(code *)PTR_mbrtowc_004bf2ec)();\n          if ((byte ******)(puVar14 + iVar11) == ppppppbVar7) {\n            pppppppbVar20 = (byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190);\n            ppppppbVar21 = &pppppbStack_18c;\n            ppppppbVar13 = (byte ******)&bStack_184;\n            iVar11 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar11 != -1) {\n              *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n            }\n          }\n        }" { (expression_statement "bStack_184 = *(byte *)(*pppppbVar31 + (int)pppppbVar23 * 2);" (assignment_expression "bStack_184 = *(byte *)(*pppppbVar31 + (int)pppppbVar23 * 2)" identifier = (pointer_expression "*(byte *)(*pppppbVar31 + (int)pppppbVar23 * 2)" * (cast_expression "(byte *)(*pppppbVar31 + (int)pppppbVar23 * 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*pppppbVar31 + (int)pppppbVar23 * 2)" ( (binary_expression "*pppppbVar31 + (int)pppppbVar23 * 2" (pointer_expression "*pppppbVar31" * identifier) + (binary_expression "(int)pppppbVar23 * 2" (cast_expression "(int)pppppbVar23" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) (if_statement "if ((byte ****)((int)pppppbVar23 + 1U) < pppppbVar31[2]) {\n            ppppbVar5 = (byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2));\n            ppppppbVar7 = ppppppbVar7 + 4;\n            if (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400) {\n              puVar15 = auStack_183;\n              do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar14 = auStack_183;\n            }\n          }\n          else {\n            puVar14 = auStack_183;\n          }" if (parenthesized_expression "((byte ****)((int)pppppbVar23 + 1U) < pppppbVar31[2])" ( (binary_expression "(byte ****)((int)pppppbVar23 + 1U) < pppppbVar31[2]" (cast_expression "(byte ****)((int)pppppbVar23 + 1U)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)pppppbVar23 + 1U)" ( (binary_expression "(int)pppppbVar23 + 1U" (cast_expression "(int)pppppbVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) < (subscript_expression "pppppbVar31[2]" identifier [ number_literal ])) )) (compound_statement "{\n            ppppbVar5 = (byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2));\n            ppppppbVar7 = ppppppbVar7 + 4;\n            if (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400) {\n              puVar15 = auStack_183;\n              do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar14 = auStack_183;\n            }\n          }" { (expression_statement "ppppbVar5 = (byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2));" (assignment_expression "ppppbVar5 = (byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2))" identifier = (cast_expression "(byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2))" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)ppppppbVar7 + (int)(*pppppbVar31 + 2))" ( (binary_expression "(int)ppppppbVar7 + (int)(*pppppbVar31 + 2)" (cast_expression "(int)ppppppbVar7" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(*pppppbVar31 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(*pppppbVar31 + 2)" ( (binary_expression "*pppppbVar31 + 2" (pointer_expression "*pppppbVar31" * identifier) + number_literal) )))) )))) ;) (expression_statement "ppppppbVar7 = ppppppbVar7 + 4;" (assignment_expression "ppppppbVar7 = ppppppbVar7 + 4" identifier = (binary_expression "ppppppbVar7 + 4" identifier + number_literal)) ;) (if_statement "if (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400) {\n              puVar15 = auStack_183;\n              do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar14 = auStack_183;\n            }" if (parenthesized_expression "(((uint)ppppbVar5[1] & 0xff000400) == 0x1000400)" ( (binary_expression "((uint)ppppbVar5[1] & 0xff000400) == 0x1000400" (parenthesized_expression "((uint)ppppbVar5[1] & 0xff000400)" ( (binary_expression "(uint)ppppbVar5[1] & 0xff000400" (cast_expression "(uint)ppppbVar5[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppppbVar5[1]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (compound_statement "{\n              puVar15 = auStack_183;\n              do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);\n            }" { (expression_statement "puVar15 = auStack_183;" (assignment_expression "puVar15 = auStack_183" identifier = identifier) ;) (do_statement "do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);" do (compound_statement "{\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              }" { (expression_statement "puVar14 = puVar15 + 1;" (assignment_expression "puVar14 = puVar15 + 1" identifier = (binary_expression "puVar15 + 1" identifier + number_literal)) ;) (expression_statement "*puVar15 = *(undefined1 *)ppppbVar5;" (assignment_expression "*puVar15 = *(undefined1 *)ppppbVar5" (pointer_expression "*puVar15" * identifier) = (pointer_expression "*(undefined1 *)ppppbVar5" * (cast_expression "(undefined1 *)ppppbVar5" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;" if (parenthesized_expression "(pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184))" ( (binary_expression "pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)" (subscript_expression "pppppbVar31[2]" identifier [ number_literal ]) <= (binary_expression "puVar14 + ((int)pppppbVar23 - (int)&bStack_184)" identifier + (parenthesized_expression "((int)pppppbVar23 - (int)&bStack_184)" ( (binary_expression "(int)pppppbVar23 - (int)&bStack_184" (cast_expression "(int)pppppbVar23" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)&bStack_184" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&bStack_184" & identifier))) )))) )) (break_statement "break;" break ;)) (expression_statement "ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);" (assignment_expression "ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7)" identifier = (cast_expression "(byte ****)((int)*pppppbVar31 + (int)ppppppbVar7)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)*pppppbVar31 + (int)ppppppbVar7)" ( (binary_expression "(int)*pppppbVar31 + (int)ppppppbVar7" (cast_expression "(int)*pppppbVar31" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pppppbVar31" * identifier)) + (cast_expression "(int)ppppppbVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "ppppppbVar7 = ppppppbVar7 + 2;" (assignment_expression "ppppppbVar7 = ppppppbVar7 + 2" identifier = (binary_expression "ppppppbVar7 + 2" identifier + number_literal)) ;) (expression_statement "puVar15 = puVar14;" (assignment_expression "puVar15 = puVar14" identifier = identifier) ;) }) while (parenthesized_expression "(((uint)ppppbVar5[1] & 0xff000400) == 0x1000400)" ( (binary_expression "((uint)ppppbVar5[1] & 0xff000400) == 0x1000400" (parenthesized_expression "((uint)ppppbVar5[1] & 0xff000400)" ( (binary_expression "(uint)ppppbVar5[1] & 0xff000400" (cast_expression "(uint)ppppbVar5[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppppbVar5[1]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) ;) }) (else_clause "else {\n              puVar14 = auStack_183;\n            }" else (compound_statement "{\n              puVar14 = auStack_183;\n            }" { (expression_statement "puVar14 = auStack_183;" (assignment_expression "puVar14 = auStack_183" identifier = identifier) ;) }))) }) (else_clause "else {\n            puVar14 = auStack_183;\n          }" else (compound_statement "{\n            puVar14 = auStack_183;\n          }" { (expression_statement "puVar14 = auStack_183;" (assignment_expression "puVar14 = auStack_183" identifier = identifier) ;) }))) (expression_statement "pppppbStack_18c = (byte *****)0x0;" (assignment_expression "pppppbStack_18c = (byte *****)0x0" identifier = (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (expression_statement "uStack_188 = 0;" (assignment_expression "uStack_188 = 0" identifier = number_literal) ;) (expression_statement "pppppppbVar20 = (byte *******)&bStack_184;" (assignment_expression "pppppppbVar20 = (byte *******)&bStack_184" identifier = (cast_expression "(byte *******)&bStack_184" ( (type_descriptor "byte *******" 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 "&bStack_184" & identifier))) ;) (expression_statement "iVar11 = -(int)pppppppbVar20;" (assignment_expression "iVar11 = -(int)pppppppbVar20" identifier = (unary_expression "-(int)pppppppbVar20" - (cast_expression "(int)pppppppbVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "ppppppbVar13 = (byte ******)&ppppppbStack_190;" (assignment_expression "ppppppbVar13 = (byte ******)&ppppppbStack_190" identifier = (cast_expression "(byte ******)&ppppppbStack_190" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (pointer_expression "&ppppppbStack_190" & identifier))) ;) (expression_statement "ppppppbVar21 = (byte ******)(puVar14 + iVar11);" (assignment_expression "ppppppbVar21 = (byte ******)(puVar14 + iVar11)" identifier = (cast_expression "(byte ******)(puVar14 + iVar11)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(puVar14 + iVar11)" ( (binary_expression "puVar14 + iVar11" identifier + identifier) )))) ;) (expression_statement "ppppppbVar7 = (byte ******)(*(code *)PTR_mbrtowc_004bf2ec)();" (assignment_expression "ppppppbVar7 = (byte ******)(*(code *)PTR_mbrtowc_004bf2ec)()" identifier = (cast_expression "(byte ******)(*(code *)PTR_mbrtowc_004bf2ec)()" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(*(code *)PTR_mbrtowc_004bf2ec)()" (parenthesized_expression "(*(code *)PTR_mbrtowc_004bf2ec)" ( (pointer_expression "*(code *)PTR_mbrtowc_004bf2ec" * (cast_expression "(code *)PTR_mbrtowc_004bf2ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (if_statement "if ((byte ******)(puVar14 + iVar11) == ppppppbVar7) {\n            pppppppbVar20 = (byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190);\n            ppppppbVar21 = &pppppbStack_18c;\n            ppppppbVar13 = (byte ******)&bStack_184;\n            iVar11 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar11 != -1) {\n              *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n            }\n          }" if (parenthesized_expression "((byte ******)(puVar14 + iVar11) == ppppppbVar7)" ( (binary_expression "(byte ******)(puVar14 + iVar11) == ppppppbVar7" (cast_expression "(byte ******)(puVar14 + iVar11)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(puVar14 + iVar11)" ( (binary_expression "puVar14 + iVar11" identifier + identifier) ))) == identifier) )) (compound_statement "{\n            pppppppbVar20 = (byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190);\n            ppppppbVar21 = &pppppbStack_18c;\n            ppppppbVar13 = (byte ******)&bStack_184;\n            iVar11 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar11 != -1) {\n              *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n            }\n          }" { (expression_statement "pppppppbVar20 = (byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190);" (assignment_expression "pppppppbVar20 = (byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190)" identifier = (cast_expression "(byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190)" ( (type_descriptor "byte *******" 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 "(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190)" (parenthesized_expression "(*(code *)PTR_towlower_004bf37c)" ( (pointer_expression "*(code *)PTR_towlower_004bf37c" * (cast_expression "(code *)PTR_towlower_004bf37c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppppppbStack_190)" ( identifier ))))) ;) (expression_statement "ppppppbVar21 = &pppppbStack_18c;" (assignment_expression "ppppppbVar21 = &pppppbStack_18c" identifier = (pointer_expression "&pppppbStack_18c" & identifier)) ;) (expression_statement "ppppppbVar13 = (byte ******)&bStack_184;" (assignment_expression "ppppppbVar13 = (byte ******)&bStack_184" identifier = (cast_expression "(byte ******)&bStack_184" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (pointer_expression "&bStack_184" & identifier))) ;) (expression_statement "iVar11 = (*(code *)PTR_wcrtomb_004bf3dc)();" (assignment_expression "iVar11 = (*(code *)PTR_wcrtomb_004bf3dc)()" identifier = (call_expression "(*(code *)PTR_wcrtomb_004bf3dc)()" (parenthesized_expression "(*(code *)PTR_wcrtomb_004bf3dc)" ( (pointer_expression "*(code *)PTR_wcrtomb_004bf3dc" * (cast_expression "(code *)PTR_wcrtomb_004bf3dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar11 != -1) {\n              *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n            }" if (parenthesized_expression "(iVar11 != -1)" ( (binary_expression "iVar11 != -1" identifier != number_literal) )) (compound_statement "{\n              *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n            }" { (expression_statement "*(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;" (assignment_expression "*(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1" (pointer_expression "*(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184)" * (cast_expression "(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppbVar22 + (uint)bStack_184)" ( (binary_expression "(int)ppppppbVar22 + (uint)bStack_184" (cast_expression "(int)ppppppbVar22" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(uint)bStack_184" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) = number_literal) ;) })) })) })) }) (else_clause "else {\n        pppppppbVar20 = (byte *******)&DAT_00000006;\n        if (ppppppbVar13 == (byte ******)0x3) {\n          iStack_1ac = 0;\n          iVar11 = 0;\n          do {\n            uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac);\n            uVar30 = 0;\n            iVar24 = iVar11;\n            do {\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            } while (uVar30 != 0x20);\n            iVar11 = iVar11 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar11 != 0x100);\n        }\n        else if (ppppppbVar13 == (byte ******)&DAT_00000006) {\n          pppbVar25 = *ppppbVar5;\n          if (((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))) {\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }\n          else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }\n          if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }\n        }\n      }" else (compound_statement "{\n        pppppppbVar20 = (byte *******)&DAT_00000006;\n        if (ppppppbVar13 == (byte ******)0x3) {\n          iStack_1ac = 0;\n          iVar11 = 0;\n          do {\n            uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac);\n            uVar30 = 0;\n            iVar24 = iVar11;\n            do {\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            } while (uVar30 != 0x20);\n            iVar11 = iVar11 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar11 != 0x100);\n        }\n        else if (ppppppbVar13 == (byte ******)&DAT_00000006) {\n          pppbVar25 = *ppppbVar5;\n          if (((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))) {\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }\n          else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }\n          if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }\n        }\n      }" { (expression_statement "pppppppbVar20 = (byte *******)&DAT_00000006;" (assignment_expression "pppppppbVar20 = (byte *******)&DAT_00000006" identifier = (cast_expression "(byte *******)&DAT_00000006" ( (type_descriptor "byte *******" 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 "&DAT_00000006" & identifier))) ;) (if_statement "if (ppppppbVar13 == (byte ******)0x3) {\n          iStack_1ac = 0;\n          iVar11 = 0;\n          do {\n            uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac);\n            uVar30 = 0;\n            iVar24 = iVar11;\n            do {\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            } while (uVar30 != 0x20);\n            iVar11 = iVar11 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar11 != 0x100);\n        }\n        else if (ppppppbVar13 == (byte ******)&DAT_00000006) {\n          pppbVar25 = *ppppbVar5;\n          if (((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))) {\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }\n          else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }\n          if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }\n        }" if (parenthesized_expression "(ppppppbVar13 == (byte ******)0x3)" ( (binary_expression "ppppppbVar13 == (byte ******)0x3" identifier == (cast_expression "(byte ******)0x3" ( (type_descriptor "byte ******" 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          iStack_1ac = 0;\n          iVar11 = 0;\n          do {\n            uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac);\n            uVar30 = 0;\n            iVar24 = iVar11;\n            do {\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            } while (uVar30 != 0x20);\n            iVar11 = iVar11 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar11 != 0x100);\n        }" { (expression_statement "iStack_1ac = 0;" (assignment_expression "iStack_1ac = 0" identifier = number_literal) ;) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n            uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac);\n            uVar30 = 0;\n            iVar24 = iVar11;\n            do {\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            } while (uVar30 != 0x20);\n            iVar11 = iVar11 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar11 != 0x100);" do (compound_statement "{\n            uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac);\n            uVar30 = 0;\n            iVar24 = iVar11;\n            do {\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            } while (uVar30 != 0x20);\n            iVar11 = iVar11 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          }" { (expression_statement "uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac);" (assignment_expression "uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac)" identifier = (pointer_expression "*(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac)" * (cast_expression "(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac)" ( (binary_expression "(int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac" (cast_expression "(int)(*pppppbVar31)[(int)pppppbVar23 * 2]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "(*pppppbVar31)[(int)pppppbVar23 * 2]" (parenthesized_expression "(*pppppbVar31)" ( (pointer_expression "*pppppbVar31" * identifier) )) [ (binary_expression "(int)pppppbVar23 * 2" (cast_expression "(int)pppppbVar23" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ])) + identifier) ))))) ;) (expression_statement "uVar30 = 0;" (assignment_expression "uVar30 = 0" identifier = number_literal) ;) (expression_statement "iVar24 = iVar11;" (assignment_expression "iVar24 = iVar11" identifier = identifier) ;) (do_statement "do {\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            } while (uVar30 != 0x20);" do (compound_statement "{\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            }" { (if_statement "if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }" if (parenthesized_expression "(((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0))" ( (binary_expression "((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)" (parenthesized_expression "((uVar27 >> (uVar30 & 0x1f) & 1) != 0)" ( (binary_expression "(uVar27 >> (uVar30 & 0x1f) & 1) != 0" (parenthesized_expression "(uVar27 >> (uVar30 & 0x1f) & 1)" ( (binary_expression "uVar27 >> (uVar30 & 0x1f) & 1" (binary_expression "uVar27 >> (uVar30 & 0x1f)" identifier >> (parenthesized_expression "(uVar30 & 0x1f)" ( (binary_expression "uVar30 & 0x1f" identifier & number_literal) ))) & number_literal) )) != number_literal) )) && (parenthesized_expression "(*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)" ( (comma_expression "*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0" (assignment_expression "*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1" (pointer_expression "*(undefined1 *)((int)ppppppbVar22 + iVar24)" * (cast_expression "(undefined1 *)((int)ppppppbVar22 + iVar24)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppbVar22 + iVar24)" ( (binary_expression "(int)ppppppbVar22 + iVar24" (cast_expression "(int)ppppppbVar22" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) , (binary_expression "uVar29 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }" { (expression_statement "iVar8 = iVar24;" (assignment_expression "iVar8 = iVar24" identifier = identifier) ;) (if_statement "if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }" if (parenthesized_expression "(iVar24 + 0x80U < 0x180)" ( (binary_expression "iVar24 + 0x80U < 0x180" (binary_expression "iVar24 + 0x80U" identifier + number_literal) < number_literal) )) (compound_statement "{\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }" { (expression_statement "piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();" (assignment_expression "piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_tolower_loc_004bf16c)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_004bf16c)" ( (pointer_expression "*(code *)PTR___ctype_tolower_loc_004bf16c" * (cast_expression "(code *)PTR___ctype_tolower_loc_004bf16c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);" (assignment_expression "iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4)" identifier = (pointer_expression "*(int *)(*piVar9 + (uVar30 + iVar11) * 4)" * (cast_expression "(int *)(*piVar9 + (uVar30 + iVar11) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar9 + (uVar30 + iVar11) * 4)" ( (binary_expression "*piVar9 + (uVar30 + iVar11) * 4" (pointer_expression "*piVar9" * identifier) + (binary_expression "(uVar30 + iVar11) * 4" (parenthesized_expression "(uVar30 + iVar11)" ( (binary_expression "uVar30 + iVar11" identifier + identifier) )) * number_literal)) ))))) ;) })) (expression_statement "*(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;" (assignment_expression "*(undefined1 *)((int)ppppppbVar22 + iVar8) = 1" (pointer_expression "*(undefined1 *)((int)ppppppbVar22 + iVar8)" * (cast_expression "(undefined1 *)((int)ppppppbVar22 + iVar8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppbVar22 + iVar8)" ( (binary_expression "(int)ppppppbVar22 + iVar8" (cast_expression "(int)ppppppbVar22" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) })) (expression_statement "uVar30 = uVar30 + 1;" (assignment_expression "uVar30 = uVar30 + 1" identifier = (binary_expression "uVar30 + 1" identifier + number_literal)) ;) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar30 != 0x20)" ( (binary_expression "uVar30 != 0x20" identifier != number_literal) )) ;) (expression_statement "iVar11 = iVar11 + 0x20;" (assignment_expression "iVar11 = iVar11 + 0x20" identifier = (binary_expression "iVar11 + 0x20" identifier + number_literal)) ;) (expression_statement "iStack_1ac = iStack_1ac + 4;" (assignment_expression "iStack_1ac = iStack_1ac + 4" identifier = (binary_expression "iStack_1ac + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar11 != 0x100)" ( (binary_expression "iVar11 != 0x100" identifier != number_literal) )) ;) }) (else_clause "else if (ppppppbVar13 == (byte ******)&DAT_00000006) {\n          pppbVar25 = *ppppbVar5;\n          if (((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))) {\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }\n          else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }\n          if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }\n        }" else (if_statement "if (ppppppbVar13 == (byte ******)&DAT_00000006) {\n          pppbVar25 = *ppppbVar5;\n          if (((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))) {\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }\n          else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }\n          if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }\n        }" if (parenthesized_expression "(ppppppbVar13 == (byte ******)&DAT_00000006)" ( (binary_expression "ppppppbVar13 == (byte ******)&DAT_00000006" identifier == (cast_expression "(byte ******)&DAT_00000006" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (pointer_expression "&DAT_00000006" & identifier))) )) (compound_statement "{\n          pppbVar25 = *ppppbVar5;\n          if (((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))) {\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }\n          else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }\n        }" { (expression_statement "pppbVar25 = *ppppbVar5;" (assignment_expression "pppbVar25 = *ppppbVar5" identifier = (pointer_expression "*ppppbVar5" * identifier)) ;) (if_statement "if (((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))) {\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }\n          else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }" if (parenthesized_expression "(((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0))))" ( (binary_expression "((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))" (parenthesized_expression "((int)pppppbVar31[0x17] < 2)" ( (binary_expression "(int)pppppbVar31[0x17] < 2" (cast_expression "(int)pppppbVar31[0x17]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppbVar31[0x17]" identifier [ number_literal ])) < number_literal) )) || (parenthesized_expression "(((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))" ( (parenthesized_expression "((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0))" ( (binary_expression "(pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)" (parenthesized_expression "(pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4)))" ( (binary_expression "pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))" (binary_expression "pppbVar25[9] == (byte **)0x0" (subscript_expression "pppbVar25[9]" identifier [ number_literal ]) == (cast_expression "(byte **)0x0" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) && (parenthesized_expression "(-1 < *(char *)(pppbVar25 + 4))" ( (binary_expression "-1 < *(char *)(pppbVar25 + 4)" number_literal < (pointer_expression "*(char *)(pppbVar25 + 4)" * (cast_expression "(char *)(pppbVar25 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppbVar25 + 4)" ( (binary_expression "pppbVar25 + 4" identifier + number_literal) ))))) ))) )) && (parenthesized_expression "(pppbVar25[8] == (byte **)0x0)" ( (binary_expression "pppbVar25[8] == (byte **)0x0" (subscript_expression "pppbVar25[8]" identifier [ number_literal ]) == (cast_expression "(byte **)0x0" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ))) )) ))) )) (compound_statement "{\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }" if (parenthesized_expression "(0 < (int)pppbVar25[5])" ( (binary_expression "0 < (int)pppbVar25[5]" number_literal < (cast_expression "(int)pppbVar25[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppbVar25[5]" identifier [ number_literal ]))) )) (compound_statement "{\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }" { (do_statement "do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);" do (compound_statement "{\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              }" { (expression_statement "pppppbStack_18c = (byte *****)0x0;" (assignment_expression "pppppbStack_18c = (byte *****)0x0" identifier = (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (expression_statement "uStack_188 = 0;" (assignment_expression "uStack_188 = 0" identifier = number_literal) ;) (expression_statement "pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];" (assignment_expression "pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11]" identifier = (cast_expression "(byte *******)(*pppbVar25)[iVar11]" ( (type_descriptor "byte *******" 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 "(*pppbVar25)[iVar11]" (parenthesized_expression "(*pppbVar25)" ( (pointer_expression "*pppbVar25" * identifier) )) [ identifier ]))) ;) (expression_statement "ppppppbVar13 = (byte ******)&bStack_184;" (assignment_expression "ppppppbVar13 = (byte ******)&bStack_184" identifier = (cast_expression "(byte ******)&bStack_184" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (pointer_expression "&bStack_184" & identifier))) ;) (expression_statement "ppppppbVar21 = &pppppbStack_18c;" (assignment_expression "ppppppbVar21 = &pppppbStack_18c" identifier = (pointer_expression "&pppppbStack_18c" & identifier)) ;) (expression_statement "iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();" (assignment_expression "iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)()" identifier = (call_expression "(*(code *)PTR_wcrtomb_004bf3dc)()" (parenthesized_expression "(*(code *)PTR_wcrtomb_004bf3dc)" ( (pointer_expression "*(code *)PTR_wcrtomb_004bf3dc" * (cast_expression "(code *)PTR_wcrtomb_004bf3dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "uVar30 = (uint)bStack_184;" (assignment_expression "uVar30 = (uint)bStack_184" identifier = (cast_expression "(uint)bStack_184" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }" if (parenthesized_expression "((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   )" ( (binary_expression "(iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)" (parenthesized_expression "(iVar24 != -1)" ( (binary_expression "iVar24 != -1" identifier != number_literal) )) && (parenthesized_expression "(*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)" ( (comma_expression "*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0" (assignment_expression "*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1" (pointer_expression "*(undefined1 *)((int)ppppppbVar22 + uVar30)" * (cast_expression "(undefined1 *)((int)ppppppbVar22 + uVar30)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppbVar22 + uVar30)" ( (binary_expression "(int)ppppppbVar22 + uVar30" (cast_expression "(int)ppppppbVar22" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) , (binary_expression "uVar29 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }" { (if_statement "if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }" if (parenthesized_expression "(uVar30 + 0x80 < 0x180)" ( (binary_expression "uVar30 + 0x80 < 0x180" (binary_expression "uVar30 + 0x80" identifier + number_literal) < number_literal) )) (compound_statement "{\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }" { (expression_statement "piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();" (assignment_expression "piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_tolower_loc_004bf16c)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_004bf16c)" ( (pointer_expression "*(code *)PTR___ctype_tolower_loc_004bf16c" * (cast_expression "(code *)PTR___ctype_tolower_loc_004bf16c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar30 = *(uint *)(*piVar9 + uVar30 * 4);" (assignment_expression "uVar30 = *(uint *)(*piVar9 + uVar30 * 4)" identifier = (pointer_expression "*(uint *)(*piVar9 + uVar30 * 4)" * (cast_expression "(uint *)(*piVar9 + uVar30 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar9 + uVar30 * 4)" ( (binary_expression "*piVar9 + uVar30 * 4" (pointer_expression "*piVar9" * identifier) + (binary_expression "uVar30 * 4" identifier * number_literal)) ))))) ;) })) (expression_statement "*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;" (assignment_expression "*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1" (pointer_expression "*(undefined1 *)((int)ppppppbVar22 + uVar30)" * (cast_expression "(undefined1 *)((int)ppppppbVar22 + uVar30)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppbVar22 + uVar30)" ( (binary_expression "(int)ppppppbVar22 + uVar30" (cast_expression "(int)ppppppbVar22" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) })) (if_statement "if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }" if (parenthesized_expression "((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17]))" ( (binary_expression "(((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])" (parenthesized_expression "(((uint)ppppppbVar6[3] & 0x400000) != 0)" ( (binary_expression "((uint)ppppppbVar6[3] & 0x400000) != 0" (parenthesized_expression "((uint)ppppppbVar6[3] & 0x400000)" ( (binary_expression "(uint)ppppppbVar6[3] & 0x400000" (cast_expression "(uint)ppppppbVar6[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppppppbVar6[3]" identifier [ number_literal ])) & number_literal) )) != number_literal) )) && (parenthesized_expression "(1 < (int)pppppbVar31[0x17])" ( (binary_expression "1 < (int)pppppbVar31[0x17]" number_literal < (cast_expression "(int)pppppbVar31[0x17]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppbVar31[0x17]" identifier [ number_literal ]))) ))) )) (compound_statement "{\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }" { (expression_statement "pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);" (assignment_expression "pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11])" identifier = (cast_expression "(byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11])" ( (type_descriptor "byte *******" 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 "(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11])" (parenthesized_expression "(*(code *)PTR_towlower_004bf37c)" ( (pointer_expression "*(code *)PTR_towlower_004bf37c" * (cast_expression "(code *)PTR_towlower_004bf37c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((*pppbVar25)[iVar11])" ( (subscript_expression "(*pppbVar25)[iVar11]" (parenthesized_expression "(*pppbVar25)" ( (pointer_expression "*pppbVar25" * identifier) )) [ identifier ]) ))))) ;) (expression_statement "ppppppbVar13 = (byte ******)&bStack_184;" (assignment_expression "ppppppbVar13 = (byte ******)&bStack_184" identifier = (cast_expression "(byte ******)&bStack_184" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (pointer_expression "&bStack_184" & identifier))) ;) (expression_statement "ppppppbVar21 = &pppppbStack_18c;" (assignment_expression "ppppppbVar21 = &pppppbStack_18c" identifier = (pointer_expression "&pppppbStack_18c" & identifier)) ;) (expression_statement "iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();" (assignment_expression "iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)()" identifier = (call_expression "(*(code *)PTR_wcrtomb_004bf3dc)()" (parenthesized_expression "(*(code *)PTR_wcrtomb_004bf3dc)" ( (pointer_expression "*(code *)PTR_wcrtomb_004bf3dc" * (cast_expression "(code *)PTR_wcrtomb_004bf3dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }" if (parenthesized_expression "(iVar24 != -1)" ( (binary_expression "iVar24 != -1" identifier != number_literal) )) (compound_statement "{\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }" { (expression_statement "*(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;" (assignment_expression "*(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1" (pointer_expression "*(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184)" * (cast_expression "(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppbVar22 + (uint)bStack_184)" ( (binary_expression "(int)ppppppbVar22 + (uint)bStack_184" (cast_expression "(int)ppppppbVar22" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(uint)bStack_184" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) = number_literal) ;) })) })) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar11 < (int)pppbVar25[5])" ( (binary_expression "iVar11 < (int)pppbVar25[5]" identifier < (cast_expression "(int)pppbVar25[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppbVar25[5]" identifier [ number_literal ]))) )) ;) })) }) (else_clause "else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }" else (compound_statement "{\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }" { (expression_statement "ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);" (assignment_expression "ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff)" identifier = (cast_expression "(byte ******)((uint)ppppppbStack_190 & 0xffffff)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((uint)ppppppbStack_190 & 0xffffff)" ( (binary_expression "(uint)ppppppbStack_190 & 0xffffff" (cast_expression "(uint)ppppppbStack_190" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (do_statement "do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);" do (compound_statement "{\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            }" { (expression_statement "pppppbStack_18c = (byte *****)0x0;" (assignment_expression "pppppbStack_18c = (byte *****)0x0" identifier = (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (expression_statement "uStack_188 = 0;" (assignment_expression "uStack_188 = 0" identifier = number_literal) ;) (expression_statement "ppppppbVar21 = (byte ******)&DAT_00000001;" (assignment_expression "ppppppbVar21 = (byte ******)&DAT_00000001" identifier = (cast_expression "(byte ******)&DAT_00000001" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (pointer_expression "&DAT_00000001" & identifier))) ;) (expression_statement "ppppppbVar13 = (byte ******)0x0;" (assignment_expression "ppppppbVar13 = (byte ******)0x0" identifier = (cast_expression "(byte ******)0x0" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppbVar20 = &ppppppbStack_190;" (assignment_expression "pppppppbVar20 = &ppppppbStack_190" identifier = (pointer_expression "&ppppppbStack_190" & identifier)) ;) (expression_statement "iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();" (assignment_expression "iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)()" identifier = (call_expression "(*(code *)PTR_mbrtowc_004bf2ec)()" (parenthesized_expression "(*(code *)PTR_mbrtowc_004bf2ec)" ( (pointer_expression "*(code *)PTR_mbrtowc_004bf2ec" * (cast_expression "(code *)PTR_mbrtowc_004bf2ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }" if (parenthesized_expression "(iVar11 == -2)" ( (binary_expression "iVar11 == -2" identifier == number_literal) )) (compound_statement "{\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }" { (expression_statement "*(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;" (assignment_expression "*(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1" (pointer_expression "*(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_)" * (cast_expression "(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_)" ( (binary_expression "(int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_" (cast_expression "(int)ppppppbVar22" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(uint)ppppppbStack_190._0_1_" ( (type_descriptor "uint" type_identifier) ) (field_expression "ppppppbStack_190._0_1_" identifier . field_identifier))) )))) = number_literal) ;) })) (expression_statement "bVar1 = ppppppbStack_190._0_1_ != 0xff;" (assignment_expression "bVar1 = ppppppbStack_190._0_1_ != 0xff" identifier = (binary_expression "ppppppbStack_190._0_1_ != 0xff" (field_expression "ppppppbStack_190._0_1_" identifier . field_identifier) != number_literal)) ;) (expression_statement "ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);" (assignment_expression "ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_)" identifier = (cast_expression "(byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_)" identifier (argument_list "(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_)" ( (binary_expression "ppppppbStack_190._0_1_ + 1" (field_expression "ppppppbStack_190._0_1_" identifier . field_identifier) + number_literal) , (field_expression "ppppppbStack_190._1_3_" identifier . field_identifier) ))))) ;) }) while (parenthesized_expression "(bVar1)" ( identifier )) ;) }))) }) (else_clause "else {\n          if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }\n          if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }\n        }" else (compound_statement "{\n          if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }\n          if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }\n        }" { (if_statement "if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }" if (parenthesized_expression "(((uint)ppppppbVar13 & 0xfd) == 5)" ( (binary_expression "((uint)ppppppbVar13 & 0xfd) == 5" (parenthesized_expression "((uint)ppppppbVar13 & 0xfd)" ( (binary_expression "(uint)ppppppbVar13 & 0xfd" (cast_expression "(uint)ppppppbVar13" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }" { (expression_statement "ppppppbVar21 = (byte ******)0x100;" (assignment_expression "ppppppbVar21 = (byte ******)0x100" identifier = (cast_expression "(byte ******)0x100" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppbVar20 = (byte *******)&DAT_00000001;" (assignment_expression "pppppppbVar20 = (byte *******)&DAT_00000001" identifier = (cast_expression "(byte *******)&DAT_00000001" ( (type_descriptor "byte *******" 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 "&DAT_00000001" & identifier))) ;) (expression_statement "(*(code *)PTR_memset_004bf260)();" (call_expression "(*(code *)PTR_memset_004bf260)()" (parenthesized_expression "(*(code *)PTR_memset_004bf260)" ( (pointer_expression "*(code *)PTR_memset_004bf260" * (cast_expression "(code *)PTR_memset_004bf260" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "ppppppbVar13 = ppppppbVar22;" (assignment_expression "ppppppbVar13 = ppppppbVar22" identifier = identifier) ;) (break_statement "break;" break ;) })) (if_statement "if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }" if (parenthesized_expression "(ppppppbVar13 == (byte ******)0x2)" ( (binary_expression "ppppppbVar13 == (byte ******)0x2" identifier == (cast_expression "(byte ******)0x2" ( (type_descriptor "byte ******" 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            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }" { (expression_statement "ppppppbVar21 = (byte ******)0x100;" (assignment_expression "ppppppbVar21 = (byte ******)0x100" identifier = (cast_expression "(byte ******)0x100" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) number_literal)) ;) (expression_statement "pppppppbVar20 = (byte *******)&DAT_00000001;" (assignment_expression "pppppppbVar20 = (byte *******)&DAT_00000001" identifier = (cast_expression "(byte *******)&DAT_00000001" ( (type_descriptor "byte *******" 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 "&DAT_00000001" & identifier))) ;) (expression_statement "(*(code *)PTR_memset_004bf260)(ppppppbVar22);" (call_expression "(*(code *)PTR_memset_004bf260)(ppppppbVar22)" (parenthesized_expression "(*(code *)PTR_memset_004bf260)" ( (pointer_expression "*(code *)PTR_memset_004bf260" * (cast_expression "(code *)PTR_memset_004bf260" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppppppbVar22)" ( identifier ))) ;) (expression_statement "*(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;" (assignment_expression "*(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80" (pointer_expression "*(byte *)(ppppppbVar6 + 7)" * (cast_expression "(byte *)(ppppppbVar6 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppbVar6 + 7)" ( (binary_expression "ppppppbVar6 + 7" identifier + number_literal) )))) = (binary_expression "*(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80" (binary_expression "*(byte *)(ppppppbVar6 + 7) & 0x7f" (pointer_expression "*(byte *)(ppppppbVar6 + 7)" * (cast_expression "(byte *)(ppppppbVar6 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppbVar6 + 7)" ( (binary_expression "ppppppbVar6 + 7" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "ppppppbVar13 = ppppppbVar6;" (assignment_expression "ppppppbVar13 = ppppppbVar6" identifier = identifier) ;) (break_statement "break;" break ;) })) }))))) }))) (expression_statement "iStack_1a8 = iStack_1a8 + 1;" (assignment_expression "iStack_1a8 = iStack_1a8 + 1" identifier = (binary_expression "iStack_1a8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iStack_1a8 < (int)pppppppbVar18[2])" ( (binary_expression "iStack_1a8 < (int)pppppppbVar18[2]" identifier < (cast_expression "(int)pppppppbVar18[2]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "pppppppbVar18[2]" identifier [ number_literal ]))) )) ;) })) (if_statement "if (ppppbStack_84 == *(byte *****)PTR___stack_chk_guard_004bf38c) {\n    return *(byte *****)PTR___stack_chk_guard_004bf38c;\n  }" if (parenthesized_expression "(ppppbStack_84 == *(byte *****)PTR___stack_chk_guard_004bf38c)" ( (binary_expression "ppppbStack_84 == *(byte *****)PTR___stack_chk_guard_004bf38c" identifier == (pointer_expression "*(byte *****)PTR___stack_chk_guard_004bf38c" * (cast_expression "(byte *****)PTR___stack_chk_guard_004bf38c" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier))) )) (compound_statement "{\n    return *(byte *****)PTR___stack_chk_guard_004bf38c;\n  }" { (return_statement "return *(byte *****)PTR___stack_chk_guard_004bf38c;" return (pointer_expression "*(byte *****)PTR___stack_chk_guard_004bf38c" * (cast_expression "(byte *****)PTR___stack_chk_guard_004bf38c" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_004bf34c)();" (call_expression "(*(code *)PTR___stack_chk_fail_004bf34c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_004bf34c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_004bf34c" * (cast_expression "(code *)PTR___stack_chk_fail_004bf34c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "pppppbVar31 = ppppppbVar21[1];" (assignment_expression "pppppbVar31 = ppppppbVar21[1]" identifier = (subscript_expression "ppppppbVar21[1]" identifier [ number_literal ])) ;) (if_statement "if (pppppbVar31 == (byte *****)0x0) {\n    *ppppppbVar13 = (byte *****)0x0;\n  }\n  else {\n    if (0 < (int)pppppbVar31) {\n      pppppbVar23 = ppppppbVar21[2];\n      pppppbVar26 = pppppbVar23 + (int)pppppbVar31;\n      do {\n        ppppbVar5 = *pppppbVar23;\n        pppppbVar23 = pppppbVar23 + 1;\n        pppppbVar31 = (byte *****)((int)pppppbVar31 + (int)ppppbVar5);\n      } while (pppppbVar23 != pppppbVar26);\n    }\n    pppppbVar23 = pppppppbVar20[8][((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3];\n    if (0 < (int)pppppbVar23) {\n      pppppbVar26 = (pppppppbVar20[8] + ((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3)[2];\n      pppppbVar28 = (byte *****)0x0;\n      do {\n        ppppbVar5 = *pppppbVar26;\n        if ((pppppbVar31 == (byte *****)*ppppbVar5) &&\n           (iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21), iVar11 != 0)) {\n          return ppppbVar5;\n        }\n        pppppbVar28 = (byte *****)((int)pppppbVar28 + 1);\n        pppppbVar26 = pppppbVar26 + 1;\n      } while (pppppbVar23 != pppppbVar28);\n    }\n    ppppbVar5 = (byte ****)(*(code *)PTR_calloc_004bf160)(0x38,1);\n    if (ppppbVar5 != (byte ****)0x0) {\n      iVar11 = FUN_0048c08c(ppppbVar5 + 1,ppppppbVar21);\n      if (iVar11 == 0) {\n        ppppbVar5[10] = (byte ***)(ppppbVar5 + 1);\n        if (0 < (int)ppppppbVar21[1]) {\n          ppppppbVar22 = *pppppppbVar20;\n          pppppbVar23 = ppppppbVar21[2];\n          pppppbVar26 = pppppbVar23 + (int)ppppppbVar21[1];\n          do {\n            ppppbVar10 = *pppppbVar23;\n            cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1);\n            if (cVar2 == '\x01') {\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }\n            pppppbVar23 = pppppbVar23 + 1;\n          } while (pppppbVar23 != pppppbVar26);\n        }\n        iVar11 = FUN_0048b6d0(pppppppbVar20,ppppbVar5,pppppbVar31);\n        if (iVar11 == 0) {\n          return ppppbVar5;\n        }\n        FUN_0048e3e8(ppppbVar5);\n      }\n      else {\n        (*(code *)PTR_free_004bf39c)(ppppbVar5);\n      }\n    }\n    *ppppppbVar13 = (byte *****)0xc;\n  }" if (parenthesized_expression "(pppppbVar31 == (byte *****)0x0)" ( (binary_expression "pppppbVar31 == (byte *****)0x0" identifier == (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\n    *ppppppbVar13 = (byte *****)0x0;\n  }" { (expression_statement "*ppppppbVar13 = (byte *****)0x0;" (assignment_expression "*ppppppbVar13 = (byte *****)0x0" (pointer_expression "*ppppppbVar13" * identifier) = (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) }) (else_clause "else {\n    if (0 < (int)pppppbVar31) {\n      pppppbVar23 = ppppppbVar21[2];\n      pppppbVar26 = pppppbVar23 + (int)pppppbVar31;\n      do {\n        ppppbVar5 = *pppppbVar23;\n        pppppbVar23 = pppppbVar23 + 1;\n        pppppbVar31 = (byte *****)((int)pppppbVar31 + (int)ppppbVar5);\n      } while (pppppbVar23 != pppppbVar26);\n    }\n    pppppbVar23 = pppppppbVar20[8][((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3];\n    if (0 < (int)pppppbVar23) {\n      pppppbVar26 = (pppppppbVar20[8] + ((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3)[2];\n      pppppbVar28 = (byte *****)0x0;\n      do {\n        ppppbVar5 = *pppppbVar26;\n        if ((pppppbVar31 == (byte *****)*ppppbVar5) &&\n           (iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21), iVar11 != 0)) {\n          return ppppbVar5;\n        }\n        pppppbVar28 = (byte *****)((int)pppppbVar28 + 1);\n        pppppbVar26 = pppppbVar26 + 1;\n      } while (pppppbVar23 != pppppbVar28);\n    }\n    ppppbVar5 = (byte ****)(*(code *)PTR_calloc_004bf160)(0x38,1);\n    if (ppppbVar5 != (byte ****)0x0) {\n      iVar11 = FUN_0048c08c(ppppbVar5 + 1,ppppppbVar21);\n      if (iVar11 == 0) {\n        ppppbVar5[10] = (byte ***)(ppppbVar5 + 1);\n        if (0 < (int)ppppppbVar21[1]) {\n          ppppppbVar22 = *pppppppbVar20;\n          pppppbVar23 = ppppppbVar21[2];\n          pppppbVar26 = pppppbVar23 + (int)ppppppbVar21[1];\n          do {\n            ppppbVar10 = *pppppbVar23;\n            cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1);\n            if (cVar2 == '\x01') {\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }\n            pppppbVar23 = pppppbVar23 + 1;\n          } while (pppppbVar23 != pppppbVar26);\n        }\n        iVar11 = FUN_0048b6d0(pppppppbVar20,ppppbVar5,pppppbVar31);\n        if (iVar11 == 0) {\n          return ppppbVar5;\n        }\n        FUN_0048e3e8(ppppbVar5);\n      }\n      else {\n        (*(code *)PTR_free_004bf39c)(ppppbVar5);\n      }\n    }\n    *ppppppbVar13 = (byte *****)0xc;\n  }" else (compound_statement "{\n    if (0 < (int)pppppbVar31) {\n      pppppbVar23 = ppppppbVar21[2];\n      pppppbVar26 = pppppbVar23 + (int)pppppbVar31;\n      do {\n        ppppbVar5 = *pppppbVar23;\n        pppppbVar23 = pppppbVar23 + 1;\n        pppppbVar31 = (byte *****)((int)pppppbVar31 + (int)ppppbVar5);\n      } while (pppppbVar23 != pppppbVar26);\n    }\n    pppppbVar23 = pppppppbVar20[8][((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3];\n    if (0 < (int)pppppbVar23) {\n      pppppbVar26 = (pppppppbVar20[8] + ((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3)[2];\n      pppppbVar28 = (byte *****)0x0;\n      do {\n        ppppbVar5 = *pppppbVar26;\n        if ((pppppbVar31 == (byte *****)*ppppbVar5) &&\n           (iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21), iVar11 != 0)) {\n          return ppppbVar5;\n        }\n        pppppbVar28 = (byte *****)((int)pppppbVar28 + 1);\n        pppppbVar26 = pppppbVar26 + 1;\n      } while (pppppbVar23 != pppppbVar28);\n    }\n    ppppbVar5 = (byte ****)(*(code *)PTR_calloc_004bf160)(0x38,1);\n    if (ppppbVar5 != (byte ****)0x0) {\n      iVar11 = FUN_0048c08c(ppppbVar5 + 1,ppppppbVar21);\n      if (iVar11 == 0) {\n        ppppbVar5[10] = (byte ***)(ppppbVar5 + 1);\n        if (0 < (int)ppppppbVar21[1]) {\n          ppppppbVar22 = *pppppppbVar20;\n          pppppbVar23 = ppppppbVar21[2];\n          pppppbVar26 = pppppbVar23 + (int)ppppppbVar21[1];\n          do {\n            ppppbVar10 = *pppppbVar23;\n            cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1);\n            if (cVar2 == '\x01') {\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }\n            pppppbVar23 = pppppbVar23 + 1;\n          } while (pppppbVar23 != pppppbVar26);\n        }\n        iVar11 = FUN_0048b6d0(pppppppbVar20,ppppbVar5,pppppbVar31);\n        if (iVar11 == 0) {\n          return ppppbVar5;\n        }\n        FUN_0048e3e8(ppppbVar5);\n      }\n      else {\n        (*(code *)PTR_free_004bf39c)(ppppbVar5);\n      }\n    }\n    *ppppppbVar13 = (byte *****)0xc;\n  }" { (if_statement "if (0 < (int)pppppbVar31) {\n      pppppbVar23 = ppppppbVar21[2];\n      pppppbVar26 = pppppbVar23 + (int)pppppbVar31;\n      do {\n        ppppbVar5 = *pppppbVar23;\n        pppppbVar23 = pppppbVar23 + 1;\n        pppppbVar31 = (byte *****)((int)pppppbVar31 + (int)ppppbVar5);\n      } while (pppppbVar23 != pppppbVar26);\n    }" if (parenthesized_expression "(0 < (int)pppppbVar31)" ( (binary_expression "0 < (int)pppppbVar31" number_literal < (cast_expression "(int)pppppbVar31" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      pppppbVar23 = ppppppbVar21[2];\n      pppppbVar26 = pppppbVar23 + (int)pppppbVar31;\n      do {\n        ppppbVar5 = *pppppbVar23;\n        pppppbVar23 = pppppbVar23 + 1;\n        pppppbVar31 = (byte *****)((int)pppppbVar31 + (int)ppppbVar5);\n      } while (pppppbVar23 != pppppbVar26);\n    }" { (expression_statement "pppppbVar23 = ppppppbVar21[2];" (assignment_expression "pppppbVar23 = ppppppbVar21[2]" identifier = (subscript_expression "ppppppbVar21[2]" identifier [ number_literal ])) ;) (expression_statement "pppppbVar26 = pppppbVar23 + (int)pppppbVar31;" (assignment_expression "pppppbVar26 = pppppbVar23 + (int)pppppbVar31" identifier = (binary_expression "pppppbVar23 + (int)pppppbVar31" identifier + (cast_expression "(int)pppppbVar31" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (do_statement "do {\n        ppppbVar5 = *pppppbVar23;\n        pppppbVar23 = pppppbVar23 + 1;\n        pppppbVar31 = (byte *****)((int)pppppbVar31 + (int)ppppbVar5);\n      } while (pppppbVar23 != pppppbVar26);" do (compound_statement "{\n        ppppbVar5 = *pppppbVar23;\n        pppppbVar23 = pppppbVar23 + 1;\n        pppppbVar31 = (byte *****)((int)pppppbVar31 + (int)ppppbVar5);\n      }" { (expression_statement "ppppbVar5 = *pppppbVar23;" (assignment_expression "ppppbVar5 = *pppppbVar23" identifier = (pointer_expression "*pppppbVar23" * identifier)) ;) (expression_statement "pppppbVar23 = pppppbVar23 + 1;" (assignment_expression "pppppbVar23 = pppppbVar23 + 1" identifier = (binary_expression "pppppbVar23 + 1" identifier + number_literal)) ;) (expression_statement "pppppbVar31 = (byte *****)((int)pppppbVar31 + (int)ppppbVar5);" (assignment_expression "pppppbVar31 = (byte *****)((int)pppppbVar31 + (int)ppppbVar5)" identifier = (cast_expression "(byte *****)((int)pppppbVar31 + (int)ppppbVar5)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)pppppbVar31 + (int)ppppbVar5)" ( (binary_expression "(int)pppppbVar31 + (int)ppppbVar5" (cast_expression "(int)pppppbVar31" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)ppppbVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) }) while (parenthesized_expression "(pppppbVar23 != pppppbVar26)" ( (binary_expression "pppppbVar23 != pppppbVar26" identifier != identifier) )) ;) })) (expression_statement "pppppbVar23 = pppppppbVar20[8][((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3];" (assignment_expression "pppppbVar23 = pppppppbVar20[8][((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3]" identifier = (subscript_expression "pppppppbVar20[8][((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3]" (subscript_expression "pppppppbVar20[8]" identifier [ number_literal ]) [ (binary_expression "((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3" (parenthesized_expression "((uint)pppppbVar31 & (uint)pppppppbVar20[0x11])" ( (binary_expression "(uint)pppppbVar31 & (uint)pppppppbVar20[0x11]" (cast_expression "(uint)pppppbVar31" ( (type_descriptor "uint" type_identifier) ) identifier) & (cast_expression "(uint)pppppppbVar20[0x11]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppbVar20[0x11]" identifier [ number_literal ]))) )) * number_literal) ])) ;) (if_statement "if (0 < (int)pppppbVar23) {\n      pppppbVar26 = (pppppppbVar20[8] + ((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3)[2];\n      pppppbVar28 = (byte *****)0x0;\n      do {\n        ppppbVar5 = *pppppbVar26;\n        if ((pppppbVar31 == (byte *****)*ppppbVar5) &&\n           (iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21), iVar11 != 0)) {\n          return ppppbVar5;\n        }\n        pppppbVar28 = (byte *****)((int)pppppbVar28 + 1);\n        pppppbVar26 = pppppbVar26 + 1;\n      } while (pppppbVar23 != pppppbVar28);\n    }" if (parenthesized_expression "(0 < (int)pppppbVar23)" ( (binary_expression "0 < (int)pppppbVar23" number_literal < (cast_expression "(int)pppppbVar23" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      pppppbVar26 = (pppppppbVar20[8] + ((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3)[2];\n      pppppbVar28 = (byte *****)0x0;\n      do {\n        ppppbVar5 = *pppppbVar26;\n        if ((pppppbVar31 == (byte *****)*ppppbVar5) &&\n           (iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21), iVar11 != 0)) {\n          return ppppbVar5;\n        }\n        pppppbVar28 = (byte *****)((int)pppppbVar28 + 1);\n        pppppbVar26 = pppppbVar26 + 1;\n      } while (pppppbVar23 != pppppbVar28);\n    }" { (expression_statement "pppppbVar26 = (pppppppbVar20[8] + ((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3)[2];" (assignment_expression "pppppbVar26 = (pppppppbVar20[8] + ((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3)[2]" identifier = (subscript_expression "(pppppppbVar20[8] + ((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3)[2]" (parenthesized_expression "(pppppppbVar20[8] + ((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3)" ( (binary_expression "pppppppbVar20[8] + ((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3" (subscript_expression "pppppppbVar20[8]" identifier [ number_literal ]) + (binary_expression "((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3" (parenthesized_expression "((uint)pppppbVar31 & (uint)pppppppbVar20[0x11])" ( (binary_expression "(uint)pppppbVar31 & (uint)pppppppbVar20[0x11]" (cast_expression "(uint)pppppbVar31" ( (type_descriptor "uint" type_identifier) ) identifier) & (cast_expression "(uint)pppppppbVar20[0x11]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pppppppbVar20[0x11]" identifier [ number_literal ]))) )) * number_literal)) )) [ number_literal ])) ;) (expression_statement "pppppbVar28 = (byte *****)0x0;" (assignment_expression "pppppbVar28 = (byte *****)0x0" identifier = (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (do_statement "do {\n        ppppbVar5 = *pppppbVar26;\n        if ((pppppbVar31 == (byte *****)*ppppbVar5) &&\n           (iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21), iVar11 != 0)) {\n          return ppppbVar5;\n        }\n        pppppbVar28 = (byte *****)((int)pppppbVar28 + 1);\n        pppppbVar26 = pppppbVar26 + 1;\n      } while (pppppbVar23 != pppppbVar28);" do (compound_statement "{\n        ppppbVar5 = *pppppbVar26;\n        if ((pppppbVar31 == (byte *****)*ppppbVar5) &&\n           (iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21), iVar11 != 0)) {\n          return ppppbVar5;\n        }\n        pppppbVar28 = (byte *****)((int)pppppbVar28 + 1);\n        pppppbVar26 = pppppbVar26 + 1;\n      }" { (expression_statement "ppppbVar5 = *pppppbVar26;" (assignment_expression "ppppbVar5 = *pppppbVar26" identifier = (pointer_expression "*pppppbVar26" * identifier)) ;) (if_statement "if ((pppppbVar31 == (byte *****)*ppppbVar5) &&\n           (iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21), iVar11 != 0)) {\n          return ppppbVar5;\n        }" if (parenthesized_expression "((pppppbVar31 == (byte *****)*ppppbVar5) &&\n           (iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21), iVar11 != 0))" ( (binary_expression "(pppppbVar31 == (byte *****)*ppppbVar5) &&\n           (iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21), iVar11 != 0)" (parenthesized_expression "(pppppbVar31 == (byte *****)*ppppbVar5)" ( (binary_expression "pppppbVar31 == (byte *****)*ppppbVar5" identifier == (cast_expression "(byte *****)*ppppbVar5" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (pointer_expression "*ppppbVar5" * identifier))) )) && (parenthesized_expression "(iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21), iVar11 != 0)" ( (comma_expression "iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21), iVar11 != 0" (assignment_expression "iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21)" identifier = (call_expression "FUN_00489de4(ppppbVar5 + 1,ppppppbVar21)" identifier (argument_list "(ppppbVar5 + 1,ppppppbVar21)" ( (binary_expression "ppppbVar5 + 1" identifier + number_literal) , identifier )))) , (binary_expression "iVar11 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          return ppppbVar5;\n        }" { (return_statement "return ppppbVar5;" return identifier ;) })) (expression_statement "pppppbVar28 = (byte *****)((int)pppppbVar28 + 1);" (assignment_expression "pppppbVar28 = (byte *****)((int)pppppbVar28 + 1)" identifier = (cast_expression "(byte *****)((int)pppppbVar28 + 1)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)pppppbVar28 + 1)" ( (binary_expression "(int)pppppbVar28 + 1" (cast_expression "(int)pppppbVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pppppbVar26 = pppppbVar26 + 1;" (assignment_expression "pppppbVar26 = pppppbVar26 + 1" identifier = (binary_expression "pppppbVar26 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pppppbVar23 != pppppbVar28)" ( (binary_expression "pppppbVar23 != pppppbVar28" identifier != identifier) )) ;) })) (expression_statement "ppppbVar5 = (byte ****)(*(code *)PTR_calloc_004bf160)(0x38,1);" (assignment_expression "ppppbVar5 = (byte ****)(*(code *)PTR_calloc_004bf160)(0x38,1)" identifier = (cast_expression "(byte ****)(*(code *)PTR_calloc_004bf160)(0x38,1)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "(*(code *)PTR_calloc_004bf160)(0x38,1)" (parenthesized_expression "(*(code *)PTR_calloc_004bf160)" ( (pointer_expression "*(code *)PTR_calloc_004bf160" * (cast_expression "(code *)PTR_calloc_004bf160" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x38,1)" ( number_literal , number_literal ))))) ;) (if_statement "if (ppppbVar5 != (byte ****)0x0) {\n      iVar11 = FUN_0048c08c(ppppbVar5 + 1,ppppppbVar21);\n      if (iVar11 == 0) {\n        ppppbVar5[10] = (byte ***)(ppppbVar5 + 1);\n        if (0 < (int)ppppppbVar21[1]) {\n          ppppppbVar22 = *pppppppbVar20;\n          pppppbVar23 = ppppppbVar21[2];\n          pppppbVar26 = pppppbVar23 + (int)ppppppbVar21[1];\n          do {\n            ppppbVar10 = *pppppbVar23;\n            cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1);\n            if (cVar2 == '\x01') {\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }\n            pppppbVar23 = pppppbVar23 + 1;\n          } while (pppppbVar23 != pppppbVar26);\n        }\n        iVar11 = FUN_0048b6d0(pppppppbVar20,ppppbVar5,pppppbVar31);\n        if (iVar11 == 0) {\n          return ppppbVar5;\n        }\n        FUN_0048e3e8(ppppbVar5);\n      }\n      else {\n        (*(code *)PTR_free_004bf39c)(ppppbVar5);\n      }\n    }" if (parenthesized_expression "(ppppbVar5 != (byte ****)0x0)" ( (binary_expression "ppppbVar5 != (byte ****)0x0" identifier != (cast_expression "(byte ****)0x0" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (compound_statement "{\n      iVar11 = FUN_0048c08c(ppppbVar5 + 1,ppppppbVar21);\n      if (iVar11 == 0) {\n        ppppbVar5[10] = (byte ***)(ppppbVar5 + 1);\n        if (0 < (int)ppppppbVar21[1]) {\n          ppppppbVar22 = *pppppppbVar20;\n          pppppbVar23 = ppppppbVar21[2];\n          pppppbVar26 = pppppbVar23 + (int)ppppppbVar21[1];\n          do {\n            ppppbVar10 = *pppppbVar23;\n            cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1);\n            if (cVar2 == '\x01') {\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }\n            pppppbVar23 = pppppbVar23 + 1;\n          } while (pppppbVar23 != pppppbVar26);\n        }\n        iVar11 = FUN_0048b6d0(pppppppbVar20,ppppbVar5,pppppbVar31);\n        if (iVar11 == 0) {\n          return ppppbVar5;\n        }\n        FUN_0048e3e8(ppppbVar5);\n      }\n      else {\n        (*(code *)PTR_free_004bf39c)(ppppbVar5);\n      }\n    }" { (expression_statement "iVar11 = FUN_0048c08c(ppppbVar5 + 1,ppppppbVar21);" (assignment_expression "iVar11 = FUN_0048c08c(ppppbVar5 + 1,ppppppbVar21)" identifier = (call_expression "FUN_0048c08c(ppppbVar5 + 1,ppppppbVar21)" identifier (argument_list "(ppppbVar5 + 1,ppppppbVar21)" ( (binary_expression "ppppbVar5 + 1" identifier + number_literal) , identifier )))) ;) (if_statement "if (iVar11 == 0) {\n        ppppbVar5[10] = (byte ***)(ppppbVar5 + 1);\n        if (0 < (int)ppppppbVar21[1]) {\n          ppppppbVar22 = *pppppppbVar20;\n          pppppbVar23 = ppppppbVar21[2];\n          pppppbVar26 = pppppbVar23 + (int)ppppppbVar21[1];\n          do {\n            ppppbVar10 = *pppppbVar23;\n            cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1);\n            if (cVar2 == '\x01') {\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }\n            pppppbVar23 = pppppbVar23 + 1;\n          } while (pppppbVar23 != pppppbVar26);\n        }\n        iVar11 = FUN_0048b6d0(pppppppbVar20,ppppbVar5,pppppbVar31);\n        if (iVar11 == 0) {\n          return ppppbVar5;\n        }\n        FUN_0048e3e8(ppppbVar5);\n      }\n      else {\n        (*(code *)PTR_free_004bf39c)(ppppbVar5);\n      }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n        ppppbVar5[10] = (byte ***)(ppppbVar5 + 1);\n        if (0 < (int)ppppppbVar21[1]) {\n          ppppppbVar22 = *pppppppbVar20;\n          pppppbVar23 = ppppppbVar21[2];\n          pppppbVar26 = pppppbVar23 + (int)ppppppbVar21[1];\n          do {\n            ppppbVar10 = *pppppbVar23;\n            cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1);\n            if (cVar2 == '\x01') {\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }\n            pppppbVar23 = pppppbVar23 + 1;\n          } while (pppppbVar23 != pppppbVar26);\n        }\n        iVar11 = FUN_0048b6d0(pppppppbVar20,ppppbVar5,pppppbVar31);\n        if (iVar11 == 0) {\n          return ppppbVar5;\n        }\n        FUN_0048e3e8(ppppbVar5);\n      }" { (expression_statement "ppppbVar5[10] = (byte ***)(ppppbVar5 + 1);" (assignment_expression "ppppbVar5[10] = (byte ***)(ppppbVar5 + 1)" (subscript_expression "ppppbVar5[10]" identifier [ number_literal ]) = (cast_expression "(byte ***)(ppppbVar5 + 1)" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(ppppbVar5 + 1)" ( (binary_expression "ppppbVar5 + 1" identifier + number_literal) )))) ;) (if_statement "if (0 < (int)ppppppbVar21[1]) {\n          ppppppbVar22 = *pppppppbVar20;\n          pppppbVar23 = ppppppbVar21[2];\n          pppppbVar26 = pppppbVar23 + (int)ppppppbVar21[1];\n          do {\n            ppppbVar10 = *pppppbVar23;\n            cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1);\n            if (cVar2 == '\x01') {\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }\n            pppppbVar23 = pppppbVar23 + 1;\n          } while (pppppbVar23 != pppppbVar26);\n        }" if (parenthesized_expression "(0 < (int)ppppppbVar21[1])" ( (binary_expression "0 < (int)ppppppbVar21[1]" number_literal < (cast_expression "(int)ppppppbVar21[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppppppbVar21[1]" identifier [ number_literal ]))) )) (compound_statement "{\n          ppppppbVar22 = *pppppppbVar20;\n          pppppbVar23 = ppppppbVar21[2];\n          pppppbVar26 = pppppbVar23 + (int)ppppppbVar21[1];\n          do {\n            ppppbVar10 = *pppppbVar23;\n            cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1);\n            if (cVar2 == '\x01') {\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }\n            pppppbVar23 = pppppbVar23 + 1;\n          } while (pppppbVar23 != pppppbVar26);\n        }" { (expression_statement "ppppppbVar22 = *pppppppbVar20;" (assignment_expression "ppppppbVar22 = *pppppppbVar20" identifier = (pointer_expression "*pppppppbVar20" * identifier)) ;) (expression_statement "pppppbVar23 = ppppppbVar21[2];" (assignment_expression "pppppbVar23 = ppppppbVar21[2]" identifier = (subscript_expression "ppppppbVar21[2]" identifier [ number_literal ])) ;) (expression_statement "pppppbVar26 = pppppbVar23 + (int)ppppppbVar21[1];" (assignment_expression "pppppbVar26 = pppppbVar23 + (int)ppppppbVar21[1]" identifier = (binary_expression "pppppbVar23 + (int)ppppppbVar21[1]" identifier + (cast_expression "(int)ppppppbVar21[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppppppbVar21[1]" identifier [ number_literal ])))) ;) (do_statement "do {\n            ppppbVar10 = *pppppbVar23;\n            cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1);\n            if (cVar2 == '\x01') {\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }\n            pppppbVar23 = pppppbVar23 + 1;\n          } while (pppppbVar23 != pppppbVar26);" do (compound_statement "{\n            ppppbVar10 = *pppppbVar23;\n            cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1);\n            if (cVar2 == '\x01') {\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }\n            pppppbVar23 = pppppbVar23 + 1;\n          }" { (expression_statement "ppppbVar10 = *pppppbVar23;" (assignment_expression "ppppbVar10 = *pppppbVar23" identifier = (pointer_expression "*pppppbVar23" * identifier)) ;) (expression_statement "cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1);" (assignment_expression "cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1)" identifier = (pointer_expression "*(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1)" * (cast_expression "(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppppbVar22 + (int)ppppbVar10 * 2 + 1)" ( (binary_expression "ppppppbVar22 + (int)ppppbVar10 * 2 + 1" (binary_expression "ppppppbVar22 + (int)ppppbVar10 * 2" identifier + (binary_expression "(int)ppppbVar10 * 2" (cast_expression "(int)ppppbVar10" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) ))))) ;) (if_statement "if (cVar2 == '\x01') {\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }" if (parenthesized_expression "(cVar2 == '\x01')" ( (binary_expression "cVar2 == '\x01'" identifier == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }" { (if_statement "if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }" if (parenthesized_expression "(((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0)" ( (binary_expression "((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0" (parenthesized_expression "((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000)" ( (binary_expression "(uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000" (cast_expression "(uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppppppbVar22[(int)ppppbVar10 * 2 + 1]" identifier [ (binary_expression "(int)ppppbVar10 * 2 + 1" (binary_expression "(int)ppppbVar10 * 2" (cast_expression "(int)ppppbVar10" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ])) & number_literal) )) != number_literal) )) (compound_statement "{\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }" { (expression_statement "*(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);" (assignment_expression "*(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2)" (pointer_expression "*(byte *)(ppppbVar5 + 0xd)" * (cast_expression "(byte *)(ppppbVar5 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppbVar5 + 0xd)" ( (binary_expression "ppppbVar5 + 0xd" identifier + number_literal) )))) = (binary_expression "*(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2)" (binary_expression "*(byte *)(ppppbVar5 + 0xd) & 0xfb" (pointer_expression "*(byte *)(ppppbVar5 + 0xd)" * (cast_expression "(byte *)(ppppbVar5 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppbVar5 + 0xd)" ( (binary_expression "ppppbVar5 + 0xd" identifier + number_literal) )))) & number_literal) | (call_expression "(byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2)" ( (binary_expression "((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2" (parenthesized_expression "((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f)" ( (binary_expression "(uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f" (call_expression "(uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5)" ( (binary_expression "(int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5" (binary_expression "(int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14" (cast_expression "(int)ppppppbVar22[(int)ppppbVar10 * 2 + 1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppppppbVar22[(int)ppppbVar10 * 2 + 1]" identifier [ (binary_expression "(int)ppppbVar10 * 2 + 1" (binary_expression "(int)ppppbVar10 * 2" (cast_expression "(int)ppppbVar10" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ])) << number_literal) | (binary_expression "(int)ppppbVar5[0xd] << 5" (cast_expression "(int)ppppbVar5[0xd]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppppbVar5[0xd]" identifier [ number_literal ])) << number_literal)) ))) >> number_literal) )) << number_literal) ))))) ;) (labeled_statement "LAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }" statement_identifier : (if_statement "if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }" if (parenthesized_expression "(((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0)" ( (binary_expression "((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0" (parenthesized_expression "((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000)" ( (binary_expression "(uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000" (cast_expression "(uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ppppppbVar22[(int)ppppbVar10 * 2 + 1]" identifier [ (binary_expression "(int)ppppbVar10 * 2 + 1" (binary_expression "(int)ppppbVar10 * 2" (cast_expression "(int)ppppbVar10" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ])) & number_literal) )) != number_literal) )) (compound_statement "{\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }" { (expression_statement "bVar3 = *(byte *)(ppppbVar5 + 0xd);" (assignment_expression "bVar3 = *(byte *)(ppppbVar5 + 0xd)" identifier = (pointer_expression "*(byte *)(ppppbVar5 + 0xd)" * (cast_expression "(byte *)(ppppbVar5 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppbVar5 + 0xd)" ( (binary_expression "ppppbVar5 + 0xd" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;" statement_identifier : (expression_statement "*(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;" (assignment_expression "*(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1" (pointer_expression "*(byte *)(ppppbVar5 + 0xd)" * (cast_expression "(byte *)(ppppbVar5 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppbVar5 + 0xd)" ( (binary_expression "ppppbVar5 + 0xd" identifier + number_literal) )))) = (binary_expression "bVar3 & 0xfe | 1" (binary_expression "bVar3 & 0xfe" identifier & number_literal) | number_literal)) ;)) }))) })) }) (else_clause "else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }" else (compound_statement "{\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }" { (expression_statement "bVar3 = *(byte *)(ppppbVar5 + 0xd);" (assignment_expression "bVar3 = *(byte *)(ppppbVar5 + 0xd)" identifier = (pointer_expression "*(byte *)(ppppbVar5 + 0xd)" * (cast_expression "(byte *)(ppppbVar5 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppbVar5 + 0xd)" ( (binary_expression "ppppbVar5 + 0xd" identifier + number_literal) ))))) ;) (expression_statement "bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);" (assignment_expression "bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2)" identifier = (call_expression "(byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2)" ( (binary_expression "((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2" (parenthesized_expression "((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f)" ( (binary_expression "(uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f" (call_expression "(uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14)" ( (binary_expression "(int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14" (binary_expression "(int)ppppbVar5[0xd] << 5" (cast_expression "(int)ppppbVar5[0xd]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppppbVar5[0xd]" identifier [ number_literal ])) << number_literal) | (binary_expression "(int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14" (cast_expression "(int)ppppppbVar22[(int)ppppbVar10 * 2 + 1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppppppbVar22[(int)ppppbVar10 * 2 + 1]" identifier [ (binary_expression "(int)ppppbVar10 * 2 + 1" (binary_expression "(int)ppppbVar10 * 2" (cast_expression "(int)ppppbVar10" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ])) << number_literal)) ))) >> number_literal) )) << number_literal) )))) ;) (expression_statement "*(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;" (assignment_expression "*(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4" (pointer_expression "*(byte *)(ppppbVar5 + 0xd)" * (cast_expression "(byte *)(ppppbVar5 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppbVar5 + 0xd)" ( (binary_expression "ppppbVar5 + 0xd" identifier + number_literal) )))) = (binary_expression "bVar3 & 0xfb | bVar4" (binary_expression "bVar3 & 0xfb" identifier & number_literal) | identifier)) ;) (if_statement "if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }" if (parenthesized_expression "(cVar2 == '\x02')" ( (binary_expression "cVar2 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }" { (expression_statement "*(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;" (assignment_expression "*(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8" (pointer_expression "*(byte *)(ppppbVar5 + 0xd)" * (cast_expression "(byte *)(ppppbVar5 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppbVar5 + 0xd)" ( (binary_expression "ppppbVar5 + 0xd" identifier + number_literal) )))) = (binary_expression "bVar3 & 0xf3 | bVar4 | 8" (binary_expression "bVar3 & 0xf3 | bVar4" (binary_expression "bVar3 & 0xf3" identifier & number_literal) | identifier) | number_literal)) ;) }) (else_clause "else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }" else (compound_statement "{\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }" { (if_statement "if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }" if (parenthesized_expression "(cVar2 != '\x04')" ( (binary_expression "cVar2 != '\x04'" identifier != (char_literal "'\x04'" ' escape_sequence ')) )) (compound_statement "{\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }" { (if_statement "if (cVar2 != '\f') goto LAB_004922f0;" if (parenthesized_expression "(cVar2 != '\f')" ( (binary_expression "cVar2 != '\f'" identifier != (char_literal "'\f'" ' escape_sequence ')) )) (goto_statement "goto LAB_004922f0;" goto statement_identifier ;)) (expression_statement "bVar3 = *(byte *)(ppppbVar5 + 0xd);" (assignment_expression "bVar3 = *(byte *)(ppppbVar5 + 0xd)" identifier = (pointer_expression "*(byte *)(ppppbVar5 + 0xd)" * (cast_expression "(byte *)(ppppbVar5 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppbVar5 + 0xd)" ( (binary_expression "ppppbVar5 + 0xd" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00492380;" goto statement_identifier ;) })) (expression_statement "*(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;" (assignment_expression "*(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2" (pointer_expression "*(byte *)(ppppbVar5 + 0xd)" * (cast_expression "(byte *)(ppppbVar5 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppbVar5 + 0xd)" ( (binary_expression "ppppbVar5 + 0xd" identifier + number_literal) )))) = (binary_expression "*(byte *)(ppppbVar5 + 0xd) & 0xfd | 2" (binary_expression "*(byte *)(ppppbVar5 + 0xd) & 0xfd" (pointer_expression "*(byte *)(ppppbVar5 + 0xd)" * (cast_expression "(byte *)(ppppbVar5 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppppbVar5 + 0xd)" ( (binary_expression "ppppbVar5 + 0xd" identifier + number_literal) )))) & number_literal) | number_literal)) ;) }))) }))) (expression_statement "pppppbVar23 = pppppbVar23 + 1;" (assignment_expression "pppppbVar23 = pppppbVar23 + 1" identifier = (binary_expression "pppppbVar23 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pppppbVar23 != pppppbVar26)" ( (binary_expression "pppppbVar23 != pppppbVar26" identifier != identifier) )) ;) })) (expression_statement "iVar11 = FUN_0048b6d0(pppppppbVar20,ppppbVar5,pppppbVar31);" (assignment_expression "iVar11 = FUN_0048b6d0(pppppppbVar20,ppppbVar5,pppppbVar31)" identifier = (call_expression "FUN_0048b6d0(pppppppbVar20,ppppbVar5,pppppbVar31)" identifier (argument_list "(pppppppbVar20,ppppbVar5,pppppbVar31)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar11 == 0) {\n          return ppppbVar5;\n        }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n          return ppppbVar5;\n        }" { (return_statement "return ppppbVar5;" return identifier ;) })) (expression_statement "FUN_0048e3e8(ppppbVar5);" (call_expression "FUN_0048e3e8(ppppbVar5)" identifier (argument_list "(ppppbVar5)" ( identifier ))) ;) }) (else_clause "else {\n        (*(code *)PTR_free_004bf39c)(ppppbVar5);\n      }" else (compound_statement "{\n        (*(code *)PTR_free_004bf39c)(ppppbVar5);\n      }" { (expression_statement "(*(code *)PTR_free_004bf39c)(ppppbVar5);" (call_expression "(*(code *)PTR_free_004bf39c)(ppppbVar5)" (parenthesized_expression "(*(code *)PTR_free_004bf39c)" ( (pointer_expression "*(code *)PTR_free_004bf39c" * (cast_expression "(code *)PTR_free_004bf39c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppppbVar5)" ( identifier ))) ;) }))) })) (expression_statement "*ppppppbVar13 = (byte *****)0xc;" (assignment_expression "*ppppppbVar13 = (byte *****)0xc" (pointer_expression "*ppppppbVar13" * identifier) = (cast_expression "(byte *****)0xc" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) }))) (return_statement "return (byte ****)0x0;" return (cast_expression "(byte ****)0x0" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal) ;) })))
(translation_unit (function_definition TYPE (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 * IDENT))))))) ))))))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE 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 * (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 * IDENT) ;) (declaration TYPE (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 * 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 * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE (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 * 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 * (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 * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (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 * 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 * IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 *)))))))) ) 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = 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 IDENT = 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 = LIT) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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)) ;) })) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (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) ))) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - (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) + (subscript_expression IDENT [ LIT ])) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (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 (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (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) ) IDENT) + (subscript_expression IDENT [ LIT ])) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (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))) ;) (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 = (cast_expression ( (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 = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (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 { (expression_statement (assignment_expression IDENT = (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (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) ;) }) while (parenthesized_expression ( 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 *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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 ( (binary_expression IDENT != IDENT) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) )))) , (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 (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (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 (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) 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) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))) ])) == IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (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) )) ;) })) (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 ]) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) ;) (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 = (pointer_expression * IDENT)) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (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 *))))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (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 = (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 *))))))) ) (subscript_expression IDENT [ LIT ]))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (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 (subscript_expression IDENT [ LIT ]) = LIT) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (goto_statement goto statement_identifier ;) })) (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 ]) + (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 *))))))) ) (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) ) IDENT) + (subscript_expression IDENT [ LIT ])) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (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 (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 = (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 (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 { (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 (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 (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (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 (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (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 (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 ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (subscript_expression IDENT [ LIT ])) + (pointer_expression * 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 (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (subscript_expression IDENT [ LIT ])) ))))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) & LIT) )) == 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 *)))))))) ) (pointer_expression & IDENT))) )) (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) ;) }))) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression IDENT + (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 = (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 *)))))))) ) (pointer_expression & IDENT))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (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) + (pointer_expression * IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) , IDENT )))) ;) (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 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)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) 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)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (pointer_expression * IDENT)) ))))) ;) }))))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression 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) + IDENT) )))) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (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 (subscript_expression IDENT [ LIT ]) = (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) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (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) + (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) - (subscript_expression IDENT [ LIT ])) ))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= 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) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) )))) ;) (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))) ;) (expression_statement (assignment_expression IDENT = 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) )))) ;) (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 = IDENT) ;) (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 *)) ) (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 *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (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) ) (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 *))))))) ) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (parenthesized_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 *))))))) ) (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 (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) IDENT) != IDENT) )) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & 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) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 = (subscript_expression IDENT [ 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression & IDENT))) )) (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 = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) })))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 *))))))) ) (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 *))))))) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression (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 = (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 *))))))) ) (subscript_expression IDENT [ LIT ]))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (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 ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (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) ))))) ;)) }))) (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) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (subscript_expression IDENT [ LIT ])) )))) ;) })) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT - (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 ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression 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 *))))) ) (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 *))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;)) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (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 *)))))))) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_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 ( ))) ;) (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 *)))))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) )) (compound_statement { (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)) ;) }) (else_clause else (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) ;) (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) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_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 *))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression & IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (pointer_expression & IDENT))) )) (compound_statement { (expression_statement (assignment_expression 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 *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression IDENT * LIT)) ))))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) << LIT) < LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))) < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (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) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) <= (binary_expression IDENT + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & 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 *))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) )) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) }))) }) (else_clause else (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 *)))))) ) 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 = (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (if_statement if (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 *))))))) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))) == 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 *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) = LIT) ;) })) })) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression & IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression (parenthesized_expression ( (pointer_expression * IDENT) )) [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ])) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT >> (parenthesized_expression ( (binary_expression IDENT & LIT) ))) & LIT) )) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = LIT) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression (parenthesized_expression ( (binary_expression IDENT + 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) )))) = 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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) }) (else_clause else (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 *))))))) ) (pointer_expression & IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < LIT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) && (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (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 *)))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (subscript_expression (parenthesized_expression ( (pointer_expression * IDENT) )) [ IDENT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = LIT) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression IDENT * LIT)) ))))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (subscript_expression (parenthesized_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 *))))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (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) ) (subscript_expression IDENT [ LIT ]))) )) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) 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 *))))))) ) (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 *))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT . field_identifier))) )))) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (field_expression IDENT . field_identifier) != 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 IDENT (argument_list ( (binary_expression (field_expression IDENT . field_identifier) + LIT) , (field_expression IDENT . field_identifier) ))))) ;) }) while (parenthesized_expression ( IDENT )) ;) }))) }) (else_clause else (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 = (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 *)))))))) ) (pointer_expression & IDENT))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (break_statement break ;) })) (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 *))))))) ) 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 (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (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) | LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (break_statement break ;) })) }))))) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) ;) })) (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 *)))))) ) IDENT))) )) (compound_statement { (return_statement return (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) 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 = (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 *)))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) 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 * (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)) )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression (subscript_expression IDENT [ LIT ]) [ (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) * LIT) ])) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) * LIT)) )) [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (pointer_expression * IDENT))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (return_statement return 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 *)))))) ) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( 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 *))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) ])) & LIT) )) != LIT) )) (compound_statement { (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) | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) ])) << LIT) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) << LIT)) ))) >> LIT) )) << LIT) ))))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) ])) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression IDENT & LIT) | LIT)) ;)) }))) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) << LIT) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) ])) << LIT)) ))) >> LIT) )) << 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 IDENT & LIT) | IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (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) )))) = (binary_expression (binary_expression (binary_expression IDENT & LIT) | IDENT) | LIT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;) }))) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( 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 *)))))) ) LIT)) ;) }))) (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT) ;) })))
(function_definition "byte **** FUN_00491238(int *param_1,byte *******param_2,byte ******param_3)\n\n{\n  bool bVar1;\n  char cVar2;\n  byte bVar3;\n  byte bVar4;\n  byte ****ppppbVar5;\n  byte ******ppppppbVar6;\n  byte ******ppppppbVar7;\n  int iVar8;\n  int *piVar9;\n  byte ****ppppbVar10;\n  int iVar11;\n  byte *******pppppppbVar12;\n  byte ******ppppppbVar13;\n  undefined1 *puVar14;\n  byte *pbVar16;\n  byte *pbVar17;\n  byte *******pppppppbVar18;\n  byte *******pppppppbVar19;\n  byte *******pppppppbVar20;\n  byte ******ppppppbVar21;\n  byte ******ppppppbVar22;\n  byte *****pppppbVar23;\n  int iVar24;\n  byte ***pppbVar25;\n  byte *****pppppbVar26;\n  uint uVar27;\n  byte *****pppppbVar28;\n  byte *******unaff_s4;\n  byte *******unaff_s5;\n  byte *******unaff_s6;\n  uint uVar29;\n  byte *******unaff_s7;\n  uint uVar30;\n  int *unaff_s8;\n  byte *****pppppbVar31;\n  code *pcVar32;\n  int iStack_1ac;\n  int iStack_1a8;\n  byte ******ppppppbStack_190;\n  byte *****pppppbStack_18c;\n  undefined4 uStack_188;\n  byte bStack_184;\n  undefined1 auStack_183 [255];\n  byte ****ppppbStack_84;\n  int *piStack_80;\n  int iStack_7c;\n  byte *******pppppppbStack_78;\n  byte ******ppppppbStack_74;\n  byte *******pppppppbStack_70;\n  byte *******pppppppbStack_6c;\n  byte *******pppppppbStack_68;\n  byte *******pppppppbStack_64;\n  int *piStack_60;\n  code *pcStack_5c;\n  byte *******local_40;\n  int local_3c;\n  int local_38;\n  byte ******appppppbStack_34 [3];\n  undefined1 *puVar15;\n  \n  appppppbStack_34[2] = *(byte *******)PTR___stack_chk_guard_004bf38c;\n  pppppppbVar20 = (byte *******)((int)param_2 - param_1[6]);\n  if ((int)param_2 < param_1[6]) {\n    if (1 < param_1[0x14]) {\n      *(undefined1 *)(param_1 + 4) = 0;\n      *(undefined1 *)((int)param_1 + 0x11) = 0;\n      *(undefined1 *)((int)param_1 + 0x12) = 0;\n      *(undefined1 *)((int)param_1 + 0x13) = 0;\n      *(undefined1 *)(param_1 + 5) = 0;\n      *(undefined1 *)((int)param_1 + 0x15) = 0;\n      *(undefined1 *)((int)param_1 + 0x16) = 0;\n      *(undefined1 *)((int)param_1 + 0x17) = 0;\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    iVar11 = 6;\n    if (((uint)param_3 & 1) != 0) {\n      iVar11 = 4;\n    }\n    param_1[0xf] = iVar11;\n    pppppppbVar20 = param_2;\n    if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[1] = *param_1;\n    }\n  }\n  pppppppbVar18 = param_2;\n  ppppppbVar22 = param_3;\n  if (pppppppbVar20 != (byte *******)0x0) {\n    if ((int)pppppppbVar20 < param_1[8]) {\n      if (*(char *)(param_1 + 0x13) == '\0') {\n        iVar11 = FUN_0048efec(param_1,(byte *)((int)pppppppbVar20 + -1));\n        param_1[0xf] = iVar11;\n        pppppppbVar18 = (byte *******)((int)pppppppbVar20 * 4);\n        if (param_1[0x14] < 2) {\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        else {\n          ppppppbVar22 = (byte ******)((param_1[7] - (int)pppppppbVar20) * 4);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar18 + param_1[2]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        if (cVar2 == '\0') {\n          iVar11 = param_1[7];\n        }\n        else {\n          ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar11 = param_1[7];\n        }\n        param_1[7] = iVar11 - (int)pppppppbVar20;\n        param_1[8] = param_1[8] - (int)pppppppbVar20;\n        goto LAB_00491360;\n      }\n      unaff_s6 = (byte *******)param_1[7];\n      unaff_s5 = (byte *******)param_1[3];\n      pbVar16 = (byte *)0x0;\n      pppppppbVar18 = unaff_s6;\n      do {\n        unaff_s4 = (byte *******)((int)(pbVar16 + (int)pppppppbVar18) / 2);\n        ppppppbVar6 = unaff_s5[(int)unaff_s4];\n        bVar1 = (int)pbVar16 < (int)unaff_s4;\n        pppppppbVar12 = unaff_s4;\n        if ((int)ppppppbVar6 <= (int)pppppppbVar20) {\n          pbVar16 = (byte *)((int)unaff_s4 + 1);\n          if ((int)pppppppbVar20 <= (int)ppppppbVar6) goto LAB_0049145c;\n          bVar1 = (int)pbVar16 < (int)pppppppbVar18;\n          pppppppbVar12 = pppppppbVar18;\n        }\n        pppppppbVar18 = pppppppbVar12;\n      } while (bVar1);\n      if ((int)ppppppbVar6 < (int)pppppppbVar20) {\n        unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n      }\nLAB_0049145c:\n      pppppppbVar18 = (byte *******)((int)unaff_s4 + -1);\n      iVar11 = FUN_0048efec(param_1);\n      param_1[0xf] = iVar11;\n      if ((((int)unaff_s6 <= (int)pppppppbVar20) || (pppppppbVar20 != unaff_s4)) ||\n         (param_3 = (byte ******)((int)pppppppbVar20 * 4),\n         (byte *******)unaff_s5[(int)unaff_s4] != pppppppbVar20)) {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        if ((0 < (int)unaff_s4) &&\n           ((byte *******)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pppppppbVar20)) {\n          pppppppbVar12 = unaff_s5 + (int)(unaff_s4 + 0x10000000);\n          do {\n            unaff_s4 = (byte *******)((int)unaff_s4 + -1);\n            if (unaff_s4 == (byte *******)0x0) break;\n            pppppppbVar19 = pppppppbVar12 + -2;\n            pppppppbVar12 = pppppppbVar12 + -1;\n          } while ((byte *******)*pppppppbVar19 == pppppppbVar20);\n        }\n        if ((int)unaff_s4 < (int)unaff_s6) {\n          piVar9 = (int *)(param_1[2] + (int)unaff_s4 * 4);\n          iVar11 = *piVar9;\n          while (iVar11 == -1) {\n            unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n            piVar9 = piVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            iVar11 = *piVar9;\n          }\nLAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;\n          ppppppbVar22 = (byte ******)((int)*unaff_s4 - (int)pppppppbVar20);\n          param_1[7] = (int)ppppppbVar22;\n          if (ppppppbVar22 == (byte ******)0x0) goto LAB_00491650;\n          if (0 < (int)ppppppbVar22) {\n            iVar11 = 0;\n            do {\n              *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n              iVar11 = iVar11 + 1;\n              ppppppbVar22 = (byte ******)param_1[7];\n            } while (iVar11 < (int)ppppppbVar22);\n          }\n          pppppppbVar18 = (byte *******)0xff;\n          (*(code *)PTR_memset_004bf260)(param_1[1]);\n          iVar11 = param_1[7];\n        }\n        else {\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          param_1[7] = 0;\nLAB_00491650:\n          iVar11 = param_1[7];\n        }\n        param_1[8] = iVar11;\n        goto LAB_00491360;\n      }\n      (*(code *)PTR_memmove_004bf3a4)\n                (param_1[2],param_1[2] + (int)param_3,((int)unaff_s6 - (int)pppppppbVar20) * 4);\n      ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n      pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n      (*(code *)PTR_memmove_004bf3a4)();\n      iVar11 = param_1[7];\n      param_1[7] = iVar11 - (int)pppppppbVar20;\n      param_1[8] = param_1[8] - (int)pppppppbVar20;\n      if (iVar11 - (int)pppppppbVar20 < 1) goto LAB_00491360;\n      iVar11 = 0;\n      do {\n        *(int *)(param_1[3] + iVar11 * 4) = *(int *)(param_1[3] + (int)param_3) - (int)pppppppbVar20\n        ;\n        iVar11 = iVar11 + 1;\n        param_3 = param_3 + 1;\n      } while (iVar11 < param_1[7]);\n      cVar2 = *(char *)((int)param_1 + 0x4b);\n    }\n    else {\n      unaff_s6 = (byte *******)param_1[7];\n      if (*(char *)(param_1 + 0x13) != '\0') {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n      }\n      param_1[7] = 0;\n      if (param_1[0x14] < 2) {\n        pppppppbVar18 =\n             (byte *******)(uint)*(byte *)((int)pppppppbVar20 + param_1[6] + *param_1 + -1);\n        param_1[8] = 0;\n        if (param_1[0x10] != 0) {\n          pppppppbVar18 = (byte *******)(uint)*(byte *)((int)pppppppbVar18 + param_1[0x10]);\n        }\n        iVar11 = 1;\n        if ((*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f) & 1) == 0) {\n          iVar11 = 2;\n          if (pppppppbVar18 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        param_1[0xf] = iVar11;\n        goto LAB_00491360;\n      }\n      if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0049179c:\n        iVar11 = param_1[6];\nLAB_004917a0:\n        pppppppbVar12 = (byte *******)(iVar11 + param_1[8]);\n        if ((int)pppppppbVar12 < (int)param_2) {\n          unaff_s8 = param_1 + 4;\n          unaff_s7 = (byte *******)&local_40;\n          do {\n            unaff_s5 = pppppppbVar12;\n            iVar24 = param_1[0xb];\n            local_3c = param_1[4];\n            local_38 = param_1[5];\n            pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1);\n            iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8);\n            unaff_s4 = local_40;\n            if (0xfffffffc < iVar11 - 1U) {\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }\n            pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11);\n          } while ((int)pppppppbVar12 < (int)param_2);\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n          if (unaff_s4 != (byte *******)0xffffffff) goto LAB_00491834;\n        }\n        else {\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n        }\n        pppppppbVar18 = (byte *******)((int)unaff_s6 + -1);\n        iVar11 = FUN_0048efec(param_1,pppppppbVar18,param_3);\n        param_1[0xf] = iVar11;\n      }\n      else {\n        pppppppbVar12 = (byte *******)*param_1;\n        unaff_s4 = (byte *******)((int)pppppppbVar12 + param_1[6]);\n        pppppppbVar18 = (byte *******)((int)unaff_s4 + ((int)pppppppbVar20 - param_1[0x14]));\n        if (pppppppbVar18 <= pppppppbVar12) {\n          pppppppbVar18 = pppppppbVar12;\n        }\n        pppppppbVar12 = (byte *******)((int)unaff_s4 + (int)((int)pppppppbVar20 + -1));\n        unaff_s5 = pppppppbVar20;\n        if (pppppppbVar12 < pppppppbVar18) goto LAB_0049179c;\n        bVar3 = *(byte *)pppppppbVar12;\n        unaff_s7 = pppppppbVar12;\n        while ((bVar3 & 0xc0) == 0x80) {\n          pppppppbVar19 = (byte *******)((int)unaff_s7 + -1);\n          unaff_s7 = pppppppbVar12;\n          if (pppppppbVar19 < pppppppbVar18) goto LAB_0049179c;\n          unaff_s7 = pppppppbVar19;\n          bVar3 = *(byte *)pppppppbVar19;\n        }\n        iVar11 = param_1[0x10];\n        pbVar16 = (byte *)((int)unaff_s4 + (param_1[0xc] - (int)unaff_s7));\n        pppppppbVar18 = unaff_s7;\n        if (iVar11 != 0) {\n          pbVar17 = (byte *)0x6;\n          if ((int)pbVar16 < 7) {\n            pbVar17 = pbVar16;\n          }\n          if ((int)(pbVar17 + -1) < 0) {\n            pppppppbVar18 = appppppbStack_34;\n          }\n          else {\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }\n        }\n        local_3c = 0;\n        local_38 = 0;\n        uVar29 = (*(code *)PTR_mbrtowc_004bf2ec)(&local_40);\n        uVar30 = (int)((int)unaff_s4 + (int)pppppppbVar20) - (int)unaff_s7;\n        if ((uVar29 < uVar30) || (0xfffffffd < uVar29)) goto LAB_0049179c;\n        *(undefined1 *)(param_1 + 4) = 0;\n        *(undefined1 *)((int)param_1 + 0x11) = 0;\n        *(undefined1 *)((int)param_1 + 0x12) = 0;\n        *(undefined1 *)((int)param_1 + 0x13) = 0;\n        *(undefined1 *)(param_1 + 5) = 0;\n        *(undefined1 *)((int)param_1 + 0x15) = 0;\n        *(undefined1 *)((int)param_1 + 0x16) = 0;\n        *(undefined1 *)((int)param_1 + 0x17) = 0;\n        param_1[7] = uVar29 - uVar30;\n        unaff_s4 = local_40;\n        if (local_40 == (byte *******)0xffffffff) {\n          iVar11 = param_1[6];\n          goto LAB_004917a0;\n        }\nLAB_00491834:\n        if (*(char *)((int)param_1 + 0x4e) == '\0') {\nLAB_00491840:\n          iVar11 = 2;\n          if (unaff_s4 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        else {\n          iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          iVar11 = 1;\n          if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }\n        param_1[0xf] = iVar11;\n      }\nLAB_00491854:\n      ppppppbVar22 = (byte ******)param_1[7];\n      if (ppppppbVar22 == (byte ******)0x0) {\nLAB_00491860:\n        iVar11 = param_1[7];\n      }\n      else {\n        iVar11 = 0;\n        if (0 < (int)ppppppbVar22) {\n          do {\n            *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n            iVar11 = iVar11 + 1;\n            ppppppbVar22 = (byte ******)param_1[7];\n          } while (iVar11 < (int)ppppppbVar22);\n        }\n        pppppppbVar18 = (byte *******)0xff;\n        if (*(char *)((int)param_1 + 0x4b) == '\0') goto LAB_00491860;\n        (*(code *)PTR_memset_004bf260)(param_1[1]);\n        iVar11 = param_1[7];\n      }\n      param_1[8] = iVar11;\nLAB_00491360:\n      cVar2 = *(char *)((int)param_1 + 0x4b);\n    }\n    if (cVar2 == '\0') {\n      param_1[1] = (int)((int)pppppppbVar20 + param_1[1]);\n    }\n  }\n  param_1[6] = (int)param_2;\n  iVar11 = param_1[0xc];\n  param_1[0xc] = iVar11 - (int)pppppppbVar20;\n  iVar24 = param_1[0xe] - (int)pppppppbVar20;\n  param_1[0xe] = iVar24;\n  if (param_1[0x14] < 2) {\n    if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[7] = iVar11 - (int)pppppppbVar20;\n      goto LAB_00491aa8;\n    }\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      if (param_1[0x10] == 0) goto LAB_00491aa8;\n      FUN_00489d80();\n      param_1[10] = 0;\n    }\n    else {\n      FUN_0048b84c(param_1);\n      param_1[10] = 0;\n    }\n  }\n  else {\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      FUN_0048b928(param_1);\n      param_1[10] = 0;\n      goto LAB_00491aac;\n    }\n    ppppbVar5 = (byte ****)FUN_0048c3a4();\n    if (ppppbVar5 != (byte ****)0x0) goto LAB_00491ab0;\nLAB_00491aa8:\n    param_1[10] = 0;\n  }\nLAB_00491aac:\n  ppppbVar5 = (byte ****)0x0;\nLAB_00491ab0:\n  if (appppppbStack_34[2] == *(byte *******)PTR___stack_chk_guard_004bf38c) {\n    return ppppbVar5;\n  }\n  pcVar32 = FUN_00491b60;\n  ppppppbVar6 = appppppbStack_34[2];\n  (*(code *)PTR___stack_chk_fail_004bf34c)();\n  ppppbStack_84 = *(byte *****)PTR___stack_chk_guard_004bf38c;\n  pppppbVar31 = *ppppppbVar6;\n  if (pppppbVar31[0x17] == (byte ****)0x1) {\n    uVar29 = (uint)((int)ppppppbVar6[3] << 9) >> 0x1f;\n  }\n  else {\n    uVar29 = 0;\n  }\n  ppppppbVar13 = ppppppbVar6;\n  pppppppbVar20 = pppppppbVar18;\n  ppppppbVar21 = ppppppbVar22;\n  piStack_80 = param_1;\n  iStack_7c = iVar24;\n  pppppppbStack_78 = param_2;\n  ppppppbStack_74 = param_3;\n  pppppppbStack_70 = unaff_s4;\n  pppppppbStack_6c = unaff_s5;\n  pppppppbStack_68 = unaff_s6;\n  pppppppbStack_64 = unaff_s7;\n  piStack_60 = unaff_s8;\n  pcStack_5c = pcVar32;\n  if (0 < (int)pppppppbVar18[2]) {\n    iStack_1a8 = 0;\n    do {\n      pppppbVar23 = pppppppbVar18[3][iStack_1a8];\n      ppppppbVar7 = (byte ******)((int)pppppbVar23 * 8);\n      ppppbVar5 = *pppppbVar31 + (int)pppppbVar23 * 2;\n      ppppppbVar13 = (byte ******)(uint)*(byte *)(ppppbVar5 + 1);\n      pppppppbVar20 = (byte *******)&DAT_00000001;\n      if (ppppppbVar13 == (byte ******)&DAT_00000001) {\n        uVar30 = (uint)*(byte *)ppppbVar5;\n        *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        if (uVar29 != 0) {\n          if (uVar30 + 0x80 < 0x180) {\n            piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n          }\n          *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        }\n        if (((int)ppppppbVar6[3] << 9 < 0) &&\n           (ppppppbVar13 = ppppppbVar7, 1 < (int)pppppbVar31[0x17])) {\n          bStack_184 = *(byte *)(*pppppbVar31 + (int)pppppbVar23 * 2);\n          if ((byte ****)((int)pppppbVar23 + 1U) < pppppbVar31[2]) {\n            ppppbVar5 = (byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2));\n            ppppppbVar7 = ppppppbVar7 + 4;\n            if (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400) {\n              puVar15 = auStack_183;\n              do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar14 = auStack_183;\n            }\n          }\n          else {\n            puVar14 = auStack_183;\n          }\n          pppppbStack_18c = (byte *****)0x0;\n          uStack_188 = 0;\n          pppppppbVar20 = (byte *******)&bStack_184;\n          iVar11 = -(int)pppppppbVar20;\n          ppppppbVar13 = (byte ******)&ppppppbStack_190;\n          ppppppbVar21 = (byte ******)(puVar14 + iVar11);\n          ppppppbVar7 = (byte ******)(*(code *)PTR_mbrtowc_004bf2ec)();\n          if ((byte ******)(puVar14 + iVar11) == ppppppbVar7) {\n            pppppppbVar20 = (byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190);\n            ppppppbVar21 = &pppppbStack_18c;\n            ppppppbVar13 = (byte ******)&bStack_184;\n            iVar11 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar11 != -1) {\n              *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n            }\n          }\n        }\n      }\n      else {\n        pppppppbVar20 = (byte *******)&DAT_00000006;\n        if (ppppppbVar13 == (byte ******)0x3) {\n          iStack_1ac = 0;\n          iVar11 = 0;\n          do {\n            uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac);\n            uVar30 = 0;\n            iVar24 = iVar11;\n            do {\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            } while (uVar30 != 0x20);\n            iVar11 = iVar11 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar11 != 0x100);\n        }\n        else if (ppppppbVar13 == (byte ******)&DAT_00000006) {\n          pppbVar25 = *ppppbVar5;\n          if (((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))) {\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }\n          else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }\n          if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }\n        }\n      }\n      iStack_1a8 = iStack_1a8 + 1;\n    } while (iStack_1a8 < (int)pppppppbVar18[2]);\n  }\n  if (ppppbStack_84 == *(byte *****)PTR___stack_chk_guard_004bf38c) {\n    return *(byte *****)PTR___stack_chk_guard_004bf38c;\n  }\n  (*(code *)PTR___stack_chk_fail_004bf34c)();\n  pppppbVar31 = ppppppbVar21[1];\n  if (pppppbVar31 == (byte *****)0x0) {\n    *ppppppbVar13 = (byte *****)0x0;\n  }\n  else {\n    if (0 < (int)pppppbVar31) {\n      pppppbVar23 = ppppppbVar21[2];\n      pppppbVar26 = pppppbVar23 + (int)pppppbVar31;\n      do {\n        ppppbVar5 = *pppppbVar23;\n        pppppbVar23 = pppppbVar23 + 1;\n        pppppbVar31 = (byte *****)((int)pppppbVar31 + (int)ppppbVar5);\n      } while (pppppbVar23 != pppppbVar26);\n    }\n    pppppbVar23 = pppppppbVar20[8][((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3];\n    if (0 < (int)pppppbVar23) {\n      pppppbVar26 = (pppppppbVar20[8] + ((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3)[2];\n      pppppbVar28 = (byte *****)0x0;\n      do {\n        ppppbVar5 = *pppppbVar26;\n        if ((pppppbVar31 == (byte *****)*ppppbVar5) &&\n           (iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21), iVar11 != 0)) {\n          return ppppbVar5;\n        }\n        pppppbVar28 = (byte *****)((int)pppppbVar28 + 1);\n        pppppbVar26 = pppppbVar26 + 1;\n      } while (pppppbVar23 != pppppbVar28);\n    }\n    ppppbVar5 = (byte ****)(*(code *)PTR_calloc_004bf160)(0x38,1);\n    if (ppppbVar5 != (byte ****)0x0) {\n      iVar11 = FUN_0048c08c(ppppbVar5 + 1,ppppppbVar21);\n      if (iVar11 == 0) {\n        ppppbVar5[10] = (byte ***)(ppppbVar5 + 1);\n        if (0 < (int)ppppppbVar21[1]) {\n          ppppppbVar22 = *pppppppbVar20;\n          pppppbVar23 = ppppppbVar21[2];\n          pppppbVar26 = pppppbVar23 + (int)ppppppbVar21[1];\n          do {\n            ppppbVar10 = *pppppbVar23;\n            cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1);\n            if (cVar2 == '\x01') {\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }\n            pppppbVar23 = pppppbVar23 + 1;\n          } while (pppppbVar23 != pppppbVar26);\n        }\n        iVar11 = FUN_0048b6d0(pppppppbVar20,ppppbVar5,pppppbVar31);\n        if (iVar11 == 0) {\n          return ppppbVar5;\n        }\n        FUN_0048e3e8(ppppbVar5);\n      }\n      else {\n        (*(code *)PTR_free_004bf39c)(ppppbVar5);\n      }\n    }\n    *ppppppbVar13 = (byte *****)0xc;\n  }\n  return (byte ****)0x0;\n}" (type_identifier "byte") (pointer_declarator "**** FUN_00491238(int *param_1,byte *******param_2,byte ******param_3)" (* "*") (pointer_declarator "*** FUN_00491238(int *param_1,byte *******param_2,byte ******param_3)" (* "*") (pointer_declarator "** FUN_00491238(int *param_1,byte *******param_2,byte ******param_3)" (* "*") (pointer_declarator "* FUN_00491238(int *param_1,byte *******param_2,byte ******param_3)" (* "*") (function_declarator "FUN_00491238(int *param_1,byte *******param_2,byte ******param_3)" (identifier "FUN_00491238") (parameter_list "(int *param_1,byte *******param_2,byte ******param_3)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "byte *******param_2" (type_identifier "byte") (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 "byte ******param_3" (type_identifier "byte") (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  bool bVar1;\n  char cVar2;\n  byte bVar3;\n  byte bVar4;\n  byte ****ppppbVar5;\n  byte ******ppppppbVar6;\n  byte ******ppppppbVar7;\n  int iVar8;\n  int *piVar9;\n  byte ****ppppbVar10;\n  int iVar11;\n  byte *******pppppppbVar12;\n  byte ******ppppppbVar13;\n  undefined1 *puVar14;\n  byte *pbVar16;\n  byte *pbVar17;\n  byte *******pppppppbVar18;\n  byte *******pppppppbVar19;\n  byte *******pppppppbVar20;\n  byte ******ppppppbVar21;\n  byte ******ppppppbVar22;\n  byte *****pppppbVar23;\n  int iVar24;\n  byte ***pppbVar25;\n  byte *****pppppbVar26;\n  uint uVar27;\n  byte *****pppppbVar28;\n  byte *******unaff_s4;\n  byte *******unaff_s5;\n  byte *******unaff_s6;\n  uint uVar29;\n  byte *******unaff_s7;\n  uint uVar30;\n  int *unaff_s8;\n  byte *****pppppbVar31;\n  code *pcVar32;\n  int iStack_1ac;\n  int iStack_1a8;\n  byte ******ppppppbStack_190;\n  byte *****pppppbStack_18c;\n  undefined4 uStack_188;\n  byte bStack_184;\n  undefined1 auStack_183 [255];\n  byte ****ppppbStack_84;\n  int *piStack_80;\n  int iStack_7c;\n  byte *******pppppppbStack_78;\n  byte ******ppppppbStack_74;\n  byte *******pppppppbStack_70;\n  byte *******pppppppbStack_6c;\n  byte *******pppppppbStack_68;\n  byte *******pppppppbStack_64;\n  int *piStack_60;\n  code *pcStack_5c;\n  byte *******local_40;\n  int local_3c;\n  int local_38;\n  byte ******appppppbStack_34 [3];\n  undefined1 *puVar15;\n  \n  appppppbStack_34[2] = *(byte *******)PTR___stack_chk_guard_004bf38c;\n  pppppppbVar20 = (byte *******)((int)param_2 - param_1[6]);\n  if ((int)param_2 < param_1[6]) {\n    if (1 < param_1[0x14]) {\n      *(undefined1 *)(param_1 + 4) = 0;\n      *(undefined1 *)((int)param_1 + 0x11) = 0;\n      *(undefined1 *)((int)param_1 + 0x12) = 0;\n      *(undefined1 *)((int)param_1 + 0x13) = 0;\n      *(undefined1 *)(param_1 + 5) = 0;\n      *(undefined1 *)((int)param_1 + 0x15) = 0;\n      *(undefined1 *)((int)param_1 + 0x16) = 0;\n      *(undefined1 *)((int)param_1 + 0x17) = 0;\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    iVar11 = 6;\n    if (((uint)param_3 & 1) != 0) {\n      iVar11 = 4;\n    }\n    param_1[0xf] = iVar11;\n    pppppppbVar20 = param_2;\n    if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[1] = *param_1;\n    }\n  }\n  pppppppbVar18 = param_2;\n  ppppppbVar22 = param_3;\n  if (pppppppbVar20 != (byte *******)0x0) {\n    if ((int)pppppppbVar20 < param_1[8]) {\n      if (*(char *)(param_1 + 0x13) == '\0') {\n        iVar11 = FUN_0048efec(param_1,(byte *)((int)pppppppbVar20 + -1));\n        param_1[0xf] = iVar11;\n        pppppppbVar18 = (byte *******)((int)pppppppbVar20 * 4);\n        if (param_1[0x14] < 2) {\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        else {\n          ppppppbVar22 = (byte ******)((param_1[7] - (int)pppppppbVar20) * 4);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar18 + param_1[2]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        if (cVar2 == '\0') {\n          iVar11 = param_1[7];\n        }\n        else {\n          ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar11 = param_1[7];\n        }\n        param_1[7] = iVar11 - (int)pppppppbVar20;\n        param_1[8] = param_1[8] - (int)pppppppbVar20;\n        goto LAB_00491360;\n      }\n      unaff_s6 = (byte *******)param_1[7];\n      unaff_s5 = (byte *******)param_1[3];\n      pbVar16 = (byte *)0x0;\n      pppppppbVar18 = unaff_s6;\n      do {\n        unaff_s4 = (byte *******)((int)(pbVar16 + (int)pppppppbVar18) / 2);\n        ppppppbVar6 = unaff_s5[(int)unaff_s4];\n        bVar1 = (int)pbVar16 < (int)unaff_s4;\n        pppppppbVar12 = unaff_s4;\n        if ((int)ppppppbVar6 <= (int)pppppppbVar20) {\n          pbVar16 = (byte *)((int)unaff_s4 + 1);\n          if ((int)pppppppbVar20 <= (int)ppppppbVar6) goto LAB_0049145c;\n          bVar1 = (int)pbVar16 < (int)pppppppbVar18;\n          pppppppbVar12 = pppppppbVar18;\n        }\n        pppppppbVar18 = pppppppbVar12;\n      } while (bVar1);\n      if ((int)ppppppbVar6 < (int)pppppppbVar20) {\n        unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n      }\nLAB_0049145c:\n      pppppppbVar18 = (byte *******)((int)unaff_s4 + -1);\n      iVar11 = FUN_0048efec(param_1);\n      param_1[0xf] = iVar11;\n      if ((((int)unaff_s6 <= (int)pppppppbVar20) || (pppppppbVar20 != unaff_s4)) ||\n         (param_3 = (byte ******)((int)pppppppbVar20 * 4),\n         (byte *******)unaff_s5[(int)unaff_s4] != pppppppbVar20)) {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        if ((0 < (int)unaff_s4) &&\n           ((byte *******)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pppppppbVar20)) {\n          pppppppbVar12 = unaff_s5 + (int)(unaff_s4 + 0x10000000);\n          do {\n            unaff_s4 = (byte *******)((int)unaff_s4 + -1);\n            if (unaff_s4 == (byte *******)0x0) break;\n            pppppppbVar19 = pppppppbVar12 + -2;\n            pppppppbVar12 = pppppppbVar12 + -1;\n          } while ((byte *******)*pppppppbVar19 == pppppppbVar20);\n        }\n        if ((int)unaff_s4 < (int)unaff_s6) {\n          piVar9 = (int *)(param_1[2] + (int)unaff_s4 * 4);\n          iVar11 = *piVar9;\n          while (iVar11 == -1) {\n            unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n            piVar9 = piVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            iVar11 = *piVar9;\n          }\nLAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;\n          ppppppbVar22 = (byte ******)((int)*unaff_s4 - (int)pppppppbVar20);\n          param_1[7] = (int)ppppppbVar22;\n          if (ppppppbVar22 == (byte ******)0x0) goto LAB_00491650;\n          if (0 < (int)ppppppbVar22) {\n            iVar11 = 0;\n            do {\n              *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n              iVar11 = iVar11 + 1;\n              ppppppbVar22 = (byte ******)param_1[7];\n            } while (iVar11 < (int)ppppppbVar22);\n          }\n          pppppppbVar18 = (byte *******)0xff;\n          (*(code *)PTR_memset_004bf260)(param_1[1]);\n          iVar11 = param_1[7];\n        }\n        else {\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          param_1[7] = 0;\nLAB_00491650:\n          iVar11 = param_1[7];\n        }\n        param_1[8] = iVar11;\n        goto LAB_00491360;\n      }\n      (*(code *)PTR_memmove_004bf3a4)\n                (param_1[2],param_1[2] + (int)param_3,((int)unaff_s6 - (int)pppppppbVar20) * 4);\n      ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n      pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n      (*(code *)PTR_memmove_004bf3a4)();\n      iVar11 = param_1[7];\n      param_1[7] = iVar11 - (int)pppppppbVar20;\n      param_1[8] = param_1[8] - (int)pppppppbVar20;\n      if (iVar11 - (int)pppppppbVar20 < 1) goto LAB_00491360;\n      iVar11 = 0;\n      do {\n        *(int *)(param_1[3] + iVar11 * 4) = *(int *)(param_1[3] + (int)param_3) - (int)pppppppbVar20\n        ;\n        iVar11 = iVar11 + 1;\n        param_3 = param_3 + 1;\n      } while (iVar11 < param_1[7]);\n      cVar2 = *(char *)((int)param_1 + 0x4b);\n    }\n    else {\n      unaff_s6 = (byte *******)param_1[7];\n      if (*(char *)(param_1 + 0x13) != '\0') {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n      }\n      param_1[7] = 0;\n      if (param_1[0x14] < 2) {\n        pppppppbVar18 =\n             (byte *******)(uint)*(byte *)((int)pppppppbVar20 + param_1[6] + *param_1 + -1);\n        param_1[8] = 0;\n        if (param_1[0x10] != 0) {\n          pppppppbVar18 = (byte *******)(uint)*(byte *)((int)pppppppbVar18 + param_1[0x10]);\n        }\n        iVar11 = 1;\n        if ((*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f) & 1) == 0) {\n          iVar11 = 2;\n          if (pppppppbVar18 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        param_1[0xf] = iVar11;\n        goto LAB_00491360;\n      }\n      if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0049179c:\n        iVar11 = param_1[6];\nLAB_004917a0:\n        pppppppbVar12 = (byte *******)(iVar11 + param_1[8]);\n        if ((int)pppppppbVar12 < (int)param_2) {\n          unaff_s8 = param_1 + 4;\n          unaff_s7 = (byte *******)&local_40;\n          do {\n            unaff_s5 = pppppppbVar12;\n            iVar24 = param_1[0xb];\n            local_3c = param_1[4];\n            local_38 = param_1[5];\n            pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1);\n            iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8);\n            unaff_s4 = local_40;\n            if (0xfffffffc < iVar11 - 1U) {\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }\n            pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11);\n          } while ((int)pppppppbVar12 < (int)param_2);\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n          if (unaff_s4 != (byte *******)0xffffffff) goto LAB_00491834;\n        }\n        else {\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n        }\n        pppppppbVar18 = (byte *******)((int)unaff_s6 + -1);\n        iVar11 = FUN_0048efec(param_1,pppppppbVar18,param_3);\n        param_1[0xf] = iVar11;\n      }\n      else {\n        pppppppbVar12 = (byte *******)*param_1;\n        unaff_s4 = (byte *******)((int)pppppppbVar12 + param_1[6]);\n        pppppppbVar18 = (byte *******)((int)unaff_s4 + ((int)pppppppbVar20 - param_1[0x14]));\n        if (pppppppbVar18 <= pppppppbVar12) {\n          pppppppbVar18 = pppppppbVar12;\n        }\n        pppppppbVar12 = (byte *******)((int)unaff_s4 + (int)((int)pppppppbVar20 + -1));\n        unaff_s5 = pppppppbVar20;\n        if (pppppppbVar12 < pppppppbVar18) goto LAB_0049179c;\n        bVar3 = *(byte *)pppppppbVar12;\n        unaff_s7 = pppppppbVar12;\n        while ((bVar3 & 0xc0) == 0x80) {\n          pppppppbVar19 = (byte *******)((int)unaff_s7 + -1);\n          unaff_s7 = pppppppbVar12;\n          if (pppppppbVar19 < pppppppbVar18) goto LAB_0049179c;\n          unaff_s7 = pppppppbVar19;\n          bVar3 = *(byte *)pppppppbVar19;\n        }\n        iVar11 = param_1[0x10];\n        pbVar16 = (byte *)((int)unaff_s4 + (param_1[0xc] - (int)unaff_s7));\n        pppppppbVar18 = unaff_s7;\n        if (iVar11 != 0) {\n          pbVar17 = (byte *)0x6;\n          if ((int)pbVar16 < 7) {\n            pbVar17 = pbVar16;\n          }\n          if ((int)(pbVar17 + -1) < 0) {\n            pppppppbVar18 = appppppbStack_34;\n          }\n          else {\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }\n        }\n        local_3c = 0;\n        local_38 = 0;\n        uVar29 = (*(code *)PTR_mbrtowc_004bf2ec)(&local_40);\n        uVar30 = (int)((int)unaff_s4 + (int)pppppppbVar20) - (int)unaff_s7;\n        if ((uVar29 < uVar30) || (0xfffffffd < uVar29)) goto LAB_0049179c;\n        *(undefined1 *)(param_1 + 4) = 0;\n        *(undefined1 *)((int)param_1 + 0x11) = 0;\n        *(undefined1 *)((int)param_1 + 0x12) = 0;\n        *(undefined1 *)((int)param_1 + 0x13) = 0;\n        *(undefined1 *)(param_1 + 5) = 0;\n        *(undefined1 *)((int)param_1 + 0x15) = 0;\n        *(undefined1 *)((int)param_1 + 0x16) = 0;\n        *(undefined1 *)((int)param_1 + 0x17) = 0;\n        param_1[7] = uVar29 - uVar30;\n        unaff_s4 = local_40;\n        if (local_40 == (byte *******)0xffffffff) {\n          iVar11 = param_1[6];\n          goto LAB_004917a0;\n        }\nLAB_00491834:\n        if (*(char *)((int)param_1 + 0x4e) == '\0') {\nLAB_00491840:\n          iVar11 = 2;\n          if (unaff_s4 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        else {\n          iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          iVar11 = 1;\n          if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }\n        param_1[0xf] = iVar11;\n      }\nLAB_00491854:\n      ppppppbVar22 = (byte ******)param_1[7];\n      if (ppppppbVar22 == (byte ******)0x0) {\nLAB_00491860:\n        iVar11 = param_1[7];\n      }\n      else {\n        iVar11 = 0;\n        if (0 < (int)ppppppbVar22) {\n          do {\n            *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n            iVar11 = iVar11 + 1;\n            ppppppbVar22 = (byte ******)param_1[7];\n          } while (iVar11 < (int)ppppppbVar22);\n        }\n        pppppppbVar18 = (byte *******)0xff;\n        if (*(char *)((int)param_1 + 0x4b) == '\0') goto LAB_00491860;\n        (*(code *)PTR_memset_004bf260)(param_1[1]);\n        iVar11 = param_1[7];\n      }\n      param_1[8] = iVar11;\nLAB_00491360:\n      cVar2 = *(char *)((int)param_1 + 0x4b);\n    }\n    if (cVar2 == '\0') {\n      param_1[1] = (int)((int)pppppppbVar20 + param_1[1]);\n    }\n  }\n  param_1[6] = (int)param_2;\n  iVar11 = param_1[0xc];\n  param_1[0xc] = iVar11 - (int)pppppppbVar20;\n  iVar24 = param_1[0xe] - (int)pppppppbVar20;\n  param_1[0xe] = iVar24;\n  if (param_1[0x14] < 2) {\n    if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[7] = iVar11 - (int)pppppppbVar20;\n      goto LAB_00491aa8;\n    }\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      if (param_1[0x10] == 0) goto LAB_00491aa8;\n      FUN_00489d80();\n      param_1[10] = 0;\n    }\n    else {\n      FUN_0048b84c(param_1);\n      param_1[10] = 0;\n    }\n  }\n  else {\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      FUN_0048b928(param_1);\n      param_1[10] = 0;\n      goto LAB_00491aac;\n    }\n    ppppbVar5 = (byte ****)FUN_0048c3a4();\n    if (ppppbVar5 != (byte ****)0x0) goto LAB_00491ab0;\nLAB_00491aa8:\n    param_1[10] = 0;\n  }\nLAB_00491aac:\n  ppppbVar5 = (byte ****)0x0;\nLAB_00491ab0:\n  if (appppppbStack_34[2] == *(byte *******)PTR___stack_chk_guard_004bf38c) {\n    return ppppbVar5;\n  }\n  pcVar32 = FUN_00491b60;\n  ppppppbVar6 = appppppbStack_34[2];\n  (*(code *)PTR___stack_chk_fail_004bf34c)();\n  ppppbStack_84 = *(byte *****)PTR___stack_chk_guard_004bf38c;\n  pppppbVar31 = *ppppppbVar6;\n  if (pppppbVar31[0x17] == (byte ****)0x1) {\n    uVar29 = (uint)((int)ppppppbVar6[3] << 9) >> 0x1f;\n  }\n  else {\n    uVar29 = 0;\n  }\n  ppppppbVar13 = ppppppbVar6;\n  pppppppbVar20 = pppppppbVar18;\n  ppppppbVar21 = ppppppbVar22;\n  piStack_80 = param_1;\n  iStack_7c = iVar24;\n  pppppppbStack_78 = param_2;\n  ppppppbStack_74 = param_3;\n  pppppppbStack_70 = unaff_s4;\n  pppppppbStack_6c = unaff_s5;\n  pppppppbStack_68 = unaff_s6;\n  pppppppbStack_64 = unaff_s7;\n  piStack_60 = unaff_s8;\n  pcStack_5c = pcVar32;\n  if (0 < (int)pppppppbVar18[2]) {\n    iStack_1a8 = 0;\n    do {\n      pppppbVar23 = pppppppbVar18[3][iStack_1a8];\n      ppppppbVar7 = (byte ******)((int)pppppbVar23 * 8);\n      ppppbVar5 = *pppppbVar31 + (int)pppppbVar23 * 2;\n      ppppppbVar13 = (byte ******)(uint)*(byte *)(ppppbVar5 + 1);\n      pppppppbVar20 = (byte *******)&DAT_00000001;\n      if (ppppppbVar13 == (byte ******)&DAT_00000001) {\n        uVar30 = (uint)*(byte *)ppppbVar5;\n        *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        if (uVar29 != 0) {\n          if (uVar30 + 0x80 < 0x180) {\n            piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n          }\n          *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        }\n        if (((int)ppppppbVar6[3] << 9 < 0) &&\n           (ppppppbVar13 = ppppppbVar7, 1 < (int)pppppbVar31[0x17])) {\n          bStack_184 = *(byte *)(*pppppbVar31 + (int)pppppbVar23 * 2);\n          if ((byte ****)((int)pppppbVar23 + 1U) < pppppbVar31[2]) {\n            ppppbVar5 = (byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2));\n            ppppppbVar7 = ppppppbVar7 + 4;\n            if (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400) {\n              puVar15 = auStack_183;\n              do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar14 = auStack_183;\n            }\n          }\n          else {\n            puVar14 = auStack_183;\n          }\n          pppppbStack_18c = (byte *****)0x0;\n          uStack_188 = 0;\n          pppppppbVar20 = (byte *******)&bStack_184;\n          iVar11 = -(int)pppppppbVar20;\n          ppppppbVar13 = (byte ******)&ppppppbStack_190;\n          ppppppbVar21 = (byte ******)(puVar14 + iVar11);\n          ppppppbVar7 = (byte ******)(*(code *)PTR_mbrtowc_004bf2ec)();\n          if ((byte ******)(puVar14 + iVar11) == ppppppbVar7) {\n            pppppppbVar20 = (byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190);\n            ppppppbVar21 = &pppppbStack_18c;\n            ppppppbVar13 = (byte ******)&bStack_184;\n            iVar11 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar11 != -1) {\n              *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n            }\n          }\n        }\n      }\n      else {\n        pppppppbVar20 = (byte *******)&DAT_00000006;\n        if (ppppppbVar13 == (byte ******)0x3) {\n          iStack_1ac = 0;\n          iVar11 = 0;\n          do {\n            uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac);\n            uVar30 = 0;\n            iVar24 = iVar11;\n            do {\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            } while (uVar30 != 0x20);\n            iVar11 = iVar11 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar11 != 0x100);\n        }\n        else if (ppppppbVar13 == (byte ******)&DAT_00000006) {\n          pppbVar25 = *ppppbVar5;\n          if (((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))) {\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }\n          else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }\n          if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }\n        }\n      }\n      iStack_1a8 = iStack_1a8 + 1;\n    } while (iStack_1a8 < (int)pppppppbVar18[2]);\n  }\n  if (ppppbStack_84 == *(byte *****)PTR___stack_chk_guard_004bf38c) {\n    return *(byte *****)PTR___stack_chk_guard_004bf38c;\n  }\n  (*(code *)PTR___stack_chk_fail_004bf34c)();\n  pppppbVar31 = ppppppbVar21[1];\n  if (pppppbVar31 == (byte *****)0x0) {\n    *ppppppbVar13 = (byte *****)0x0;\n  }\n  else {\n    if (0 < (int)pppppbVar31) {\n      pppppbVar23 = ppppppbVar21[2];\n      pppppbVar26 = pppppbVar23 + (int)pppppbVar31;\n      do {\n        ppppbVar5 = *pppppbVar23;\n        pppppbVar23 = pppppbVar23 + 1;\n        pppppbVar31 = (byte *****)((int)pppppbVar31 + (int)ppppbVar5);\n      } while (pppppbVar23 != pppppbVar26);\n    }\n    pppppbVar23 = pppppppbVar20[8][((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3];\n    if (0 < (int)pppppbVar23) {\n      pppppbVar26 = (pppppppbVar20[8] + ((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3)[2];\n      pppppbVar28 = (byte *****)0x0;\n      do {\n        ppppbVar5 = *pppppbVar26;\n        if ((pppppbVar31 == (byte *****)*ppppbVar5) &&\n           (iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21), iVar11 != 0)) {\n          return ppppbVar5;\n        }\n        pppppbVar28 = (byte *****)((int)pppppbVar28 + 1);\n        pppppbVar26 = pppppbVar26 + 1;\n      } while (pppppbVar23 != pppppbVar28);\n    }\n    ppppbVar5 = (byte ****)(*(code *)PTR_calloc_004bf160)(0x38,1);\n    if (ppppbVar5 != (byte ****)0x0) {\n      iVar11 = FUN_0048c08c(ppppbVar5 + 1,ppppppbVar21);\n      if (iVar11 == 0) {\n        ppppbVar5[10] = (byte ***)(ppppbVar5 + 1);\n        if (0 < (int)ppppppbVar21[1]) {\n          ppppppbVar22 = *pppppppbVar20;\n          pppppbVar23 = ppppppbVar21[2];\n          pppppbVar26 = pppppbVar23 + (int)ppppppbVar21[1];\n          do {\n            ppppbVar10 = *pppppbVar23;\n            cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1);\n            if (cVar2 == '\x01') {\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }\n            pppppbVar23 = pppppbVar23 + 1;\n          } while (pppppbVar23 != pppppbVar26);\n        }\n        iVar11 = FUN_0048b6d0(pppppppbVar20,ppppbVar5,pppppbVar31);\n        if (iVar11 == 0) {\n          return ppppbVar5;\n        }\n        FUN_0048e3e8(ppppbVar5);\n      }\n      else {\n        (*(code *)PTR_free_004bf39c)(ppppbVar5);\n      }\n    }\n    *ppppppbVar13 = (byte *****)0xc;\n  }\n  return (byte ****)0x0;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "byte bVar3;" (type_identifier "byte") (identifier "bVar3") (; ";")) (declaration "byte bVar4;" (type_identifier "byte") (identifier "bVar4") (; ";")) (declaration "byte ****ppppbVar5;" (type_identifier "byte") (pointer_declarator "****ppppbVar5" (* "*") (pointer_declarator "***ppppbVar5" (* "*") (pointer_declarator "**ppppbVar5" (* "*") (pointer_declarator "*ppppbVar5" (* "*") (identifier "ppppbVar5"))))) (; ";")) (declaration "byte ******ppppppbVar6;" (type_identifier "byte") (pointer_declarator "******ppppppbVar6" (* "*") (pointer_declarator "*****ppppppbVar6" (* "*") (pointer_declarator "****ppppppbVar6" (* "*") (pointer_declarator "***ppppppbVar6" (* "*") (pointer_declarator "**ppppppbVar6" (* "*") (pointer_declarator "*ppppppbVar6" (* "*") (identifier "ppppppbVar6"))))))) (; ";")) (declaration "byte ******ppppppbVar7;" (type_identifier "byte") (pointer_declarator "******ppppppbVar7" (* "*") (pointer_declarator "*****ppppppbVar7" (* "*") (pointer_declarator "****ppppppbVar7" (* "*") (pointer_declarator "***ppppppbVar7" (* "*") (pointer_declarator "**ppppppbVar7" (* "*") (pointer_declarator "*ppppppbVar7" (* "*") (identifier "ppppppbVar7"))))))) (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int *piVar9;" (primitive_type "int") (pointer_declarator "*piVar9" (* "*") (identifier "piVar9")) (; ";")) (declaration "byte ****ppppbVar10;" (type_identifier "byte") (pointer_declarator "****ppppbVar10" (* "*") (pointer_declarator "***ppppbVar10" (* "*") (pointer_declarator "**ppppbVar10" (* "*") (pointer_declarator "*ppppbVar10" (* "*") (identifier "ppppbVar10"))))) (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "byte *******pppppppbVar12;" (type_identifier "byte") (pointer_declarator "*******pppppppbVar12" (* "*") (pointer_declarator "******pppppppbVar12" (* "*") (pointer_declarator "*****pppppppbVar12" (* "*") (pointer_declarator "****pppppppbVar12" (* "*") (pointer_declarator "***pppppppbVar12" (* "*") (pointer_declarator "**pppppppbVar12" (* "*") (pointer_declarator "*pppppppbVar12" (* "*") (identifier "pppppppbVar12")))))))) (; ";")) (declaration "byte ******ppppppbVar13;" (type_identifier "byte") (pointer_declarator "******ppppppbVar13" (* "*") (pointer_declarator "*****ppppppbVar13" (* "*") (pointer_declarator "****ppppppbVar13" (* "*") (pointer_declarator "***ppppppbVar13" (* "*") (pointer_declarator "**ppppppbVar13" (* "*") (pointer_declarator "*ppppppbVar13" (* "*") (identifier "ppppppbVar13"))))))) (; ";")) (declaration "undefined1 *puVar14;" (type_identifier "undefined1") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "byte *pbVar16;" (type_identifier "byte") (pointer_declarator "*pbVar16" (* "*") (identifier "pbVar16")) (; ";")) (declaration "byte *pbVar17;" (type_identifier "byte") (pointer_declarator "*pbVar17" (* "*") (identifier "pbVar17")) (; ";")) (declaration "byte *******pppppppbVar18;" (type_identifier "byte") (pointer_declarator "*******pppppppbVar18" (* "*") (pointer_declarator "******pppppppbVar18" (* "*") (pointer_declarator "*****pppppppbVar18" (* "*") (pointer_declarator "****pppppppbVar18" (* "*") (pointer_declarator "***pppppppbVar18" (* "*") (pointer_declarator "**pppppppbVar18" (* "*") (pointer_declarator "*pppppppbVar18" (* "*") (identifier "pppppppbVar18")))))))) (; ";")) (declaration "byte *******pppppppbVar19;" (type_identifier "byte") (pointer_declarator "*******pppppppbVar19" (* "*") (pointer_declarator "******pppppppbVar19" (* "*") (pointer_declarator "*****pppppppbVar19" (* "*") (pointer_declarator "****pppppppbVar19" (* "*") (pointer_declarator "***pppppppbVar19" (* "*") (pointer_declarator "**pppppppbVar19" (* "*") (pointer_declarator "*pppppppbVar19" (* "*") (identifier "pppppppbVar19")))))))) (; ";")) (declaration "byte *******pppppppbVar20;" (type_identifier "byte") (pointer_declarator "*******pppppppbVar20" (* "*") (pointer_declarator "******pppppppbVar20" (* "*") (pointer_declarator "*****pppppppbVar20" (* "*") (pointer_declarator "****pppppppbVar20" (* "*") (pointer_declarator "***pppppppbVar20" (* "*") (pointer_declarator "**pppppppbVar20" (* "*") (pointer_declarator "*pppppppbVar20" (* "*") (identifier "pppppppbVar20")))))))) (; ";")) (declaration "byte ******ppppppbVar21;" (type_identifier "byte") (pointer_declarator "******ppppppbVar21" (* "*") (pointer_declarator "*****ppppppbVar21" (* "*") (pointer_declarator "****ppppppbVar21" (* "*") (pointer_declarator "***ppppppbVar21" (* "*") (pointer_declarator "**ppppppbVar21" (* "*") (pointer_declarator "*ppppppbVar21" (* "*") (identifier "ppppppbVar21"))))))) (; ";")) (declaration "byte ******ppppppbVar22;" (type_identifier "byte") (pointer_declarator "******ppppppbVar22" (* "*") (pointer_declarator "*****ppppppbVar22" (* "*") (pointer_declarator "****ppppppbVar22" (* "*") (pointer_declarator "***ppppppbVar22" (* "*") (pointer_declarator "**ppppppbVar22" (* "*") (pointer_declarator "*ppppppbVar22" (* "*") (identifier "ppppppbVar22"))))))) (; ";")) (declaration "byte *****pppppbVar23;" (type_identifier "byte") (pointer_declarator "*****pppppbVar23" (* "*") (pointer_declarator "****pppppbVar23" (* "*") (pointer_declarator "***pppppbVar23" (* "*") (pointer_declarator "**pppppbVar23" (* "*") (pointer_declarator "*pppppbVar23" (* "*") (identifier "pppppbVar23")))))) (; ";")) (declaration "int iVar24;" (primitive_type "int") (identifier "iVar24") (; ";")) (declaration "byte ***pppbVar25;" (type_identifier "byte") (pointer_declarator "***pppbVar25" (* "*") (pointer_declarator "**pppbVar25" (* "*") (pointer_declarator "*pppbVar25" (* "*") (identifier "pppbVar25")))) (; ";")) (declaration "byte *****pppppbVar26;" (type_identifier "byte") (pointer_declarator "*****pppppbVar26" (* "*") (pointer_declarator "****pppppbVar26" (* "*") (pointer_declarator "***pppppbVar26" (* "*") (pointer_declarator "**pppppbVar26" (* "*") (pointer_declarator "*pppppbVar26" (* "*") (identifier "pppppbVar26")))))) (; ";")) (declaration "uint uVar27;" (type_identifier "uint") (identifier "uVar27") (; ";")) (declaration "byte *****pppppbVar28;" (type_identifier "byte") (pointer_declarator "*****pppppbVar28" (* "*") (pointer_declarator "****pppppbVar28" (* "*") (pointer_declarator "***pppppbVar28" (* "*") (pointer_declarator "**pppppbVar28" (* "*") (pointer_declarator "*pppppbVar28" (* "*") (identifier "pppppbVar28")))))) (; ";")) (declaration "byte *******unaff_s4;" (type_identifier "byte") (pointer_declarator "*******unaff_s4" (* "*") (pointer_declarator "******unaff_s4" (* "*") (pointer_declarator "*****unaff_s4" (* "*") (pointer_declarator "****unaff_s4" (* "*") (pointer_declarator "***unaff_s4" (* "*") (pointer_declarator "**unaff_s4" (* "*") (pointer_declarator "*unaff_s4" (* "*") (identifier "unaff_s4")))))))) (; ";")) (declaration "byte *******unaff_s5;" (type_identifier "byte") (pointer_declarator "*******unaff_s5" (* "*") (pointer_declarator "******unaff_s5" (* "*") (pointer_declarator "*****unaff_s5" (* "*") (pointer_declarator "****unaff_s5" (* "*") (pointer_declarator "***unaff_s5" (* "*") (pointer_declarator "**unaff_s5" (* "*") (pointer_declarator "*unaff_s5" (* "*") (identifier "unaff_s5")))))))) (; ";")) (declaration "byte *******unaff_s6;" (type_identifier "byte") (pointer_declarator "*******unaff_s6" (* "*") (pointer_declarator "******unaff_s6" (* "*") (pointer_declarator "*****unaff_s6" (* "*") (pointer_declarator "****unaff_s6" (* "*") (pointer_declarator "***unaff_s6" (* "*") (pointer_declarator "**unaff_s6" (* "*") (pointer_declarator "*unaff_s6" (* "*") (identifier "unaff_s6")))))))) (; ";")) (declaration "uint uVar29;" (type_identifier "uint") (identifier "uVar29") (; ";")) (declaration "byte *******unaff_s7;" (type_identifier "byte") (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 "uint uVar30;" (type_identifier "uint") (identifier "uVar30") (; ";")) (declaration "int *unaff_s8;" (primitive_type "int") (pointer_declarator "*unaff_s8" (* "*") (identifier "unaff_s8")) (; ";")) (declaration "byte *****pppppbVar31;" (type_identifier "byte") (pointer_declarator "*****pppppbVar31" (* "*") (pointer_declarator "****pppppbVar31" (* "*") (pointer_declarator "***pppppbVar31" (* "*") (pointer_declarator "**pppppbVar31" (* "*") (pointer_declarator "*pppppbVar31" (* "*") (identifier "pppppbVar31")))))) (; ";")) (declaration "code *pcVar32;" (type_identifier "code") (pointer_declarator "*pcVar32" (* "*") (identifier "pcVar32")) (; ";")) (declaration "int iStack_1ac;" (primitive_type "int") (identifier "iStack_1ac") (; ";")) (declaration "int iStack_1a8;" (primitive_type "int") (identifier "iStack_1a8") (; ";")) (declaration "byte ******ppppppbStack_190;" (type_identifier "byte") (pointer_declarator "******ppppppbStack_190" (* "*") (pointer_declarator "*****ppppppbStack_190" (* "*") (pointer_declarator "****ppppppbStack_190" (* "*") (pointer_declarator "***ppppppbStack_190" (* "*") (pointer_declarator "**ppppppbStack_190" (* "*") (pointer_declarator "*ppppppbStack_190" (* "*") (identifier "ppppppbStack_190"))))))) (; ";")) (declaration "byte *****pppppbStack_18c;" (type_identifier "byte") (pointer_declarator "*****pppppbStack_18c" (* "*") (pointer_declarator "****pppppbStack_18c" (* "*") (pointer_declarator "***pppppbStack_18c" (* "*") (pointer_declarator "**pppppbStack_18c" (* "*") (pointer_declarator "*pppppbStack_18c" (* "*") (identifier "pppppbStack_18c")))))) (; ";")) (declaration "undefined4 uStack_188;" (type_identifier "undefined4") (identifier "uStack_188") (; ";")) (declaration "byte bStack_184;" (type_identifier "byte") (identifier "bStack_184") (; ";")) (declaration "undefined1 auStack_183 [255];" (type_identifier "undefined1") (array_declarator "auStack_183 [255]" (identifier "auStack_183") ([ "[") (number_literal "255") (] "]")) (; ";")) (declaration "byte ****ppppbStack_84;" (type_identifier "byte") (pointer_declarator "****ppppbStack_84" (* "*") (pointer_declarator "***ppppbStack_84" (* "*") (pointer_declarator "**ppppbStack_84" (* "*") (pointer_declarator "*ppppbStack_84" (* "*") (identifier "ppppbStack_84"))))) (; ";")) (declaration "int *piStack_80;" (primitive_type "int") (pointer_declarator "*piStack_80" (* "*") (identifier "piStack_80")) (; ";")) (declaration "int iStack_7c;" (primitive_type "int") (identifier "iStack_7c") (; ";")) (declaration "byte *******pppppppbStack_78;" (type_identifier "byte") (pointer_declarator "*******pppppppbStack_78" (* "*") (pointer_declarator "******pppppppbStack_78" (* "*") (pointer_declarator "*****pppppppbStack_78" (* "*") (pointer_declarator "****pppppppbStack_78" (* "*") (pointer_declarator "***pppppppbStack_78" (* "*") (pointer_declarator "**pppppppbStack_78" (* "*") (pointer_declarator "*pppppppbStack_78" (* "*") (identifier "pppppppbStack_78")))))))) (; ";")) (declaration "byte ******ppppppbStack_74;" (type_identifier "byte") (pointer_declarator "******ppppppbStack_74" (* "*") (pointer_declarator "*****ppppppbStack_74" (* "*") (pointer_declarator "****ppppppbStack_74" (* "*") (pointer_declarator "***ppppppbStack_74" (* "*") (pointer_declarator "**ppppppbStack_74" (* "*") (pointer_declarator "*ppppppbStack_74" (* "*") (identifier "ppppppbStack_74"))))))) (; ";")) (declaration "byte *******pppppppbStack_70;" (type_identifier "byte") (pointer_declarator "*******pppppppbStack_70" (* "*") (pointer_declarator "******pppppppbStack_70" (* "*") (pointer_declarator "*****pppppppbStack_70" (* "*") (pointer_declarator "****pppppppbStack_70" (* "*") (pointer_declarator "***pppppppbStack_70" (* "*") (pointer_declarator "**pppppppbStack_70" (* "*") (pointer_declarator "*pppppppbStack_70" (* "*") (identifier "pppppppbStack_70")))))))) (; ";")) (declaration "byte *******pppppppbStack_6c;" (type_identifier "byte") (pointer_declarator "*******pppppppbStack_6c" (* "*") (pointer_declarator "******pppppppbStack_6c" (* "*") (pointer_declarator "*****pppppppbStack_6c" (* "*") (pointer_declarator "****pppppppbStack_6c" (* "*") (pointer_declarator "***pppppppbStack_6c" (* "*") (pointer_declarator "**pppppppbStack_6c" (* "*") (pointer_declarator "*pppppppbStack_6c" (* "*") (identifier "pppppppbStack_6c")))))))) (; ";")) (declaration "byte *******pppppppbStack_68;" (type_identifier "byte") (pointer_declarator "*******pppppppbStack_68" (* "*") (pointer_declarator "******pppppppbStack_68" (* "*") (pointer_declarator "*****pppppppbStack_68" (* "*") (pointer_declarator "****pppppppbStack_68" (* "*") (pointer_declarator "***pppppppbStack_68" (* "*") (pointer_declarator "**pppppppbStack_68" (* "*") (pointer_declarator "*pppppppbStack_68" (* "*") (identifier "pppppppbStack_68")))))))) (; ";")) (declaration "byte *******pppppppbStack_64;" (type_identifier "byte") (pointer_declarator "*******pppppppbStack_64" (* "*") (pointer_declarator "******pppppppbStack_64" (* "*") (pointer_declarator "*****pppppppbStack_64" (* "*") (pointer_declarator "****pppppppbStack_64" (* "*") (pointer_declarator "***pppppppbStack_64" (* "*") (pointer_declarator "**pppppppbStack_64" (* "*") (pointer_declarator "*pppppppbStack_64" (* "*") (identifier "pppppppbStack_64")))))))) (; ";")) (declaration "int *piStack_60;" (primitive_type "int") (pointer_declarator "*piStack_60" (* "*") (identifier "piStack_60")) (; ";")) (declaration "code *pcStack_5c;" (type_identifier "code") (pointer_declarator "*pcStack_5c" (* "*") (identifier "pcStack_5c")) (; ";")) (declaration "byte *******local_40;" (type_identifier "byte") (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 "byte ******appppppbStack_34 [3];" (type_identifier "byte") (pointer_declarator "******appppppbStack_34 [3]" (* "*") (pointer_declarator "*****appppppbStack_34 [3]" (* "*") (pointer_declarator "****appppppbStack_34 [3]" (* "*") (pointer_declarator "***appppppbStack_34 [3]" (* "*") (pointer_declarator "**appppppbStack_34 [3]" (* "*") (pointer_declarator "*appppppbStack_34 [3]" (* "*") (array_declarator "appppppbStack_34 [3]" (identifier "appppppbStack_34") ([ "[") (number_literal "3") (] "]")))))))) (; ";")) (declaration "undefined1 *puVar15;" (type_identifier "undefined1") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (expression_statement "appppppbStack_34[2] = *(byte *******)PTR___stack_chk_guard_004bf38c;" (assignment_expression "appppppbStack_34[2] = *(byte *******)PTR___stack_chk_guard_004bf38c" (subscript_expression "appppppbStack_34[2]" (identifier "appppppbStack_34") ([ "[") (number_literal "2") (] "]")) (= "=") (pointer_expression "*(byte *******)PTR___stack_chk_guard_004bf38c" (* "*") (cast_expression "(byte *******)PTR___stack_chk_guard_004bf38c" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (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_004bf38c")))) (; ";")) (expression_statement "pppppppbVar20 = (byte *******)((int)param_2 - param_1[6]);" (assignment_expression "pppppppbVar20 = (byte *******)((int)param_2 - param_1[6])" (identifier "pppppppbVar20") (= "=") (cast_expression "(byte *******)((int)param_2 - param_1[6])" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (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      *(undefined1 *)(param_1 + 4) = 0;\n      *(undefined1 *)((int)param_1 + 0x11) = 0;\n      *(undefined1 *)((int)param_1 + 0x12) = 0;\n      *(undefined1 *)((int)param_1 + 0x13) = 0;\n      *(undefined1 *)(param_1 + 5) = 0;\n      *(undefined1 *)((int)param_1 + 0x15) = 0;\n      *(undefined1 *)((int)param_1 + 0x16) = 0;\n      *(undefined1 *)((int)param_1 + 0x17) = 0;\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    iVar11 = 6;\n    if (((uint)param_3 & 1) != 0) {\n      iVar11 = 4;\n    }\n    param_1[0xf] = iVar11;\n    pppppppbVar20 = param_2;\n    if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[1] = *param_1;\n    }\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      *(undefined1 *)(param_1 + 4) = 0;\n      *(undefined1 *)((int)param_1 + 0x11) = 0;\n      *(undefined1 *)((int)param_1 + 0x12) = 0;\n      *(undefined1 *)((int)param_1 + 0x13) = 0;\n      *(undefined1 *)(param_1 + 5) = 0;\n      *(undefined1 *)((int)param_1 + 0x15) = 0;\n      *(undefined1 *)((int)param_1 + 0x16) = 0;\n      *(undefined1 *)((int)param_1 + 0x17) = 0;\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    iVar11 = 6;\n    if (((uint)param_3 & 1) != 0) {\n      iVar11 = 4;\n    }\n    param_1[0xf] = iVar11;\n    pppppppbVar20 = param_2;\n    if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[1] = *param_1;\n    }\n  }" ({ "{") (if_statement "if (1 < param_1[0x14]) {\n      *(undefined1 *)(param_1 + 4) = 0;\n      *(undefined1 *)((int)param_1 + 0x11) = 0;\n      *(undefined1 *)((int)param_1 + 0x12) = 0;\n      *(undefined1 *)((int)param_1 + 0x13) = 0;\n      *(undefined1 *)(param_1 + 5) = 0;\n      *(undefined1 *)((int)param_1 + 0x15) = 0;\n      *(undefined1 *)((int)param_1 + 0x16) = 0;\n      *(undefined1 *)((int)param_1 + 0x17) = 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      *(undefined1 *)(param_1 + 4) = 0;\n      *(undefined1 *)((int)param_1 + 0x11) = 0;\n      *(undefined1 *)((int)param_1 + 0x12) = 0;\n      *(undefined1 *)((int)param_1 + 0x13) = 0;\n      *(undefined1 *)(param_1 + 5) = 0;\n      *(undefined1 *)((int)param_1 + 0x15) = 0;\n      *(undefined1 *)((int)param_1 + 0x16) = 0;\n      *(undefined1 *)((int)param_1 + 0x17) = 0;\n    }" ({ "{") (expression_statement "*(undefined1 *)(param_1 + 4) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 4) = 0" (pointer_expression "*(undefined1 *)(param_1 + 4)" (* "*") (cast_expression "(undefined1 *)(param_1 + 4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)param_1 + 0x11) = 0;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x11) = 0" (pointer_expression "*(undefined1 *)((int)param_1 + 0x11)" (* "*") (cast_expression "(undefined1 *)((int)param_1 + 0x11)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x11)" (( "(") (binary_expression "(int)param_1 + 0x11" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x11")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)param_1 + 0x12) = 0;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x12) = 0" (pointer_expression "*(undefined1 *)((int)param_1 + 0x12)" (* "*") (cast_expression "(undefined1 *)((int)param_1 + 0x12)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x12)" (( "(") (binary_expression "(int)param_1 + 0x12" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x12")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)param_1 + 0x13) = 0;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x13) = 0" (pointer_expression "*(undefined1 *)((int)param_1 + 0x13)" (* "*") (cast_expression "(undefined1 *)((int)param_1 + 0x13)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x13)" (( "(") (binary_expression "(int)param_1 + 0x13" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x13")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 5) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 5) = 0" (pointer_expression "*(undefined1 *)(param_1 + 5)" (* "*") (cast_expression "(undefined1 *)(param_1 + 5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 5)" (( "(") (binary_expression "param_1 + 5" (identifier "param_1") (+ "+") (number_literal "5")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)param_1 + 0x15) = 0;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x15) = 0" (pointer_expression "*(undefined1 *)((int)param_1 + 0x15)" (* "*") (cast_expression "(undefined1 *)((int)param_1 + 0x15)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x15)" (( "(") (binary_expression "(int)param_1 + 0x15" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x15")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)param_1 + 0x16) = 0;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x16) = 0" (pointer_expression "*(undefined1 *)((int)param_1 + 0x16)" (* "*") (cast_expression "(undefined1 *)((int)param_1 + 0x16)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x16)" (( "(") (binary_expression "(int)param_1 + 0x16" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x16")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)param_1 + 0x17) = 0;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x17) = 0" (pointer_expression "*(undefined1 *)((int)param_1 + 0x17)" (* "*") (cast_expression "(undefined1 *)((int)param_1 + 0x17)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x17)" (( "(") (binary_expression "(int)param_1 + 0x17" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x17")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (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 "iVar11 = 6;" (assignment_expression "iVar11 = 6" (identifier "iVar11") (= "=") (number_literal "6")) (; ";")) (if_statement "if (((uint)param_3 & 1) != 0) {\n      iVar11 = 4;\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      iVar11 = 4;\n    }" ({ "{") (expression_statement "iVar11 = 4;" (assignment_expression "iVar11 = 4" (identifier "iVar11") (= "=") (number_literal "4")) (; ";")) (} "}"))) (expression_statement "param_1[0xf] = iVar11;" (assignment_expression "param_1[0xf] = iVar11" (subscript_expression "param_1[0xf]" (identifier "param_1") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "iVar11")) (; ";")) (expression_statement "pppppppbVar20 = param_2;" (assignment_expression "pppppppbVar20 = param_2" (identifier "pppppppbVar20") (= "=") (identifier "param_2")) (; ";")) (if_statement "if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[1] = *param_1;\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    }" ({ "{") (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"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "pppppppbVar18 = param_2;" (assignment_expression "pppppppbVar18 = param_2" (identifier "pppppppbVar18") (= "=") (identifier "param_2")) (; ";")) (expression_statement "ppppppbVar22 = param_3;" (assignment_expression "ppppppbVar22 = param_3" (identifier "ppppppbVar22") (= "=") (identifier "param_3")) (; ";")) (if_statement "if (pppppppbVar20 != (byte *******)0x0) {\n    if ((int)pppppppbVar20 < param_1[8]) {\n      if (*(char *)(param_1 + 0x13) == '\0') {\n        iVar11 = FUN_0048efec(param_1,(byte *)((int)pppppppbVar20 + -1));\n        param_1[0xf] = iVar11;\n        pppppppbVar18 = (byte *******)((int)pppppppbVar20 * 4);\n        if (param_1[0x14] < 2) {\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        else {\n          ppppppbVar22 = (byte ******)((param_1[7] - (int)pppppppbVar20) * 4);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar18 + param_1[2]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        if (cVar2 == '\0') {\n          iVar11 = param_1[7];\n        }\n        else {\n          ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar11 = param_1[7];\n        }\n        param_1[7] = iVar11 - (int)pppppppbVar20;\n        param_1[8] = param_1[8] - (int)pppppppbVar20;\n        goto LAB_00491360;\n      }\n      unaff_s6 = (byte *******)param_1[7];\n      unaff_s5 = (byte *******)param_1[3];\n      pbVar16 = (byte *)0x0;\n      pppppppbVar18 = unaff_s6;\n      do {\n        unaff_s4 = (byte *******)((int)(pbVar16 + (int)pppppppbVar18) / 2);\n        ppppppbVar6 = unaff_s5[(int)unaff_s4];\n        bVar1 = (int)pbVar16 < (int)unaff_s4;\n        pppppppbVar12 = unaff_s4;\n        if ((int)ppppppbVar6 <= (int)pppppppbVar20) {\n          pbVar16 = (byte *)((int)unaff_s4 + 1);\n          if ((int)pppppppbVar20 <= (int)ppppppbVar6) goto LAB_0049145c;\n          bVar1 = (int)pbVar16 < (int)pppppppbVar18;\n          pppppppbVar12 = pppppppbVar18;\n        }\n        pppppppbVar18 = pppppppbVar12;\n      } while (bVar1);\n      if ((int)ppppppbVar6 < (int)pppppppbVar20) {\n        unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n      }\nLAB_0049145c:\n      pppppppbVar18 = (byte *******)((int)unaff_s4 + -1);\n      iVar11 = FUN_0048efec(param_1);\n      param_1[0xf] = iVar11;\n      if ((((int)unaff_s6 <= (int)pppppppbVar20) || (pppppppbVar20 != unaff_s4)) ||\n         (param_3 = (byte ******)((int)pppppppbVar20 * 4),\n         (byte *******)unaff_s5[(int)unaff_s4] != pppppppbVar20)) {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        if ((0 < (int)unaff_s4) &&\n           ((byte *******)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pppppppbVar20)) {\n          pppppppbVar12 = unaff_s5 + (int)(unaff_s4 + 0x10000000);\n          do {\n            unaff_s4 = (byte *******)((int)unaff_s4 + -1);\n            if (unaff_s4 == (byte *******)0x0) break;\n            pppppppbVar19 = pppppppbVar12 + -2;\n            pppppppbVar12 = pppppppbVar12 + -1;\n          } while ((byte *******)*pppppppbVar19 == pppppppbVar20);\n        }\n        if ((int)unaff_s4 < (int)unaff_s6) {\n          piVar9 = (int *)(param_1[2] + (int)unaff_s4 * 4);\n          iVar11 = *piVar9;\n          while (iVar11 == -1) {\n            unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n            piVar9 = piVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            iVar11 = *piVar9;\n          }\nLAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;\n          ppppppbVar22 = (byte ******)((int)*unaff_s4 - (int)pppppppbVar20);\n          param_1[7] = (int)ppppppbVar22;\n          if (ppppppbVar22 == (byte ******)0x0) goto LAB_00491650;\n          if (0 < (int)ppppppbVar22) {\n            iVar11 = 0;\n            do {\n              *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n              iVar11 = iVar11 + 1;\n              ppppppbVar22 = (byte ******)param_1[7];\n            } while (iVar11 < (int)ppppppbVar22);\n          }\n          pppppppbVar18 = (byte *******)0xff;\n          (*(code *)PTR_memset_004bf260)(param_1[1]);\n          iVar11 = param_1[7];\n        }\n        else {\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          param_1[7] = 0;\nLAB_00491650:\n          iVar11 = param_1[7];\n        }\n        param_1[8] = iVar11;\n        goto LAB_00491360;\n      }\n      (*(code *)PTR_memmove_004bf3a4)\n                (param_1[2],param_1[2] + (int)param_3,((int)unaff_s6 - (int)pppppppbVar20) * 4);\n      ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n      pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n      (*(code *)PTR_memmove_004bf3a4)();\n      iVar11 = param_1[7];\n      param_1[7] = iVar11 - (int)pppppppbVar20;\n      param_1[8] = param_1[8] - (int)pppppppbVar20;\n      if (iVar11 - (int)pppppppbVar20 < 1) goto LAB_00491360;\n      iVar11 = 0;\n      do {\n        *(int *)(param_1[3] + iVar11 * 4) = *(int *)(param_1[3] + (int)param_3) - (int)pppppppbVar20\n        ;\n        iVar11 = iVar11 + 1;\n        param_3 = param_3 + 1;\n      } while (iVar11 < param_1[7]);\n      cVar2 = *(char *)((int)param_1 + 0x4b);\n    }\n    else {\n      unaff_s6 = (byte *******)param_1[7];\n      if (*(char *)(param_1 + 0x13) != '\0') {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n      }\n      param_1[7] = 0;\n      if (param_1[0x14] < 2) {\n        pppppppbVar18 =\n             (byte *******)(uint)*(byte *)((int)pppppppbVar20 + param_1[6] + *param_1 + -1);\n        param_1[8] = 0;\n        if (param_1[0x10] != 0) {\n          pppppppbVar18 = (byte *******)(uint)*(byte *)((int)pppppppbVar18 + param_1[0x10]);\n        }\n        iVar11 = 1;\n        if ((*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f) & 1) == 0) {\n          iVar11 = 2;\n          if (pppppppbVar18 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        param_1[0xf] = iVar11;\n        goto LAB_00491360;\n      }\n      if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0049179c:\n        iVar11 = param_1[6];\nLAB_004917a0:\n        pppppppbVar12 = (byte *******)(iVar11 + param_1[8]);\n        if ((int)pppppppbVar12 < (int)param_2) {\n          unaff_s8 = param_1 + 4;\n          unaff_s7 = (byte *******)&local_40;\n          do {\n            unaff_s5 = pppppppbVar12;\n            iVar24 = param_1[0xb];\n            local_3c = param_1[4];\n            local_38 = param_1[5];\n            pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1);\n            iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8);\n            unaff_s4 = local_40;\n            if (0xfffffffc < iVar11 - 1U) {\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }\n            pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11);\n          } while ((int)pppppppbVar12 < (int)param_2);\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n          if (unaff_s4 != (byte *******)0xffffffff) goto LAB_00491834;\n        }\n        else {\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n        }\n        pppppppbVar18 = (byte *******)((int)unaff_s6 + -1);\n        iVar11 = FUN_0048efec(param_1,pppppppbVar18,param_3);\n        param_1[0xf] = iVar11;\n      }\n      else {\n        pppppppbVar12 = (byte *******)*param_1;\n        unaff_s4 = (byte *******)((int)pppppppbVar12 + param_1[6]);\n        pppppppbVar18 = (byte *******)((int)unaff_s4 + ((int)pppppppbVar20 - param_1[0x14]));\n        if (pppppppbVar18 <= pppppppbVar12) {\n          pppppppbVar18 = pppppppbVar12;\n        }\n        pppppppbVar12 = (byte *******)((int)unaff_s4 + (int)((int)pppppppbVar20 + -1));\n        unaff_s5 = pppppppbVar20;\n        if (pppppppbVar12 < pppppppbVar18) goto LAB_0049179c;\n        bVar3 = *(byte *)pppppppbVar12;\n        unaff_s7 = pppppppbVar12;\n        while ((bVar3 & 0xc0) == 0x80) {\n          pppppppbVar19 = (byte *******)((int)unaff_s7 + -1);\n          unaff_s7 = pppppppbVar12;\n          if (pppppppbVar19 < pppppppbVar18) goto LAB_0049179c;\n          unaff_s7 = pppppppbVar19;\n          bVar3 = *(byte *)pppppppbVar19;\n        }\n        iVar11 = param_1[0x10];\n        pbVar16 = (byte *)((int)unaff_s4 + (param_1[0xc] - (int)unaff_s7));\n        pppppppbVar18 = unaff_s7;\n        if (iVar11 != 0) {\n          pbVar17 = (byte *)0x6;\n          if ((int)pbVar16 < 7) {\n            pbVar17 = pbVar16;\n          }\n          if ((int)(pbVar17 + -1) < 0) {\n            pppppppbVar18 = appppppbStack_34;\n          }\n          else {\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }\n        }\n        local_3c = 0;\n        local_38 = 0;\n        uVar29 = (*(code *)PTR_mbrtowc_004bf2ec)(&local_40);\n        uVar30 = (int)((int)unaff_s4 + (int)pppppppbVar20) - (int)unaff_s7;\n        if ((uVar29 < uVar30) || (0xfffffffd < uVar29)) goto LAB_0049179c;\n        *(undefined1 *)(param_1 + 4) = 0;\n        *(undefined1 *)((int)param_1 + 0x11) = 0;\n        *(undefined1 *)((int)param_1 + 0x12) = 0;\n        *(undefined1 *)((int)param_1 + 0x13) = 0;\n        *(undefined1 *)(param_1 + 5) = 0;\n        *(undefined1 *)((int)param_1 + 0x15) = 0;\n        *(undefined1 *)((int)param_1 + 0x16) = 0;\n        *(undefined1 *)((int)param_1 + 0x17) = 0;\n        param_1[7] = uVar29 - uVar30;\n        unaff_s4 = local_40;\n        if (local_40 == (byte *******)0xffffffff) {\n          iVar11 = param_1[6];\n          goto LAB_004917a0;\n        }\nLAB_00491834:\n        if (*(char *)((int)param_1 + 0x4e) == '\0') {\nLAB_00491840:\n          iVar11 = 2;\n          if (unaff_s4 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        else {\n          iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          iVar11 = 1;\n          if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }\n        param_1[0xf] = iVar11;\n      }\nLAB_00491854:\n      ppppppbVar22 = (byte ******)param_1[7];\n      if (ppppppbVar22 == (byte ******)0x0) {\nLAB_00491860:\n        iVar11 = param_1[7];\n      }\n      else {\n        iVar11 = 0;\n        if (0 < (int)ppppppbVar22) {\n          do {\n            *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n            iVar11 = iVar11 + 1;\n            ppppppbVar22 = (byte ******)param_1[7];\n          } while (iVar11 < (int)ppppppbVar22);\n        }\n        pppppppbVar18 = (byte *******)0xff;\n        if (*(char *)((int)param_1 + 0x4b) == '\0') goto LAB_00491860;\n        (*(code *)PTR_memset_004bf260)(param_1[1]);\n        iVar11 = param_1[7];\n      }\n      param_1[8] = iVar11;\nLAB_00491360:\n      cVar2 = *(char *)((int)param_1 + 0x4b);\n    }\n    if (cVar2 == '\0') {\n      param_1[1] = (int)((int)pppppppbVar20 + param_1[1]);\n    }\n  }" (if "if") (parenthesized_expression "(pppppppbVar20 != (byte *******)0x0)" (( "(") (binary_expression "pppppppbVar20 != (byte *******)0x0" (identifier "pppppppbVar20") (!= "!=") (cast_expression "(byte *******)0x0" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (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 ((int)pppppppbVar20 < param_1[8]) {\n      if (*(char *)(param_1 + 0x13) == '\0') {\n        iVar11 = FUN_0048efec(param_1,(byte *)((int)pppppppbVar20 + -1));\n        param_1[0xf] = iVar11;\n        pppppppbVar18 = (byte *******)((int)pppppppbVar20 * 4);\n        if (param_1[0x14] < 2) {\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        else {\n          ppppppbVar22 = (byte ******)((param_1[7] - (int)pppppppbVar20) * 4);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar18 + param_1[2]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        if (cVar2 == '\0') {\n          iVar11 = param_1[7];\n        }\n        else {\n          ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar11 = param_1[7];\n        }\n        param_1[7] = iVar11 - (int)pppppppbVar20;\n        param_1[8] = param_1[8] - (int)pppppppbVar20;\n        goto LAB_00491360;\n      }\n      unaff_s6 = (byte *******)param_1[7];\n      unaff_s5 = (byte *******)param_1[3];\n      pbVar16 = (byte *)0x0;\n      pppppppbVar18 = unaff_s6;\n      do {\n        unaff_s4 = (byte *******)((int)(pbVar16 + (int)pppppppbVar18) / 2);\n        ppppppbVar6 = unaff_s5[(int)unaff_s4];\n        bVar1 = (int)pbVar16 < (int)unaff_s4;\n        pppppppbVar12 = unaff_s4;\n        if ((int)ppppppbVar6 <= (int)pppppppbVar20) {\n          pbVar16 = (byte *)((int)unaff_s4 + 1);\n          if ((int)pppppppbVar20 <= (int)ppppppbVar6) goto LAB_0049145c;\n          bVar1 = (int)pbVar16 < (int)pppppppbVar18;\n          pppppppbVar12 = pppppppbVar18;\n        }\n        pppppppbVar18 = pppppppbVar12;\n      } while (bVar1);\n      if ((int)ppppppbVar6 < (int)pppppppbVar20) {\n        unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n      }\nLAB_0049145c:\n      pppppppbVar18 = (byte *******)((int)unaff_s4 + -1);\n      iVar11 = FUN_0048efec(param_1);\n      param_1[0xf] = iVar11;\n      if ((((int)unaff_s6 <= (int)pppppppbVar20) || (pppppppbVar20 != unaff_s4)) ||\n         (param_3 = (byte ******)((int)pppppppbVar20 * 4),\n         (byte *******)unaff_s5[(int)unaff_s4] != pppppppbVar20)) {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        if ((0 < (int)unaff_s4) &&\n           ((byte *******)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pppppppbVar20)) {\n          pppppppbVar12 = unaff_s5 + (int)(unaff_s4 + 0x10000000);\n          do {\n            unaff_s4 = (byte *******)((int)unaff_s4 + -1);\n            if (unaff_s4 == (byte *******)0x0) break;\n            pppppppbVar19 = pppppppbVar12 + -2;\n            pppppppbVar12 = pppppppbVar12 + -1;\n          } while ((byte *******)*pppppppbVar19 == pppppppbVar20);\n        }\n        if ((int)unaff_s4 < (int)unaff_s6) {\n          piVar9 = (int *)(param_1[2] + (int)unaff_s4 * 4);\n          iVar11 = *piVar9;\n          while (iVar11 == -1) {\n            unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n            piVar9 = piVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            iVar11 = *piVar9;\n          }\nLAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;\n          ppppppbVar22 = (byte ******)((int)*unaff_s4 - (int)pppppppbVar20);\n          param_1[7] = (int)ppppppbVar22;\n          if (ppppppbVar22 == (byte ******)0x0) goto LAB_00491650;\n          if (0 < (int)ppppppbVar22) {\n            iVar11 = 0;\n            do {\n              *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n              iVar11 = iVar11 + 1;\n              ppppppbVar22 = (byte ******)param_1[7];\n            } while (iVar11 < (int)ppppppbVar22);\n          }\n          pppppppbVar18 = (byte *******)0xff;\n          (*(code *)PTR_memset_004bf260)(param_1[1]);\n          iVar11 = param_1[7];\n        }\n        else {\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          param_1[7] = 0;\nLAB_00491650:\n          iVar11 = param_1[7];\n        }\n        param_1[8] = iVar11;\n        goto LAB_00491360;\n      }\n      (*(code *)PTR_memmove_004bf3a4)\n                (param_1[2],param_1[2] + (int)param_3,((int)unaff_s6 - (int)pppppppbVar20) * 4);\n      ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n      pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n      (*(code *)PTR_memmove_004bf3a4)();\n      iVar11 = param_1[7];\n      param_1[7] = iVar11 - (int)pppppppbVar20;\n      param_1[8] = param_1[8] - (int)pppppppbVar20;\n      if (iVar11 - (int)pppppppbVar20 < 1) goto LAB_00491360;\n      iVar11 = 0;\n      do {\n        *(int *)(param_1[3] + iVar11 * 4) = *(int *)(param_1[3] + (int)param_3) - (int)pppppppbVar20\n        ;\n        iVar11 = iVar11 + 1;\n        param_3 = param_3 + 1;\n      } while (iVar11 < param_1[7]);\n      cVar2 = *(char *)((int)param_1 + 0x4b);\n    }\n    else {\n      unaff_s6 = (byte *******)param_1[7];\n      if (*(char *)(param_1 + 0x13) != '\0') {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n      }\n      param_1[7] = 0;\n      if (param_1[0x14] < 2) {\n        pppppppbVar18 =\n             (byte *******)(uint)*(byte *)((int)pppppppbVar20 + param_1[6] + *param_1 + -1);\n        param_1[8] = 0;\n        if (param_1[0x10] != 0) {\n          pppppppbVar18 = (byte *******)(uint)*(byte *)((int)pppppppbVar18 + param_1[0x10]);\n        }\n        iVar11 = 1;\n        if ((*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f) & 1) == 0) {\n          iVar11 = 2;\n          if (pppppppbVar18 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        param_1[0xf] = iVar11;\n        goto LAB_00491360;\n      }\n      if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0049179c:\n        iVar11 = param_1[6];\nLAB_004917a0:\n        pppppppbVar12 = (byte *******)(iVar11 + param_1[8]);\n        if ((int)pppppppbVar12 < (int)param_2) {\n          unaff_s8 = param_1 + 4;\n          unaff_s7 = (byte *******)&local_40;\n          do {\n            unaff_s5 = pppppppbVar12;\n            iVar24 = param_1[0xb];\n            local_3c = param_1[4];\n            local_38 = param_1[5];\n            pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1);\n            iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8);\n            unaff_s4 = local_40;\n            if (0xfffffffc < iVar11 - 1U) {\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }\n            pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11);\n          } while ((int)pppppppbVar12 < (int)param_2);\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n          if (unaff_s4 != (byte *******)0xffffffff) goto LAB_00491834;\n        }\n        else {\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n        }\n        pppppppbVar18 = (byte *******)((int)unaff_s6 + -1);\n        iVar11 = FUN_0048efec(param_1,pppppppbVar18,param_3);\n        param_1[0xf] = iVar11;\n      }\n      else {\n        pppppppbVar12 = (byte *******)*param_1;\n        unaff_s4 = (byte *******)((int)pppppppbVar12 + param_1[6]);\n        pppppppbVar18 = (byte *******)((int)unaff_s4 + ((int)pppppppbVar20 - param_1[0x14]));\n        if (pppppppbVar18 <= pppppppbVar12) {\n          pppppppbVar18 = pppppppbVar12;\n        }\n        pppppppbVar12 = (byte *******)((int)unaff_s4 + (int)((int)pppppppbVar20 + -1));\n        unaff_s5 = pppppppbVar20;\n        if (pppppppbVar12 < pppppppbVar18) goto LAB_0049179c;\n        bVar3 = *(byte *)pppppppbVar12;\n        unaff_s7 = pppppppbVar12;\n        while ((bVar3 & 0xc0) == 0x80) {\n          pppppppbVar19 = (byte *******)((int)unaff_s7 + -1);\n          unaff_s7 = pppppppbVar12;\n          if (pppppppbVar19 < pppppppbVar18) goto LAB_0049179c;\n          unaff_s7 = pppppppbVar19;\n          bVar3 = *(byte *)pppppppbVar19;\n        }\n        iVar11 = param_1[0x10];\n        pbVar16 = (byte *)((int)unaff_s4 + (param_1[0xc] - (int)unaff_s7));\n        pppppppbVar18 = unaff_s7;\n        if (iVar11 != 0) {\n          pbVar17 = (byte *)0x6;\n          if ((int)pbVar16 < 7) {\n            pbVar17 = pbVar16;\n          }\n          if ((int)(pbVar17 + -1) < 0) {\n            pppppppbVar18 = appppppbStack_34;\n          }\n          else {\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }\n        }\n        local_3c = 0;\n        local_38 = 0;\n        uVar29 = (*(code *)PTR_mbrtowc_004bf2ec)(&local_40);\n        uVar30 = (int)((int)unaff_s4 + (int)pppppppbVar20) - (int)unaff_s7;\n        if ((uVar29 < uVar30) || (0xfffffffd < uVar29)) goto LAB_0049179c;\n        *(undefined1 *)(param_1 + 4) = 0;\n        *(undefined1 *)((int)param_1 + 0x11) = 0;\n        *(undefined1 *)((int)param_1 + 0x12) = 0;\n        *(undefined1 *)((int)param_1 + 0x13) = 0;\n        *(undefined1 *)(param_1 + 5) = 0;\n        *(undefined1 *)((int)param_1 + 0x15) = 0;\n        *(undefined1 *)((int)param_1 + 0x16) = 0;\n        *(undefined1 *)((int)param_1 + 0x17) = 0;\n        param_1[7] = uVar29 - uVar30;\n        unaff_s4 = local_40;\n        if (local_40 == (byte *******)0xffffffff) {\n          iVar11 = param_1[6];\n          goto LAB_004917a0;\n        }\nLAB_00491834:\n        if (*(char *)((int)param_1 + 0x4e) == '\0') {\nLAB_00491840:\n          iVar11 = 2;\n          if (unaff_s4 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        else {\n          iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          iVar11 = 1;\n          if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }\n        param_1[0xf] = iVar11;\n      }\nLAB_00491854:\n      ppppppbVar22 = (byte ******)param_1[7];\n      if (ppppppbVar22 == (byte ******)0x0) {\nLAB_00491860:\n        iVar11 = param_1[7];\n      }\n      else {\n        iVar11 = 0;\n        if (0 < (int)ppppppbVar22) {\n          do {\n            *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n            iVar11 = iVar11 + 1;\n            ppppppbVar22 = (byte ******)param_1[7];\n          } while (iVar11 < (int)ppppppbVar22);\n        }\n        pppppppbVar18 = (byte *******)0xff;\n        if (*(char *)((int)param_1 + 0x4b) == '\0') goto LAB_00491860;\n        (*(code *)PTR_memset_004bf260)(param_1[1]);\n        iVar11 = param_1[7];\n      }\n      param_1[8] = iVar11;\nLAB_00491360:\n      cVar2 = *(char *)((int)param_1 + 0x4b);\n    }\n    if (cVar2 == '\0') {\n      param_1[1] = (int)((int)pppppppbVar20 + param_1[1]);\n    }\n  }" ({ "{") (if_statement "if ((int)pppppppbVar20 < param_1[8]) {\n      if (*(char *)(param_1 + 0x13) == '\0') {\n        iVar11 = FUN_0048efec(param_1,(byte *)((int)pppppppbVar20 + -1));\n        param_1[0xf] = iVar11;\n        pppppppbVar18 = (byte *******)((int)pppppppbVar20 * 4);\n        if (param_1[0x14] < 2) {\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        else {\n          ppppppbVar22 = (byte ******)((param_1[7] - (int)pppppppbVar20) * 4);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar18 + param_1[2]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        if (cVar2 == '\0') {\n          iVar11 = param_1[7];\n        }\n        else {\n          ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar11 = param_1[7];\n        }\n        param_1[7] = iVar11 - (int)pppppppbVar20;\n        param_1[8] = param_1[8] - (int)pppppppbVar20;\n        goto LAB_00491360;\n      }\n      unaff_s6 = (byte *******)param_1[7];\n      unaff_s5 = (byte *******)param_1[3];\n      pbVar16 = (byte *)0x0;\n      pppppppbVar18 = unaff_s6;\n      do {\n        unaff_s4 = (byte *******)((int)(pbVar16 + (int)pppppppbVar18) / 2);\n        ppppppbVar6 = unaff_s5[(int)unaff_s4];\n        bVar1 = (int)pbVar16 < (int)unaff_s4;\n        pppppppbVar12 = unaff_s4;\n        if ((int)ppppppbVar6 <= (int)pppppppbVar20) {\n          pbVar16 = (byte *)((int)unaff_s4 + 1);\n          if ((int)pppppppbVar20 <= (int)ppppppbVar6) goto LAB_0049145c;\n          bVar1 = (int)pbVar16 < (int)pppppppbVar18;\n          pppppppbVar12 = pppppppbVar18;\n        }\n        pppppppbVar18 = pppppppbVar12;\n      } while (bVar1);\n      if ((int)ppppppbVar6 < (int)pppppppbVar20) {\n        unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n      }\nLAB_0049145c:\n      pppppppbVar18 = (byte *******)((int)unaff_s4 + -1);\n      iVar11 = FUN_0048efec(param_1);\n      param_1[0xf] = iVar11;\n      if ((((int)unaff_s6 <= (int)pppppppbVar20) || (pppppppbVar20 != unaff_s4)) ||\n         (param_3 = (byte ******)((int)pppppppbVar20 * 4),\n         (byte *******)unaff_s5[(int)unaff_s4] != pppppppbVar20)) {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        if ((0 < (int)unaff_s4) &&\n           ((byte *******)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pppppppbVar20)) {\n          pppppppbVar12 = unaff_s5 + (int)(unaff_s4 + 0x10000000);\n          do {\n            unaff_s4 = (byte *******)((int)unaff_s4 + -1);\n            if (unaff_s4 == (byte *******)0x0) break;\n            pppppppbVar19 = pppppppbVar12 + -2;\n            pppppppbVar12 = pppppppbVar12 + -1;\n          } while ((byte *******)*pppppppbVar19 == pppppppbVar20);\n        }\n        if ((int)unaff_s4 < (int)unaff_s6) {\n          piVar9 = (int *)(param_1[2] + (int)unaff_s4 * 4);\n          iVar11 = *piVar9;\n          while (iVar11 == -1) {\n            unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n            piVar9 = piVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            iVar11 = *piVar9;\n          }\nLAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;\n          ppppppbVar22 = (byte ******)((int)*unaff_s4 - (int)pppppppbVar20);\n          param_1[7] = (int)ppppppbVar22;\n          if (ppppppbVar22 == (byte ******)0x0) goto LAB_00491650;\n          if (0 < (int)ppppppbVar22) {\n            iVar11 = 0;\n            do {\n              *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n              iVar11 = iVar11 + 1;\n              ppppppbVar22 = (byte ******)param_1[7];\n            } while (iVar11 < (int)ppppppbVar22);\n          }\n          pppppppbVar18 = (byte *******)0xff;\n          (*(code *)PTR_memset_004bf260)(param_1[1]);\n          iVar11 = param_1[7];\n        }\n        else {\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          param_1[7] = 0;\nLAB_00491650:\n          iVar11 = param_1[7];\n        }\n        param_1[8] = iVar11;\n        goto LAB_00491360;\n      }\n      (*(code *)PTR_memmove_004bf3a4)\n                (param_1[2],param_1[2] + (int)param_3,((int)unaff_s6 - (int)pppppppbVar20) * 4);\n      ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n      pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n      (*(code *)PTR_memmove_004bf3a4)();\n      iVar11 = param_1[7];\n      param_1[7] = iVar11 - (int)pppppppbVar20;\n      param_1[8] = param_1[8] - (int)pppppppbVar20;\n      if (iVar11 - (int)pppppppbVar20 < 1) goto LAB_00491360;\n      iVar11 = 0;\n      do {\n        *(int *)(param_1[3] + iVar11 * 4) = *(int *)(param_1[3] + (int)param_3) - (int)pppppppbVar20\n        ;\n        iVar11 = iVar11 + 1;\n        param_3 = param_3 + 1;\n      } while (iVar11 < param_1[7]);\n      cVar2 = *(char *)((int)param_1 + 0x4b);\n    }\n    else {\n      unaff_s6 = (byte *******)param_1[7];\n      if (*(char *)(param_1 + 0x13) != '\0') {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n      }\n      param_1[7] = 0;\n      if (param_1[0x14] < 2) {\n        pppppppbVar18 =\n             (byte *******)(uint)*(byte *)((int)pppppppbVar20 + param_1[6] + *param_1 + -1);\n        param_1[8] = 0;\n        if (param_1[0x10] != 0) {\n          pppppppbVar18 = (byte *******)(uint)*(byte *)((int)pppppppbVar18 + param_1[0x10]);\n        }\n        iVar11 = 1;\n        if ((*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f) & 1) == 0) {\n          iVar11 = 2;\n          if (pppppppbVar18 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        param_1[0xf] = iVar11;\n        goto LAB_00491360;\n      }\n      if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0049179c:\n        iVar11 = param_1[6];\nLAB_004917a0:\n        pppppppbVar12 = (byte *******)(iVar11 + param_1[8]);\n        if ((int)pppppppbVar12 < (int)param_2) {\n          unaff_s8 = param_1 + 4;\n          unaff_s7 = (byte *******)&local_40;\n          do {\n            unaff_s5 = pppppppbVar12;\n            iVar24 = param_1[0xb];\n            local_3c = param_1[4];\n            local_38 = param_1[5];\n            pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1);\n            iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8);\n            unaff_s4 = local_40;\n            if (0xfffffffc < iVar11 - 1U) {\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }\n            pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11);\n          } while ((int)pppppppbVar12 < (int)param_2);\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n          if (unaff_s4 != (byte *******)0xffffffff) goto LAB_00491834;\n        }\n        else {\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n        }\n        pppppppbVar18 = (byte *******)((int)unaff_s6 + -1);\n        iVar11 = FUN_0048efec(param_1,pppppppbVar18,param_3);\n        param_1[0xf] = iVar11;\n      }\n      else {\n        pppppppbVar12 = (byte *******)*param_1;\n        unaff_s4 = (byte *******)((int)pppppppbVar12 + param_1[6]);\n        pppppppbVar18 = (byte *******)((int)unaff_s4 + ((int)pppppppbVar20 - param_1[0x14]));\n        if (pppppppbVar18 <= pppppppbVar12) {\n          pppppppbVar18 = pppppppbVar12;\n        }\n        pppppppbVar12 = (byte *******)((int)unaff_s4 + (int)((int)pppppppbVar20 + -1));\n        unaff_s5 = pppppppbVar20;\n        if (pppppppbVar12 < pppppppbVar18) goto LAB_0049179c;\n        bVar3 = *(byte *)pppppppbVar12;\n        unaff_s7 = pppppppbVar12;\n        while ((bVar3 & 0xc0) == 0x80) {\n          pppppppbVar19 = (byte *******)((int)unaff_s7 + -1);\n          unaff_s7 = pppppppbVar12;\n          if (pppppppbVar19 < pppppppbVar18) goto LAB_0049179c;\n          unaff_s7 = pppppppbVar19;\n          bVar3 = *(byte *)pppppppbVar19;\n        }\n        iVar11 = param_1[0x10];\n        pbVar16 = (byte *)((int)unaff_s4 + (param_1[0xc] - (int)unaff_s7));\n        pppppppbVar18 = unaff_s7;\n        if (iVar11 != 0) {\n          pbVar17 = (byte *)0x6;\n          if ((int)pbVar16 < 7) {\n            pbVar17 = pbVar16;\n          }\n          if ((int)(pbVar17 + -1) < 0) {\n            pppppppbVar18 = appppppbStack_34;\n          }\n          else {\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }\n        }\n        local_3c = 0;\n        local_38 = 0;\n        uVar29 = (*(code *)PTR_mbrtowc_004bf2ec)(&local_40);\n        uVar30 = (int)((int)unaff_s4 + (int)pppppppbVar20) - (int)unaff_s7;\n        if ((uVar29 < uVar30) || (0xfffffffd < uVar29)) goto LAB_0049179c;\n        *(undefined1 *)(param_1 + 4) = 0;\n        *(undefined1 *)((int)param_1 + 0x11) = 0;\n        *(undefined1 *)((int)param_1 + 0x12) = 0;\n        *(undefined1 *)((int)param_1 + 0x13) = 0;\n        *(undefined1 *)(param_1 + 5) = 0;\n        *(undefined1 *)((int)param_1 + 0x15) = 0;\n        *(undefined1 *)((int)param_1 + 0x16) = 0;\n        *(undefined1 *)((int)param_1 + 0x17) = 0;\n        param_1[7] = uVar29 - uVar30;\n        unaff_s4 = local_40;\n        if (local_40 == (byte *******)0xffffffff) {\n          iVar11 = param_1[6];\n          goto LAB_004917a0;\n        }\nLAB_00491834:\n        if (*(char *)((int)param_1 + 0x4e) == '\0') {\nLAB_00491840:\n          iVar11 = 2;\n          if (unaff_s4 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        else {\n          iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          iVar11 = 1;\n          if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }\n        param_1[0xf] = iVar11;\n      }\nLAB_00491854:\n      ppppppbVar22 = (byte ******)param_1[7];\n      if (ppppppbVar22 == (byte ******)0x0) {\nLAB_00491860:\n        iVar11 = param_1[7];\n      }\n      else {\n        iVar11 = 0;\n        if (0 < (int)ppppppbVar22) {\n          do {\n            *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n            iVar11 = iVar11 + 1;\n            ppppppbVar22 = (byte ******)param_1[7];\n          } while (iVar11 < (int)ppppppbVar22);\n        }\n        pppppppbVar18 = (byte *******)0xff;\n        if (*(char *)((int)param_1 + 0x4b) == '\0') goto LAB_00491860;\n        (*(code *)PTR_memset_004bf260)(param_1[1]);\n        iVar11 = param_1[7];\n      }\n      param_1[8] = iVar11;\nLAB_00491360:\n      cVar2 = *(char *)((int)param_1 + 0x4b);\n    }" (if "if") (parenthesized_expression "((int)pppppppbVar20 < param_1[8])" (( "(") (binary_expression "(int)pppppppbVar20 < param_1[8]" (cast_expression "(int)pppppppbVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppbVar20")) (< "<") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]"))) () ")")) (compound_statement "{\n      if (*(char *)(param_1 + 0x13) == '\0') {\n        iVar11 = FUN_0048efec(param_1,(byte *)((int)pppppppbVar20 + -1));\n        param_1[0xf] = iVar11;\n        pppppppbVar18 = (byte *******)((int)pppppppbVar20 * 4);\n        if (param_1[0x14] < 2) {\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        else {\n          ppppppbVar22 = (byte ******)((param_1[7] - (int)pppppppbVar20) * 4);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar18 + param_1[2]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        if (cVar2 == '\0') {\n          iVar11 = param_1[7];\n        }\n        else {\n          ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar11 = param_1[7];\n        }\n        param_1[7] = iVar11 - (int)pppppppbVar20;\n        param_1[8] = param_1[8] - (int)pppppppbVar20;\n        goto LAB_00491360;\n      }\n      unaff_s6 = (byte *******)param_1[7];\n      unaff_s5 = (byte *******)param_1[3];\n      pbVar16 = (byte *)0x0;\n      pppppppbVar18 = unaff_s6;\n      do {\n        unaff_s4 = (byte *******)((int)(pbVar16 + (int)pppppppbVar18) / 2);\n        ppppppbVar6 = unaff_s5[(int)unaff_s4];\n        bVar1 = (int)pbVar16 < (int)unaff_s4;\n        pppppppbVar12 = unaff_s4;\n        if ((int)ppppppbVar6 <= (int)pppppppbVar20) {\n          pbVar16 = (byte *)((int)unaff_s4 + 1);\n          if ((int)pppppppbVar20 <= (int)ppppppbVar6) goto LAB_0049145c;\n          bVar1 = (int)pbVar16 < (int)pppppppbVar18;\n          pppppppbVar12 = pppppppbVar18;\n        }\n        pppppppbVar18 = pppppppbVar12;\n      } while (bVar1);\n      if ((int)ppppppbVar6 < (int)pppppppbVar20) {\n        unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n      }\nLAB_0049145c:\n      pppppppbVar18 = (byte *******)((int)unaff_s4 + -1);\n      iVar11 = FUN_0048efec(param_1);\n      param_1[0xf] = iVar11;\n      if ((((int)unaff_s6 <= (int)pppppppbVar20) || (pppppppbVar20 != unaff_s4)) ||\n         (param_3 = (byte ******)((int)pppppppbVar20 * 4),\n         (byte *******)unaff_s5[(int)unaff_s4] != pppppppbVar20)) {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        if ((0 < (int)unaff_s4) &&\n           ((byte *******)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pppppppbVar20)) {\n          pppppppbVar12 = unaff_s5 + (int)(unaff_s4 + 0x10000000);\n          do {\n            unaff_s4 = (byte *******)((int)unaff_s4 + -1);\n            if (unaff_s4 == (byte *******)0x0) break;\n            pppppppbVar19 = pppppppbVar12 + -2;\n            pppppppbVar12 = pppppppbVar12 + -1;\n          } while ((byte *******)*pppppppbVar19 == pppppppbVar20);\n        }\n        if ((int)unaff_s4 < (int)unaff_s6) {\n          piVar9 = (int *)(param_1[2] + (int)unaff_s4 * 4);\n          iVar11 = *piVar9;\n          while (iVar11 == -1) {\n            unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n            piVar9 = piVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            iVar11 = *piVar9;\n          }\nLAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;\n          ppppppbVar22 = (byte ******)((int)*unaff_s4 - (int)pppppppbVar20);\n          param_1[7] = (int)ppppppbVar22;\n          if (ppppppbVar22 == (byte ******)0x0) goto LAB_00491650;\n          if (0 < (int)ppppppbVar22) {\n            iVar11 = 0;\n            do {\n              *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n              iVar11 = iVar11 + 1;\n              ppppppbVar22 = (byte ******)param_1[7];\n            } while (iVar11 < (int)ppppppbVar22);\n          }\n          pppppppbVar18 = (byte *******)0xff;\n          (*(code *)PTR_memset_004bf260)(param_1[1]);\n          iVar11 = param_1[7];\n        }\n        else {\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          param_1[7] = 0;\nLAB_00491650:\n          iVar11 = param_1[7];\n        }\n        param_1[8] = iVar11;\n        goto LAB_00491360;\n      }\n      (*(code *)PTR_memmove_004bf3a4)\n                (param_1[2],param_1[2] + (int)param_3,((int)unaff_s6 - (int)pppppppbVar20) * 4);\n      ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n      pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n      (*(code *)PTR_memmove_004bf3a4)();\n      iVar11 = param_1[7];\n      param_1[7] = iVar11 - (int)pppppppbVar20;\n      param_1[8] = param_1[8] - (int)pppppppbVar20;\n      if (iVar11 - (int)pppppppbVar20 < 1) goto LAB_00491360;\n      iVar11 = 0;\n      do {\n        *(int *)(param_1[3] + iVar11 * 4) = *(int *)(param_1[3] + (int)param_3) - (int)pppppppbVar20\n        ;\n        iVar11 = iVar11 + 1;\n        param_3 = param_3 + 1;\n      } while (iVar11 < param_1[7]);\n      cVar2 = *(char *)((int)param_1 + 0x4b);\n    }" ({ "{") (if_statement "if (*(char *)(param_1 + 0x13) == '\0') {\n        iVar11 = FUN_0048efec(param_1,(byte *)((int)pppppppbVar20 + -1));\n        param_1[0xf] = iVar11;\n        pppppppbVar18 = (byte *******)((int)pppppppbVar20 * 4);\n        if (param_1[0x14] < 2) {\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        else {\n          ppppppbVar22 = (byte ******)((param_1[7] - (int)pppppppbVar20) * 4);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar18 + param_1[2]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        if (cVar2 == '\0') {\n          iVar11 = param_1[7];\n        }\n        else {\n          ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar11 = param_1[7];\n        }\n        param_1[7] = iVar11 - (int)pppppppbVar20;\n        param_1[8] = param_1[8] - (int)pppppppbVar20;\n        goto LAB_00491360;\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        iVar11 = FUN_0048efec(param_1,(byte *)((int)pppppppbVar20 + -1));\n        param_1[0xf] = iVar11;\n        pppppppbVar18 = (byte *******)((int)pppppppbVar20 * 4);\n        if (param_1[0x14] < 2) {\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        else {\n          ppppppbVar22 = (byte ******)((param_1[7] - (int)pppppppbVar20) * 4);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar18 + param_1[2]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        if (cVar2 == '\0') {\n          iVar11 = param_1[7];\n        }\n        else {\n          ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar11 = param_1[7];\n        }\n        param_1[7] = iVar11 - (int)pppppppbVar20;\n        param_1[8] = param_1[8] - (int)pppppppbVar20;\n        goto LAB_00491360;\n      }" ({ "{") (expression_statement "iVar11 = FUN_0048efec(param_1,(byte *)((int)pppppppbVar20 + -1));" (assignment_expression "iVar11 = FUN_0048efec(param_1,(byte *)((int)pppppppbVar20 + -1))" (identifier "iVar11") (= "=") (call_expression "FUN_0048efec(param_1,(byte *)((int)pppppppbVar20 + -1))" (identifier "FUN_0048efec") (argument_list "(param_1,(byte *)((int)pppppppbVar20 + -1))" (( "(") (identifier "param_1") (, ",") (cast_expression "(byte *)((int)pppppppbVar20 + -1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppppppbVar20 + -1)" (( "(") (binary_expression "(int)pppppppbVar20 + -1" (cast_expression "(int)pppppppbVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppbVar20")) (+ "+") (number_literal "-1")) () ")"))) () ")")))) (; ";")) (expression_statement "param_1[0xf] = iVar11;" (assignment_expression "param_1[0xf] = iVar11" (subscript_expression "param_1[0xf]" (identifier "param_1") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "iVar11")) (; ";")) (expression_statement "pppppppbVar18 = (byte *******)((int)pppppppbVar20 * 4);" (assignment_expression "pppppppbVar18 = (byte *******)((int)pppppppbVar20 * 4)" (identifier "pppppppbVar18") (= "=") (cast_expression "(byte *******)((int)pppppppbVar20 * 4)" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppbVar20 * 4)" (( "(") (binary_expression "(int)pppppppbVar20 * 4" (cast_expression "(int)pppppppbVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppbVar20")) (* "*") (number_literal "4")) () ")")))) (; ";")) (if_statement "if (param_1[0x14] < 2) {\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }\n        else {\n          ppppppbVar22 = (byte ******)((param_1[7] - (int)pppppppbVar20) * 4);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar18 + param_1[2]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }" (if "if") (parenthesized_expression "(param_1[0x14] < 2)" (( "(") (binary_expression "param_1[0x14] < 2" (subscript_expression "param_1[0x14]" (identifier "param_1") ([ "[") (number_literal "0x14") (] "]")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }" ({ "{") (expression_statement "cVar2 = *(char *)((int)param_1 + 0x4b);" (assignment_expression "cVar2 = *(char *)((int)param_1 + 0x4b)" (identifier "cVar2") (= "=") (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          ppppppbVar22 = (byte ******)((param_1[7] - (int)pppppppbVar20) * 4);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar18 + param_1[2]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }" (else "else") (compound_statement "{\n          ppppppbVar22 = (byte ******)((param_1[7] - (int)pppppppbVar20) * 4);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar18 + param_1[2]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          cVar2 = *(char *)((int)param_1 + 0x4b);\n        }" ({ "{") (expression_statement "ppppppbVar22 = (byte ******)((param_1[7] - (int)pppppppbVar20) * 4);" (assignment_expression "ppppppbVar22 = (byte ******)((param_1[7] - (int)pppppppbVar20) * 4)" (identifier "ppppppbVar22") (= "=") (cast_expression "(byte ******)((param_1[7] - (int)pppppppbVar20) * 4)" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "((param_1[7] - (int)pppppppbVar20) * 4)" (( "(") (binary_expression "(param_1[7] - (int)pppppppbVar20) * 4" (parenthesized_expression "(param_1[7] - (int)pppppppbVar20)" (( "(") (binary_expression "param_1[7] - (int)pppppppbVar20" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (- "-") (cast_expression "(int)pppppppbVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppbVar20"))) () ")")) (* "*") (number_literal "4")) () ")")))) (; ";")) (expression_statement "pppppppbVar18 = (byte *******)((int)pppppppbVar18 + param_1[2]);" (assignment_expression "pppppppbVar18 = (byte *******)((int)pppppppbVar18 + param_1[2])" (identifier "pppppppbVar18") (= "=") (cast_expression "(byte *******)((int)pppppppbVar18 + param_1[2])" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppbVar18 + param_1[2])" (( "(") (binary_expression "(int)pppppppbVar18 + param_1[2]" (cast_expression "(int)pppppppbVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppbVar18")) (+ "+") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) () ")")))) (; ";")) (expression_statement "(*(code *)PTR_memmove_004bf3a4)();" (call_expression "(*(code *)PTR_memmove_004bf3a4)()" (parenthesized_expression "(*(code *)PTR_memmove_004bf3a4)" (( "(") (pointer_expression "*(code *)PTR_memmove_004bf3a4" (* "*") (cast_expression "(code *)PTR_memmove_004bf3a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memmove_004bf3a4"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "cVar2 = *(char *)((int)param_1 + 0x4b);" (assignment_expression "cVar2 = *(char *)((int)param_1 + 0x4b)" (identifier "cVar2") (= "=") (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 (cVar2 == '\0') {\n          iVar11 = param_1[7];\n        }\n        else {\n          ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar11 = param_1[7];\n        }" (if "if") (parenthesized_expression "(cVar2 == '\0')" (( "(") (binary_expression "cVar2 == '\0'" (identifier "cVar2") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          iVar11 = param_1[7];\n        }" ({ "{") (expression_statement "iVar11 = param_1[7];" (assignment_expression "iVar11 = param_1[7]" (identifier "iVar11") (= "=") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n          ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar11 = param_1[7];\n        }" (else "else") (compound_statement "{\n          ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);\n          pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);\n          (*(code *)PTR_memmove_004bf3a4)();\n          iVar11 = param_1[7];\n        }" ({ "{") (expression_statement "ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);" (assignment_expression "ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20)" (identifier "ppppppbVar22") (= "=") (cast_expression "(byte ******)(param_1[7] - (int)pppppppbVar20)" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(param_1[7] - (int)pppppppbVar20)" (( "(") (binary_expression "param_1[7] - (int)pppppppbVar20" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (- "-") (cast_expression "(int)pppppppbVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppbVar20"))) () ")")))) (; ";")) (expression_statement "pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);" (assignment_expression "pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1])" (identifier "pppppppbVar18") (= "=") (cast_expression "(byte *******)((int)pppppppbVar20 + param_1[1])" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppbVar20 + param_1[1])" (( "(") (binary_expression "(int)pppppppbVar20 + param_1[1]" (cast_expression "(int)pppppppbVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppbVar20")) (+ "+") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) () ")")))) (; ";")) (expression_statement "(*(code *)PTR_memmove_004bf3a4)();" (call_expression "(*(code *)PTR_memmove_004bf3a4)()" (parenthesized_expression "(*(code *)PTR_memmove_004bf3a4)" (( "(") (pointer_expression "*(code *)PTR_memmove_004bf3a4" (* "*") (cast_expression "(code *)PTR_memmove_004bf3a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memmove_004bf3a4"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar11 = param_1[7];" (assignment_expression "iVar11 = param_1[7]" (identifier "iVar11") (= "=") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]"))) (; ";")) (} "}")))) (expression_statement "param_1[7] = iVar11 - (int)pppppppbVar20;" (assignment_expression "param_1[7] = iVar11 - (int)pppppppbVar20" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (= "=") (binary_expression "iVar11 - (int)pppppppbVar20" (identifier "iVar11") (- "-") (cast_expression "(int)pppppppbVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppbVar20")))) (; ";")) (expression_statement "param_1[8] = param_1[8] - (int)pppppppbVar20;" (assignment_expression "param_1[8] = param_1[8] - (int)pppppppbVar20" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (= "=") (binary_expression "param_1[8] - (int)pppppppbVar20" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (- "-") (cast_expression "(int)pppppppbVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppbVar20")))) (; ";")) (goto_statement "goto LAB_00491360;" (goto "goto") (statement_identifier "LAB_00491360") (; ";")) (} "}"))) (expression_statement "unaff_s6 = (byte *******)param_1[7];" (assignment_expression "unaff_s6 = (byte *******)param_1[7]" (identifier "unaff_s6") (= "=") (cast_expression "(byte *******)param_1[7]" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (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 "unaff_s5 = (byte *******)param_1[3];" (assignment_expression "unaff_s5 = (byte *******)param_1[3]" (identifier "unaff_s5") (= "=") (cast_expression "(byte *******)param_1[3]" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (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 "pbVar16 = (byte *)0x0;" (assignment_expression "pbVar16 = (byte *)0x0" (identifier "pbVar16") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppppppbVar18 = unaff_s6;" (assignment_expression "pppppppbVar18 = unaff_s6" (identifier "pppppppbVar18") (= "=") (identifier "unaff_s6")) (; ";")) (do_statement "do {\n        unaff_s4 = (byte *******)((int)(pbVar16 + (int)pppppppbVar18) / 2);\n        ppppppbVar6 = unaff_s5[(int)unaff_s4];\n        bVar1 = (int)pbVar16 < (int)unaff_s4;\n        pppppppbVar12 = unaff_s4;\n        if ((int)ppppppbVar6 <= (int)pppppppbVar20) {\n          pbVar16 = (byte *)((int)unaff_s4 + 1);\n          if ((int)pppppppbVar20 <= (int)ppppppbVar6) goto LAB_0049145c;\n          bVar1 = (int)pbVar16 < (int)pppppppbVar18;\n          pppppppbVar12 = pppppppbVar18;\n        }\n        pppppppbVar18 = pppppppbVar12;\n      } while (bVar1);" (do "do") (compound_statement "{\n        unaff_s4 = (byte *******)((int)(pbVar16 + (int)pppppppbVar18) / 2);\n        ppppppbVar6 = unaff_s5[(int)unaff_s4];\n        bVar1 = (int)pbVar16 < (int)unaff_s4;\n        pppppppbVar12 = unaff_s4;\n        if ((int)ppppppbVar6 <= (int)pppppppbVar20) {\n          pbVar16 = (byte *)((int)unaff_s4 + 1);\n          if ((int)pppppppbVar20 <= (int)ppppppbVar6) goto LAB_0049145c;\n          bVar1 = (int)pbVar16 < (int)pppppppbVar18;\n          pppppppbVar12 = pppppppbVar18;\n        }\n        pppppppbVar18 = pppppppbVar12;\n      }" ({ "{") (expression_statement "unaff_s4 = (byte *******)((int)(pbVar16 + (int)pppppppbVar18) / 2);" (assignment_expression "unaff_s4 = (byte *******)((int)(pbVar16 + (int)pppppppbVar18) / 2)" (identifier "unaff_s4") (= "=") (cast_expression "(byte *******)((int)(pbVar16 + (int)pppppppbVar18) / 2)" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)(pbVar16 + (int)pppppppbVar18) / 2)" (( "(") (binary_expression "(int)(pbVar16 + (int)pppppppbVar18) / 2" (cast_expression "(int)(pbVar16 + (int)pppppppbVar18)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pbVar16 + (int)pppppppbVar18)" (( "(") (binary_expression "pbVar16 + (int)pppppppbVar18" (identifier "pbVar16") (+ "+") (cast_expression "(int)pppppppbVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppbVar18"))) () ")"))) (/ "/") (number_literal "2")) () ")")))) (; ";")) (expression_statement "ppppppbVar6 = unaff_s5[(int)unaff_s4];" (assignment_expression "ppppppbVar6 = unaff_s5[(int)unaff_s4]" (identifier "ppppppbVar6") (= "=") (subscript_expression "unaff_s5[(int)unaff_s4]" (identifier "unaff_s5") ([ "[") (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4")) (] "]"))) (; ";")) (expression_statement "bVar1 = (int)pbVar16 < (int)unaff_s4;" (assignment_expression "bVar1 = (int)pbVar16 < (int)unaff_s4" (identifier "bVar1") (= "=") (binary_expression "(int)pbVar16 < (int)unaff_s4" (cast_expression "(int)pbVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar16")) (< "<") (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4")))) (; ";")) (expression_statement "pppppppbVar12 = unaff_s4;" (assignment_expression "pppppppbVar12 = unaff_s4" (identifier "pppppppbVar12") (= "=") (identifier "unaff_s4")) (; ";")) (if_statement "if ((int)ppppppbVar6 <= (int)pppppppbVar20) {\n          pbVar16 = (byte *)((int)unaff_s4 + 1);\n          if ((int)pppppppbVar20 <= (int)ppppppbVar6) goto LAB_0049145c;\n          bVar1 = (int)pbVar16 < (int)pppppppbVar18;\n          pppppppbVar12 = pppppppbVar18;\n        }" (if "if") (parenthesized_expression "((int)ppppppbVar6 <= (int)pppppppbVar20)" (( "(") (binary_expression "(int)ppppppbVar6 <= (int)pppppppbVar20" (cast_expression "(int)ppppppbVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppbVar6")) (<= "<=") (cast_expression "(int)pppppppbVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppbVar20"))) () ")")) (compound_statement "{\n          pbVar16 = (byte *)((int)unaff_s4 + 1);\n          if ((int)pppppppbVar20 <= (int)ppppppbVar6) goto LAB_0049145c;\n          bVar1 = (int)pbVar16 < (int)pppppppbVar18;\n          pppppppbVar12 = pppppppbVar18;\n        }" ({ "{") (expression_statement "pbVar16 = (byte *)((int)unaff_s4 + 1);" (assignment_expression "pbVar16 = (byte *)((int)unaff_s4 + 1)" (identifier "pbVar16") (= "=") (cast_expression "(byte *)((int)unaff_s4 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s4 + 1)" (( "(") (binary_expression "(int)unaff_s4 + 1" (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if ((int)pppppppbVar20 <= (int)ppppppbVar6) goto LAB_0049145c;" (if "if") (parenthesized_expression "((int)pppppppbVar20 <= (int)ppppppbVar6)" (( "(") (binary_expression "(int)pppppppbVar20 <= (int)ppppppbVar6" (cast_expression "(int)pppppppbVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppbVar20")) (<= "<=") (cast_expression "(int)ppppppbVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppbVar6"))) () ")")) (goto_statement "goto LAB_0049145c;" (goto "goto") (statement_identifier "LAB_0049145c") (; ";"))) (expression_statement "bVar1 = (int)pbVar16 < (int)pppppppbVar18;" (assignment_expression "bVar1 = (int)pbVar16 < (int)pppppppbVar18" (identifier "bVar1") (= "=") (binary_expression "(int)pbVar16 < (int)pppppppbVar18" (cast_expression "(int)pbVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar16")) (< "<") (cast_expression "(int)pppppppbVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppbVar18")))) (; ";")) (expression_statement "pppppppbVar12 = pppppppbVar18;" (assignment_expression "pppppppbVar12 = pppppppbVar18" (identifier "pppppppbVar12") (= "=") (identifier "pppppppbVar18")) (; ";")) (} "}"))) (expression_statement "pppppppbVar18 = pppppppbVar12;" (assignment_expression "pppppppbVar18 = pppppppbVar12" (identifier "pppppppbVar18") (= "=") (identifier "pppppppbVar12")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (; ";")) (if_statement "if ((int)ppppppbVar6 < (int)pppppppbVar20) {\n        unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n      }" (if "if") (parenthesized_expression "((int)ppppppbVar6 < (int)pppppppbVar20)" (( "(") (binary_expression "(int)ppppppbVar6 < (int)pppppppbVar20" (cast_expression "(int)ppppppbVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppbVar6")) (< "<") (cast_expression "(int)pppppppbVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppbVar20"))) () ")")) (compound_statement "{\n        unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n      }" ({ "{") (expression_statement "unaff_s4 = (byte *******)((int)unaff_s4 + 1);" (assignment_expression "unaff_s4 = (byte *******)((int)unaff_s4 + 1)" (identifier "unaff_s4") (= "=") (cast_expression "(byte *******)((int)unaff_s4 + 1)" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (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_s4 + 1)" (( "(") (binary_expression "(int)unaff_s4 + 1" (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}"))) (labeled_statement "LAB_0049145c:\n      pppppppbVar18 = (byte *******)((int)unaff_s4 + -1);" (statement_identifier "LAB_0049145c") (: ":") (expression_statement "pppppppbVar18 = (byte *******)((int)unaff_s4 + -1);" (assignment_expression "pppppppbVar18 = (byte *******)((int)unaff_s4 + -1)" (identifier "pppppppbVar18") (= "=") (cast_expression "(byte *******)((int)unaff_s4 + -1)" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (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_s4 + -1)" (( "(") (binary_expression "(int)unaff_s4 + -1" (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4")) (+ "+") (number_literal "-1")) () ")")))) (; ";"))) (expression_statement "iVar11 = FUN_0048efec(param_1);" (assignment_expression "iVar11 = FUN_0048efec(param_1)" (identifier "iVar11") (= "=") (call_expression "FUN_0048efec(param_1)" (identifier "FUN_0048efec") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "param_1[0xf] = iVar11;" (assignment_expression "param_1[0xf] = iVar11" (subscript_expression "param_1[0xf]" (identifier "param_1") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "iVar11")) (; ";")) (if_statement "if ((((int)unaff_s6 <= (int)pppppppbVar20) || (pppppppbVar20 != unaff_s4)) ||\n         (param_3 = (byte ******)((int)pppppppbVar20 * 4),\n         (byte *******)unaff_s5[(int)unaff_s4] != pppppppbVar20)) {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        if ((0 < (int)unaff_s4) &&\n           ((byte *******)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pppppppbVar20)) {\n          pppppppbVar12 = unaff_s5 + (int)(unaff_s4 + 0x10000000);\n          do {\n            unaff_s4 = (byte *******)((int)unaff_s4 + -1);\n            if (unaff_s4 == (byte *******)0x0) break;\n            pppppppbVar19 = pppppppbVar12 + -2;\n            pppppppbVar12 = pppppppbVar12 + -1;\n          } while ((byte *******)*pppppppbVar19 == pppppppbVar20);\n        }\n        if ((int)unaff_s4 < (int)unaff_s6) {\n          piVar9 = (int *)(param_1[2] + (int)unaff_s4 * 4);\n          iVar11 = *piVar9;\n          while (iVar11 == -1) {\n            unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n            piVar9 = piVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            iVar11 = *piVar9;\n          }\nLAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;\n          ppppppbVar22 = (byte ******)((int)*unaff_s4 - (int)pppppppbVar20);\n          param_1[7] = (int)ppppppbVar22;\n          if (ppppppbVar22 == (byte ******)0x0) goto LAB_00491650;\n          if (0 < (int)ppppppbVar22) {\n            iVar11 = 0;\n            do {\n              *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n              iVar11 = iVar11 + 1;\n              ppppppbVar22 = (byte ******)param_1[7];\n            } while (iVar11 < (int)ppppppbVar22);\n          }\n          pppppppbVar18 = (byte *******)0xff;\n          (*(code *)PTR_memset_004bf260)(param_1[1]);\n          iVar11 = param_1[7];\n        }\n        else {\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          param_1[7] = 0;\nLAB_00491650:\n          iVar11 = param_1[7];\n        }\n        param_1[8] = iVar11;\n        goto LAB_00491360;\n      }" (if "if") (parenthesized_expression "((((int)unaff_s6 <= (int)pppppppbVar20) || (pppppppbVar20 != unaff_s4)) ||\n         (param_3 = (byte ******)((int)pppppppbVar20 * 4),\n         (byte *******)unaff_s5[(int)unaff_s4] != pppppppbVar20))" (( "(") (binary_expression "(((int)unaff_s6 <= (int)pppppppbVar20) || (pppppppbVar20 != unaff_s4)) ||\n         (param_3 = (byte ******)((int)pppppppbVar20 * 4),\n         (byte *******)unaff_s5[(int)unaff_s4] != pppppppbVar20)" (parenthesized_expression "(((int)unaff_s6 <= (int)pppppppbVar20) || (pppppppbVar20 != unaff_s4))" (( "(") (binary_expression "((int)unaff_s6 <= (int)pppppppbVar20) || (pppppppbVar20 != unaff_s4)" (parenthesized_expression "((int)unaff_s6 <= (int)pppppppbVar20)" (( "(") (binary_expression "(int)unaff_s6 <= (int)pppppppbVar20" (cast_expression "(int)unaff_s6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s6")) (<= "<=") (cast_expression "(int)pppppppbVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppbVar20"))) () ")")) (|| "||") (parenthesized_expression "(pppppppbVar20 != unaff_s4)" (( "(") (binary_expression "pppppppbVar20 != unaff_s4" (identifier "pppppppbVar20") (!= "!=") (identifier "unaff_s4")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(param_3 = (byte ******)((int)pppppppbVar20 * 4),\n         (byte *******)unaff_s5[(int)unaff_s4] != pppppppbVar20)" (( "(") (comma_expression "param_3 = (byte ******)((int)pppppppbVar20 * 4),\n         (byte *******)unaff_s5[(int)unaff_s4] != pppppppbVar20" (assignment_expression "param_3 = (byte ******)((int)pppppppbVar20 * 4)" (identifier "param_3") (= "=") (cast_expression "(byte ******)((int)pppppppbVar20 * 4)" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "((int)pppppppbVar20 * 4)" (( "(") (binary_expression "(int)pppppppbVar20 * 4" (cast_expression "(int)pppppppbVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppbVar20")) (* "*") (number_literal "4")) () ")")))) (, ",") (binary_expression "(byte *******)unaff_s5[(int)unaff_s4] != pppppppbVar20" (cast_expression "(byte *******)unaff_s5[(int)unaff_s4]" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "unaff_s5[(int)unaff_s4]" (identifier "unaff_s5") ([ "[") (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4")) (] "]"))) (!= "!=") (identifier "pppppppbVar20"))) () ")"))) () ")")) (compound_statement "{\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n        if ((0 < (int)unaff_s4) &&\n           ((byte *******)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pppppppbVar20)) {\n          pppppppbVar12 = unaff_s5 + (int)(unaff_s4 + 0x10000000);\n          do {\n            unaff_s4 = (byte *******)((int)unaff_s4 + -1);\n            if (unaff_s4 == (byte *******)0x0) break;\n            pppppppbVar19 = pppppppbVar12 + -2;\n            pppppppbVar12 = pppppppbVar12 + -1;\n          } while ((byte *******)*pppppppbVar19 == pppppppbVar20);\n        }\n        if ((int)unaff_s4 < (int)unaff_s6) {\n          piVar9 = (int *)(param_1[2] + (int)unaff_s4 * 4);\n          iVar11 = *piVar9;\n          while (iVar11 == -1) {\n            unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n            piVar9 = piVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            iVar11 = *piVar9;\n          }\nLAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;\n          ppppppbVar22 = (byte ******)((int)*unaff_s4 - (int)pppppppbVar20);\n          param_1[7] = (int)ppppppbVar22;\n          if (ppppppbVar22 == (byte ******)0x0) goto LAB_00491650;\n          if (0 < (int)ppppppbVar22) {\n            iVar11 = 0;\n            do {\n              *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n              iVar11 = iVar11 + 1;\n              ppppppbVar22 = (byte ******)param_1[7];\n            } while (iVar11 < (int)ppppppbVar22);\n          }\n          pppppppbVar18 = (byte *******)0xff;\n          (*(code *)PTR_memset_004bf260)(param_1[1]);\n          iVar11 = param_1[7];\n        }\n        else {\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          param_1[7] = 0;\nLAB_00491650:\n          iVar11 = param_1[7];\n        }\n        param_1[8] = iVar11;\n        goto LAB_00491360;\n      }" ({ "{") (expression_statement "param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));" (assignment_expression "param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2))" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (= "=") (cast_expression "(int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)pppppppbVar20 + (param_1[0xb] - (int)param_2))" (( "(") (binary_expression "(int)pppppppbVar20 + (param_1[0xb] - (int)param_2)" (cast_expression "(int)pppppppbVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppbVar20")) (+ "+") (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 "param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));" (assignment_expression "param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2))" (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]")) (= "=") (cast_expression "(int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)pppppppbVar20 + (param_1[0xd] - (int)param_2))" (( "(") (binary_expression "(int)pppppppbVar20 + (param_1[0xd] - (int)param_2)" (cast_expression "(int)pppppppbVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppbVar20")) (+ "+") (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"))) () ")"))) () ")")))) (; ";")) (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")) (; ";")) (if_statement "if ((0 < (int)unaff_s4) &&\n           ((byte *******)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pppppppbVar20)) {\n          pppppppbVar12 = unaff_s5 + (int)(unaff_s4 + 0x10000000);\n          do {\n            unaff_s4 = (byte *******)((int)unaff_s4 + -1);\n            if (unaff_s4 == (byte *******)0x0) break;\n            pppppppbVar19 = pppppppbVar12 + -2;\n            pppppppbVar12 = pppppppbVar12 + -1;\n          } while ((byte *******)*pppppppbVar19 == pppppppbVar20);\n        }" (if "if") (parenthesized_expression "((0 < (int)unaff_s4) &&\n           ((byte *******)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pppppppbVar20))" (( "(") (binary_expression "(0 < (int)unaff_s4) &&\n           ((byte *******)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pppppppbVar20)" (parenthesized_expression "(0 < (int)unaff_s4)" (( "(") (binary_expression "0 < (int)unaff_s4" (number_literal "0") (< "<") (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4"))) () ")")) (&& "&&") (parenthesized_expression "((byte *******)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pppppppbVar20)" (( "(") (binary_expression "(byte *******)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pppppppbVar20" (cast_expression "(byte *******)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)]" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)]" (identifier "unaff_s5") ([ "[") (cast_expression "(int)((int)unaff_s4 + 0x3fffffff)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)unaff_s4 + 0x3fffffff)" (( "(") (binary_expression "(int)unaff_s4 + 0x3fffffff" (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4")) (+ "+") (number_literal "0x3fffffff")) () ")"))) (] "]"))) (== "==") (identifier "pppppppbVar20")) () ")"))) () ")")) (compound_statement "{\n          pppppppbVar12 = unaff_s5 + (int)(unaff_s4 + 0x10000000);\n          do {\n            unaff_s4 = (byte *******)((int)unaff_s4 + -1);\n            if (unaff_s4 == (byte *******)0x0) break;\n            pppppppbVar19 = pppppppbVar12 + -2;\n            pppppppbVar12 = pppppppbVar12 + -1;\n          } while ((byte *******)*pppppppbVar19 == pppppppbVar20);\n        }" ({ "{") (expression_statement "pppppppbVar12 = unaff_s5 + (int)(unaff_s4 + 0x10000000);" (assignment_expression "pppppppbVar12 = unaff_s5 + (int)(unaff_s4 + 0x10000000)" (identifier "pppppppbVar12") (= "=") (binary_expression "unaff_s5 + (int)(unaff_s4 + 0x10000000)" (identifier "unaff_s5") (+ "+") (cast_expression "(int)(unaff_s4 + 0x10000000)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(unaff_s4 + 0x10000000)" (( "(") (binary_expression "unaff_s4 + 0x10000000" (identifier "unaff_s4") (+ "+") (number_literal "0x10000000")) () ")"))))) (; ";")) (do_statement "do {\n            unaff_s4 = (byte *******)((int)unaff_s4 + -1);\n            if (unaff_s4 == (byte *******)0x0) break;\n            pppppppbVar19 = pppppppbVar12 + -2;\n            pppppppbVar12 = pppppppbVar12 + -1;\n          } while ((byte *******)*pppppppbVar19 == pppppppbVar20);" (do "do") (compound_statement "{\n            unaff_s4 = (byte *******)((int)unaff_s4 + -1);\n            if (unaff_s4 == (byte *******)0x0) break;\n            pppppppbVar19 = pppppppbVar12 + -2;\n            pppppppbVar12 = pppppppbVar12 + -1;\n          }" ({ "{") (expression_statement "unaff_s4 = (byte *******)((int)unaff_s4 + -1);" (assignment_expression "unaff_s4 = (byte *******)((int)unaff_s4 + -1)" (identifier "unaff_s4") (= "=") (cast_expression "(byte *******)((int)unaff_s4 + -1)" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (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_s4 + -1)" (( "(") (binary_expression "(int)unaff_s4 + -1" (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (if_statement "if (unaff_s4 == (byte *******)0x0) break;" (if "if") (parenthesized_expression "(unaff_s4 == (byte *******)0x0)" (( "(") (binary_expression "unaff_s4 == (byte *******)0x0" (identifier "unaff_s4") (== "==") (cast_expression "(byte *******)0x0" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (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 "pppppppbVar19 = pppppppbVar12 + -2;" (assignment_expression "pppppppbVar19 = pppppppbVar12 + -2" (identifier "pppppppbVar19") (= "=") (binary_expression "pppppppbVar12 + -2" (identifier "pppppppbVar12") (+ "+") (number_literal "-2"))) (; ";")) (expression_statement "pppppppbVar12 = pppppppbVar12 + -1;" (assignment_expression "pppppppbVar12 = pppppppbVar12 + -1" (identifier "pppppppbVar12") (= "=") (binary_expression "pppppppbVar12 + -1" (identifier "pppppppbVar12") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((byte *******)*pppppppbVar19 == pppppppbVar20)" (( "(") (binary_expression "(byte *******)*pppppppbVar19 == pppppppbVar20" (cast_expression "(byte *******)*pppppppbVar19" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "*pppppppbVar19" (* "*") (identifier "pppppppbVar19"))) (== "==") (identifier "pppppppbVar20")) () ")")) (; ";")) (} "}"))) (if_statement "if ((int)unaff_s4 < (int)unaff_s6) {\n          piVar9 = (int *)(param_1[2] + (int)unaff_s4 * 4);\n          iVar11 = *piVar9;\n          while (iVar11 == -1) {\n            unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n            piVar9 = piVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            iVar11 = *piVar9;\n          }\nLAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;\n          ppppppbVar22 = (byte ******)((int)*unaff_s4 - (int)pppppppbVar20);\n          param_1[7] = (int)ppppppbVar22;\n          if (ppppppbVar22 == (byte ******)0x0) goto LAB_00491650;\n          if (0 < (int)ppppppbVar22) {\n            iVar11 = 0;\n            do {\n              *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n              iVar11 = iVar11 + 1;\n              ppppppbVar22 = (byte ******)param_1[7];\n            } while (iVar11 < (int)ppppppbVar22);\n          }\n          pppppppbVar18 = (byte *******)0xff;\n          (*(code *)PTR_memset_004bf260)(param_1[1]);\n          iVar11 = param_1[7];\n        }\n        else {\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          param_1[7] = 0;\nLAB_00491650:\n          iVar11 = param_1[7];\n        }" (if "if") (parenthesized_expression "((int)unaff_s4 < (int)unaff_s6)" (( "(") (binary_expression "(int)unaff_s4 < (int)unaff_s6" (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4")) (< "<") (cast_expression "(int)unaff_s6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s6"))) () ")")) (compound_statement "{\n          piVar9 = (int *)(param_1[2] + (int)unaff_s4 * 4);\n          iVar11 = *piVar9;\n          while (iVar11 == -1) {\n            unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n            piVar9 = piVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            iVar11 = *piVar9;\n          }\nLAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;\n          ppppppbVar22 = (byte ******)((int)*unaff_s4 - (int)pppppppbVar20);\n          param_1[7] = (int)ppppppbVar22;\n          if (ppppppbVar22 == (byte ******)0x0) goto LAB_00491650;\n          if (0 < (int)ppppppbVar22) {\n            iVar11 = 0;\n            do {\n              *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n              iVar11 = iVar11 + 1;\n              ppppppbVar22 = (byte ******)param_1[7];\n            } while (iVar11 < (int)ppppppbVar22);\n          }\n          pppppppbVar18 = (byte *******)0xff;\n          (*(code *)PTR_memset_004bf260)(param_1[1]);\n          iVar11 = param_1[7];\n        }" ({ "{") (expression_statement "piVar9 = (int *)(param_1[2] + (int)unaff_s4 * 4);" (assignment_expression "piVar9 = (int *)(param_1[2] + (int)unaff_s4 * 4)" (identifier "piVar9") (= "=") (cast_expression "(int *)(param_1[2] + (int)unaff_s4 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[2] + (int)unaff_s4 * 4)" (( "(") (binary_expression "param_1[2] + (int)unaff_s4 * 4" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (+ "+") (binary_expression "(int)unaff_s4 * 4" (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4")) (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "iVar11 = *piVar9;" (assignment_expression "iVar11 = *piVar9" (identifier "iVar11") (= "=") (pointer_expression "*piVar9" (* "*") (identifier "piVar9"))) (; ";")) (while_statement "while (iVar11 == -1) {\n            unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n            piVar9 = piVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            iVar11 = *piVar9;\n          }" (while "while") (parenthesized_expression "(iVar11 == -1)" (( "(") (binary_expression "iVar11 == -1" (identifier "iVar11") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n            unaff_s4 = (byte *******)((int)unaff_s4 + 1);\n            piVar9 = piVar9 + 1;\n            if (unaff_s6 == unaff_s4) goto LAB_0049164c;\n            iVar11 = *piVar9;\n          }" ({ "{") (expression_statement "unaff_s4 = (byte *******)((int)unaff_s4 + 1);" (assignment_expression "unaff_s4 = (byte *******)((int)unaff_s4 + 1)" (identifier "unaff_s4") (= "=") (cast_expression "(byte *******)((int)unaff_s4 + 1)" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (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_s4 + 1)" (( "(") (binary_expression "(int)unaff_s4 + 1" (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "piVar9 = piVar9 + 1;" (assignment_expression "piVar9 = piVar9 + 1" (identifier "piVar9") (= "=") (binary_expression "piVar9 + 1" (identifier "piVar9") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (unaff_s6 == unaff_s4) goto LAB_0049164c;" (if "if") (parenthesized_expression "(unaff_s6 == unaff_s4)" (( "(") (binary_expression "unaff_s6 == unaff_s4" (identifier "unaff_s6") (== "==") (identifier "unaff_s4")) () ")")) (goto_statement "goto LAB_0049164c;" (goto "goto") (statement_identifier "LAB_0049164c") (; ";"))) (expression_statement "iVar11 = *piVar9;" (assignment_expression "iVar11 = *piVar9" (identifier "iVar11") (= "=") (pointer_expression "*piVar9" (* "*") (identifier "piVar9"))) (; ";")) (} "}"))) (labeled_statement "LAB_00491534:\n          unaff_s4 = unaff_s5 + (int)unaff_s4;" (statement_identifier "LAB_00491534") (: ":") (expression_statement "unaff_s4 = unaff_s5 + (int)unaff_s4;" (assignment_expression "unaff_s4 = unaff_s5 + (int)unaff_s4" (identifier "unaff_s4") (= "=") (binary_expression "unaff_s5 + (int)unaff_s4" (identifier "unaff_s5") (+ "+") (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4")))) (; ";"))) (expression_statement "ppppppbVar22 = (byte ******)((int)*unaff_s4 - (int)pppppppbVar20);" (assignment_expression "ppppppbVar22 = (byte ******)((int)*unaff_s4 - (int)pppppppbVar20)" (identifier "ppppppbVar22") (= "=") (cast_expression "(byte ******)((int)*unaff_s4 - (int)pppppppbVar20)" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "((int)*unaff_s4 - (int)pppppppbVar20)" (( "(") (binary_expression "(int)*unaff_s4 - (int)pppppppbVar20" (cast_expression "(int)*unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*unaff_s4" (* "*") (identifier "unaff_s4"))) (- "-") (cast_expression "(int)pppppppbVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppbVar20"))) () ")")))) (; ";")) (expression_statement "param_1[7] = (int)ppppppbVar22;" (assignment_expression "param_1[7] = (int)ppppppbVar22" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (= "=") (cast_expression "(int)ppppppbVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppbVar22"))) (; ";")) (if_statement "if (ppppppbVar22 == (byte ******)0x0) goto LAB_00491650;" (if "if") (parenthesized_expression "(ppppppbVar22 == (byte ******)0x0)" (( "(") (binary_expression "ppppppbVar22 == (byte ******)0x0" (identifier "ppppppbVar22") (== "==") (cast_expression "(byte ******)0x0" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (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_00491650;" (goto "goto") (statement_identifier "LAB_00491650") (; ";"))) (if_statement "if (0 < (int)ppppppbVar22) {\n            iVar11 = 0;\n            do {\n              *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n              iVar11 = iVar11 + 1;\n              ppppppbVar22 = (byte ******)param_1[7];\n            } while (iVar11 < (int)ppppppbVar22);\n          }" (if "if") (parenthesized_expression "(0 < (int)ppppppbVar22)" (( "(") (binary_expression "0 < (int)ppppppbVar22" (number_literal "0") (< "<") (cast_expression "(int)ppppppbVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppbVar22"))) () ")")) (compound_statement "{\n            iVar11 = 0;\n            do {\n              *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n              iVar11 = iVar11 + 1;\n              ppppppbVar22 = (byte ******)param_1[7];\n            } while (iVar11 < (int)ppppppbVar22);\n          }" ({ "{") (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n              *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n              iVar11 = iVar11 + 1;\n              ppppppbVar22 = (byte ******)param_1[7];\n            } while (iVar11 < (int)ppppppbVar22);" (do "do") (compound_statement "{\n              *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n              iVar11 = iVar11 + 1;\n              ppppppbVar22 = (byte ******)param_1[7];\n            }" ({ "{") (expression_statement "*(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;" (assignment_expression "*(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff" (pointer_expression "*(undefined4 *)(param_1[2] + iVar11 * 4)" (* "*") (cast_expression "(undefined4 *)(param_1[2] + iVar11 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[2] + iVar11 * 4)" (( "(") (binary_expression "param_1[2] + iVar11 * 4" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (+ "+") (binary_expression "iVar11 * 4" (identifier "iVar11") (* "*") (number_literal "4"))) () ")")))) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" (identifier "iVar11") (= "=") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "ppppppbVar22 = (byte ******)param_1[7];" (assignment_expression "ppppppbVar22 = (byte ******)param_1[7]" (identifier "ppppppbVar22") (= "=") (cast_expression "(byte ******)param_1[7]" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (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") (] "]")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar11 < (int)ppppppbVar22)" (( "(") (binary_expression "iVar11 < (int)ppppppbVar22" (identifier "iVar11") (< "<") (cast_expression "(int)ppppppbVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppbVar22"))) () ")")) (; ";")) (} "}"))) (expression_statement "pppppppbVar18 = (byte *******)0xff;" (assignment_expression "pppppppbVar18 = (byte *******)0xff" (identifier "pppppppbVar18") (= "=") (cast_expression "(byte *******)0xff" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xff"))) (; ";")) (expression_statement "(*(code *)PTR_memset_004bf260)(param_1[1]);" (call_expression "(*(code *)PTR_memset_004bf260)(param_1[1])" (parenthesized_expression "(*(code *)PTR_memset_004bf260)" (( "(") (pointer_expression "*(code *)PTR_memset_004bf260" (* "*") (cast_expression "(code *)PTR_memset_004bf260" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memset_004bf260"))) () ")")) (argument_list "(param_1[1])" (( "(") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) () ")"))) (; ";")) (expression_statement "iVar11 = param_1[7];" (assignment_expression "iVar11 = param_1[7]" (identifier "iVar11") (= "=") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          param_1[7] = 0;\nLAB_00491650:\n          iVar11 = param_1[7];\n        }" (else "else") (compound_statement "{\n          if (unaff_s4 != unaff_s6) goto LAB_00491534;\nLAB_0049164c:\n          param_1[7] = 0;\nLAB_00491650:\n          iVar11 = param_1[7];\n        }" ({ "{") (if_statement "if (unaff_s4 != unaff_s6) goto LAB_00491534;" (if "if") (parenthesized_expression "(unaff_s4 != unaff_s6)" (( "(") (binary_expression "unaff_s4 != unaff_s6" (identifier "unaff_s4") (!= "!=") (identifier "unaff_s6")) () ")")) (goto_statement "goto LAB_00491534;" (goto "goto") (statement_identifier "LAB_00491534") (; ";"))) (labeled_statement "LAB_0049164c:\n          param_1[7] = 0;" (statement_identifier "LAB_0049164c") (: ":") (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")) (; ";"))) (labeled_statement "LAB_00491650:\n          iVar11 = param_1[7];" (statement_identifier "LAB_00491650") (: ":") (expression_statement "iVar11 = param_1[7];" (assignment_expression "iVar11 = param_1[7]" (identifier "iVar11") (= "=") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]"))) (; ";"))) (} "}")))) (expression_statement "param_1[8] = iVar11;" (assignment_expression "param_1[8] = iVar11" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "iVar11")) (; ";")) (goto_statement "goto LAB_00491360;" (goto "goto") (statement_identifier "LAB_00491360") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_memmove_004bf3a4)\n                (param_1[2],param_1[2] + (int)param_3,((int)unaff_s6 - (int)pppppppbVar20) * 4);" (call_expression "(*(code *)PTR_memmove_004bf3a4)\n                (param_1[2],param_1[2] + (int)param_3,((int)unaff_s6 - (int)pppppppbVar20) * 4)" (parenthesized_expression "(*(code *)PTR_memmove_004bf3a4)" (( "(") (pointer_expression "*(code *)PTR_memmove_004bf3a4" (* "*") (cast_expression "(code *)PTR_memmove_004bf3a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memmove_004bf3a4"))) () ")")) (argument_list "(param_1[2],param_1[2] + (int)param_3,((int)unaff_s6 - (int)pppppppbVar20) * 4)" (( "(") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (, ",") (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_s6 - (int)pppppppbVar20) * 4" (parenthesized_expression "((int)unaff_s6 - (int)pppppppbVar20)" (( "(") (binary_expression "(int)unaff_s6 - (int)pppppppbVar20" (cast_expression "(int)unaff_s6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s6")) (- "-") (cast_expression "(int)pppppppbVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppbVar20"))) () ")")) (* "*") (number_literal "4")) () ")"))) (; ";")) (expression_statement "ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);" (assignment_expression "ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20)" (identifier "ppppppbVar22") (= "=") (cast_expression "(byte ******)(param_1[7] - (int)pppppppbVar20)" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(param_1[7] - (int)pppppppbVar20)" (( "(") (binary_expression "param_1[7] - (int)pppppppbVar20" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (- "-") (cast_expression "(int)pppppppbVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppbVar20"))) () ")")))) (; ";")) (expression_statement "pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);" (assignment_expression "pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1])" (identifier "pppppppbVar18") (= "=") (cast_expression "(byte *******)((int)pppppppbVar20 + param_1[1])" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppbVar20 + param_1[1])" (( "(") (binary_expression "(int)pppppppbVar20 + param_1[1]" (cast_expression "(int)pppppppbVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppbVar20")) (+ "+") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) () ")")))) (; ";")) (expression_statement "(*(code *)PTR_memmove_004bf3a4)();" (call_expression "(*(code *)PTR_memmove_004bf3a4)()" (parenthesized_expression "(*(code *)PTR_memmove_004bf3a4)" (( "(") (pointer_expression "*(code *)PTR_memmove_004bf3a4" (* "*") (cast_expression "(code *)PTR_memmove_004bf3a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memmove_004bf3a4"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar11 = param_1[7];" (assignment_expression "iVar11 = param_1[7]" (identifier "iVar11") (= "=") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "param_1[7] = iVar11 - (int)pppppppbVar20;" (assignment_expression "param_1[7] = iVar11 - (int)pppppppbVar20" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (= "=") (binary_expression "iVar11 - (int)pppppppbVar20" (identifier "iVar11") (- "-") (cast_expression "(int)pppppppbVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppbVar20")))) (; ";")) (expression_statement "param_1[8] = param_1[8] - (int)pppppppbVar20;" (assignment_expression "param_1[8] = param_1[8] - (int)pppppppbVar20" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (= "=") (binary_expression "param_1[8] - (int)pppppppbVar20" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (- "-") (cast_expression "(int)pppppppbVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppbVar20")))) (; ";")) (if_statement "if (iVar11 - (int)pppppppbVar20 < 1) goto LAB_00491360;" (if "if") (parenthesized_expression "(iVar11 - (int)pppppppbVar20 < 1)" (( "(") (binary_expression "iVar11 - (int)pppppppbVar20 < 1" (binary_expression "iVar11 - (int)pppppppbVar20" (identifier "iVar11") (- "-") (cast_expression "(int)pppppppbVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppbVar20"))) (< "<") (number_literal "1")) () ")")) (goto_statement "goto LAB_00491360;" (goto "goto") (statement_identifier "LAB_00491360") (; ";"))) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n        *(int *)(param_1[3] + iVar11 * 4) = *(int *)(param_1[3] + (int)param_3) - (int)pppppppbVar20\n        ;\n        iVar11 = iVar11 + 1;\n        param_3 = param_3 + 1;\n      } while (iVar11 < param_1[7]);" (do "do") (compound_statement "{\n        *(int *)(param_1[3] + iVar11 * 4) = *(int *)(param_1[3] + (int)param_3) - (int)pppppppbVar20\n        ;\n        iVar11 = iVar11 + 1;\n        param_3 = param_3 + 1;\n      }" ({ "{") (expression_statement "*(int *)(param_1[3] + iVar11 * 4) = *(int *)(param_1[3] + (int)param_3) - (int)pppppppbVar20\n        ;" (assignment_expression "*(int *)(param_1[3] + iVar11 * 4) = *(int *)(param_1[3] + (int)param_3) - (int)pppppppbVar20" (pointer_expression "*(int *)(param_1[3] + iVar11 * 4)" (* "*") (cast_expression "(int *)(param_1[3] + iVar11 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[3] + iVar11 * 4)" (( "(") (binary_expression "param_1[3] + iVar11 * 4" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (+ "+") (binary_expression "iVar11 * 4" (identifier "iVar11") (* "*") (number_literal "4"))) () ")")))) (= "=") (binary_expression "*(int *)(param_1[3] + (int)param_3) - (int)pppppppbVar20" (pointer_expression "*(int *)(param_1[3] + (int)param_3)" (* "*") (cast_expression "(int *)(param_1[3] + (int)param_3)" (( "(") (type_descriptor "int *" (primitive_type "int") (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"))) () ")")))) (- "-") (cast_expression "(int)pppppppbVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppbVar20")))) (; ";")) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" (identifier "iVar11") (= "=") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_3 = param_3 + 1;" (assignment_expression "param_3 = param_3 + 1" (identifier "param_3") (= "=") (binary_expression "param_3 + 1" (identifier "param_3") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar11 < param_1[7])" (( "(") (binary_expression "iVar11 < param_1[7]" (identifier "iVar11") (< "<") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]"))) () ")")) (; ";")) (expression_statement "cVar2 = *(char *)((int)param_1 + 0x4b);" (assignment_expression "cVar2 = *(char *)((int)param_1 + 0x4b)" (identifier "cVar2") (= "=") (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      unaff_s6 = (byte *******)param_1[7];\n      if (*(char *)(param_1 + 0x13) != '\0') {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n      }\n      param_1[7] = 0;\n      if (param_1[0x14] < 2) {\n        pppppppbVar18 =\n             (byte *******)(uint)*(byte *)((int)pppppppbVar20 + param_1[6] + *param_1 + -1);\n        param_1[8] = 0;\n        if (param_1[0x10] != 0) {\n          pppppppbVar18 = (byte *******)(uint)*(byte *)((int)pppppppbVar18 + param_1[0x10]);\n        }\n        iVar11 = 1;\n        if ((*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f) & 1) == 0) {\n          iVar11 = 2;\n          if (pppppppbVar18 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        param_1[0xf] = iVar11;\n        goto LAB_00491360;\n      }\n      if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0049179c:\n        iVar11 = param_1[6];\nLAB_004917a0:\n        pppppppbVar12 = (byte *******)(iVar11 + param_1[8]);\n        if ((int)pppppppbVar12 < (int)param_2) {\n          unaff_s8 = param_1 + 4;\n          unaff_s7 = (byte *******)&local_40;\n          do {\n            unaff_s5 = pppppppbVar12;\n            iVar24 = param_1[0xb];\n            local_3c = param_1[4];\n            local_38 = param_1[5];\n            pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1);\n            iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8);\n            unaff_s4 = local_40;\n            if (0xfffffffc < iVar11 - 1U) {\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }\n            pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11);\n          } while ((int)pppppppbVar12 < (int)param_2);\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n          if (unaff_s4 != (byte *******)0xffffffff) goto LAB_00491834;\n        }\n        else {\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n        }\n        pppppppbVar18 = (byte *******)((int)unaff_s6 + -1);\n        iVar11 = FUN_0048efec(param_1,pppppppbVar18,param_3);\n        param_1[0xf] = iVar11;\n      }\n      else {\n        pppppppbVar12 = (byte *******)*param_1;\n        unaff_s4 = (byte *******)((int)pppppppbVar12 + param_1[6]);\n        pppppppbVar18 = (byte *******)((int)unaff_s4 + ((int)pppppppbVar20 - param_1[0x14]));\n        if (pppppppbVar18 <= pppppppbVar12) {\n          pppppppbVar18 = pppppppbVar12;\n        }\n        pppppppbVar12 = (byte *******)((int)unaff_s4 + (int)((int)pppppppbVar20 + -1));\n        unaff_s5 = pppppppbVar20;\n        if (pppppppbVar12 < pppppppbVar18) goto LAB_0049179c;\n        bVar3 = *(byte *)pppppppbVar12;\n        unaff_s7 = pppppppbVar12;\n        while ((bVar3 & 0xc0) == 0x80) {\n          pppppppbVar19 = (byte *******)((int)unaff_s7 + -1);\n          unaff_s7 = pppppppbVar12;\n          if (pppppppbVar19 < pppppppbVar18) goto LAB_0049179c;\n          unaff_s7 = pppppppbVar19;\n          bVar3 = *(byte *)pppppppbVar19;\n        }\n        iVar11 = param_1[0x10];\n        pbVar16 = (byte *)((int)unaff_s4 + (param_1[0xc] - (int)unaff_s7));\n        pppppppbVar18 = unaff_s7;\n        if (iVar11 != 0) {\n          pbVar17 = (byte *)0x6;\n          if ((int)pbVar16 < 7) {\n            pbVar17 = pbVar16;\n          }\n          if ((int)(pbVar17 + -1) < 0) {\n            pppppppbVar18 = appppppbStack_34;\n          }\n          else {\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }\n        }\n        local_3c = 0;\n        local_38 = 0;\n        uVar29 = (*(code *)PTR_mbrtowc_004bf2ec)(&local_40);\n        uVar30 = (int)((int)unaff_s4 + (int)pppppppbVar20) - (int)unaff_s7;\n        if ((uVar29 < uVar30) || (0xfffffffd < uVar29)) goto LAB_0049179c;\n        *(undefined1 *)(param_1 + 4) = 0;\n        *(undefined1 *)((int)param_1 + 0x11) = 0;\n        *(undefined1 *)((int)param_1 + 0x12) = 0;\n        *(undefined1 *)((int)param_1 + 0x13) = 0;\n        *(undefined1 *)(param_1 + 5) = 0;\n        *(undefined1 *)((int)param_1 + 0x15) = 0;\n        *(undefined1 *)((int)param_1 + 0x16) = 0;\n        *(undefined1 *)((int)param_1 + 0x17) = 0;\n        param_1[7] = uVar29 - uVar30;\n        unaff_s4 = local_40;\n        if (local_40 == (byte *******)0xffffffff) {\n          iVar11 = param_1[6];\n          goto LAB_004917a0;\n        }\nLAB_00491834:\n        if (*(char *)((int)param_1 + 0x4e) == '\0') {\nLAB_00491840:\n          iVar11 = 2;\n          if (unaff_s4 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        else {\n          iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          iVar11 = 1;\n          if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }\n        param_1[0xf] = iVar11;\n      }\nLAB_00491854:\n      ppppppbVar22 = (byte ******)param_1[7];\n      if (ppppppbVar22 == (byte ******)0x0) {\nLAB_00491860:\n        iVar11 = param_1[7];\n      }\n      else {\n        iVar11 = 0;\n        if (0 < (int)ppppppbVar22) {\n          do {\n            *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n            iVar11 = iVar11 + 1;\n            ppppppbVar22 = (byte ******)param_1[7];\n          } while (iVar11 < (int)ppppppbVar22);\n        }\n        pppppppbVar18 = (byte *******)0xff;\n        if (*(char *)((int)param_1 + 0x4b) == '\0') goto LAB_00491860;\n        (*(code *)PTR_memset_004bf260)(param_1[1]);\n        iVar11 = param_1[7];\n      }\n      param_1[8] = iVar11;\nLAB_00491360:\n      cVar2 = *(char *)((int)param_1 + 0x4b);\n    }" (else "else") (compound_statement "{\n      unaff_s6 = (byte *******)param_1[7];\n      if (*(char *)(param_1 + 0x13) != '\0') {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n      }\n      param_1[7] = 0;\n      if (param_1[0x14] < 2) {\n        pppppppbVar18 =\n             (byte *******)(uint)*(byte *)((int)pppppppbVar20 + param_1[6] + *param_1 + -1);\n        param_1[8] = 0;\n        if (param_1[0x10] != 0) {\n          pppppppbVar18 = (byte *******)(uint)*(byte *)((int)pppppppbVar18 + param_1[0x10]);\n        }\n        iVar11 = 1;\n        if ((*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f) & 1) == 0) {\n          iVar11 = 2;\n          if (pppppppbVar18 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        param_1[0xf] = iVar11;\n        goto LAB_00491360;\n      }\n      if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0049179c:\n        iVar11 = param_1[6];\nLAB_004917a0:\n        pppppppbVar12 = (byte *******)(iVar11 + param_1[8]);\n        if ((int)pppppppbVar12 < (int)param_2) {\n          unaff_s8 = param_1 + 4;\n          unaff_s7 = (byte *******)&local_40;\n          do {\n            unaff_s5 = pppppppbVar12;\n            iVar24 = param_1[0xb];\n            local_3c = param_1[4];\n            local_38 = param_1[5];\n            pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1);\n            iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8);\n            unaff_s4 = local_40;\n            if (0xfffffffc < iVar11 - 1U) {\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }\n            pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11);\n          } while ((int)pppppppbVar12 < (int)param_2);\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n          if (unaff_s4 != (byte *******)0xffffffff) goto LAB_00491834;\n        }\n        else {\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n        }\n        pppppppbVar18 = (byte *******)((int)unaff_s6 + -1);\n        iVar11 = FUN_0048efec(param_1,pppppppbVar18,param_3);\n        param_1[0xf] = iVar11;\n      }\n      else {\n        pppppppbVar12 = (byte *******)*param_1;\n        unaff_s4 = (byte *******)((int)pppppppbVar12 + param_1[6]);\n        pppppppbVar18 = (byte *******)((int)unaff_s4 + ((int)pppppppbVar20 - param_1[0x14]));\n        if (pppppppbVar18 <= pppppppbVar12) {\n          pppppppbVar18 = pppppppbVar12;\n        }\n        pppppppbVar12 = (byte *******)((int)unaff_s4 + (int)((int)pppppppbVar20 + -1));\n        unaff_s5 = pppppppbVar20;\n        if (pppppppbVar12 < pppppppbVar18) goto LAB_0049179c;\n        bVar3 = *(byte *)pppppppbVar12;\n        unaff_s7 = pppppppbVar12;\n        while ((bVar3 & 0xc0) == 0x80) {\n          pppppppbVar19 = (byte *******)((int)unaff_s7 + -1);\n          unaff_s7 = pppppppbVar12;\n          if (pppppppbVar19 < pppppppbVar18) goto LAB_0049179c;\n          unaff_s7 = pppppppbVar19;\n          bVar3 = *(byte *)pppppppbVar19;\n        }\n        iVar11 = param_1[0x10];\n        pbVar16 = (byte *)((int)unaff_s4 + (param_1[0xc] - (int)unaff_s7));\n        pppppppbVar18 = unaff_s7;\n        if (iVar11 != 0) {\n          pbVar17 = (byte *)0x6;\n          if ((int)pbVar16 < 7) {\n            pbVar17 = pbVar16;\n          }\n          if ((int)(pbVar17 + -1) < 0) {\n            pppppppbVar18 = appppppbStack_34;\n          }\n          else {\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }\n        }\n        local_3c = 0;\n        local_38 = 0;\n        uVar29 = (*(code *)PTR_mbrtowc_004bf2ec)(&local_40);\n        uVar30 = (int)((int)unaff_s4 + (int)pppppppbVar20) - (int)unaff_s7;\n        if ((uVar29 < uVar30) || (0xfffffffd < uVar29)) goto LAB_0049179c;\n        *(undefined1 *)(param_1 + 4) = 0;\n        *(undefined1 *)((int)param_1 + 0x11) = 0;\n        *(undefined1 *)((int)param_1 + 0x12) = 0;\n        *(undefined1 *)((int)param_1 + 0x13) = 0;\n        *(undefined1 *)(param_1 + 5) = 0;\n        *(undefined1 *)((int)param_1 + 0x15) = 0;\n        *(undefined1 *)((int)param_1 + 0x16) = 0;\n        *(undefined1 *)((int)param_1 + 0x17) = 0;\n        param_1[7] = uVar29 - uVar30;\n        unaff_s4 = local_40;\n        if (local_40 == (byte *******)0xffffffff) {\n          iVar11 = param_1[6];\n          goto LAB_004917a0;\n        }\nLAB_00491834:\n        if (*(char *)((int)param_1 + 0x4e) == '\0') {\nLAB_00491840:\n          iVar11 = 2;\n          if (unaff_s4 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        else {\n          iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          iVar11 = 1;\n          if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }\n        param_1[0xf] = iVar11;\n      }\nLAB_00491854:\n      ppppppbVar22 = (byte ******)param_1[7];\n      if (ppppppbVar22 == (byte ******)0x0) {\nLAB_00491860:\n        iVar11 = param_1[7];\n      }\n      else {\n        iVar11 = 0;\n        if (0 < (int)ppppppbVar22) {\n          do {\n            *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n            iVar11 = iVar11 + 1;\n            ppppppbVar22 = (byte ******)param_1[7];\n          } while (iVar11 < (int)ppppppbVar22);\n        }\n        pppppppbVar18 = (byte *******)0xff;\n        if (*(char *)((int)param_1 + 0x4b) == '\0') goto LAB_00491860;\n        (*(code *)PTR_memset_004bf260)(param_1[1]);\n        iVar11 = param_1[7];\n      }\n      param_1[8] = iVar11;\nLAB_00491360:\n      cVar2 = *(char *)((int)param_1 + 0x4b);\n    }" ({ "{") (expression_statement "unaff_s6 = (byte *******)param_1[7];" (assignment_expression "unaff_s6 = (byte *******)param_1[7]" (identifier "unaff_s6") (= "=") (cast_expression "(byte *******)param_1[7]" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (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 (*(char *)(param_1 + 0x13) != '\0') {\n        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\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        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));\n        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));\n        *(undefined1 *)(param_1 + 0x13) = 0;\n      }" ({ "{") (expression_statement "param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));" (assignment_expression "param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2))" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (= "=") (cast_expression "(int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)pppppppbVar20 + (param_1[0xb] - (int)param_2))" (( "(") (binary_expression "(int)pppppppbVar20 + (param_1[0xb] - (int)param_2)" (cast_expression "(int)pppppppbVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppbVar20")) (+ "+") (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 "param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));" (assignment_expression "param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2))" (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]")) (= "=") (cast_expression "(int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)pppppppbVar20 + (param_1[0xd] - (int)param_2))" (( "(") (binary_expression "(int)pppppppbVar20 + (param_1[0xd] - (int)param_2)" (cast_expression "(int)pppppppbVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppbVar20")) (+ "+") (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"))) () ")"))) () ")")))) (; ";")) (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[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 (param_1[0x14] < 2) {\n        pppppppbVar18 =\n             (byte *******)(uint)*(byte *)((int)pppppppbVar20 + param_1[6] + *param_1 + -1);\n        param_1[8] = 0;\n        if (param_1[0x10] != 0) {\n          pppppppbVar18 = (byte *******)(uint)*(byte *)((int)pppppppbVar18 + param_1[0x10]);\n        }\n        iVar11 = 1;\n        if ((*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f) & 1) == 0) {\n          iVar11 = 2;\n          if (pppppppbVar18 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        param_1[0xf] = iVar11;\n        goto LAB_00491360;\n      }" (if "if") (parenthesized_expression "(param_1[0x14] < 2)" (( "(") (binary_expression "param_1[0x14] < 2" (subscript_expression "param_1[0x14]" (identifier "param_1") ([ "[") (number_literal "0x14") (] "]")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n        pppppppbVar18 =\n             (byte *******)(uint)*(byte *)((int)pppppppbVar20 + param_1[6] + *param_1 + -1);\n        param_1[8] = 0;\n        if (param_1[0x10] != 0) {\n          pppppppbVar18 = (byte *******)(uint)*(byte *)((int)pppppppbVar18 + param_1[0x10]);\n        }\n        iVar11 = 1;\n        if ((*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f) & 1) == 0) {\n          iVar11 = 2;\n          if (pppppppbVar18 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        param_1[0xf] = iVar11;\n        goto LAB_00491360;\n      }" ({ "{") (expression_statement "pppppppbVar18 =\n             (byte *******)(uint)*(byte *)((int)pppppppbVar20 + param_1[6] + *param_1 + -1);" (assignment_expression "pppppppbVar18 =\n             (byte *******)(uint)*(byte *)((int)pppppppbVar20 + param_1[6] + *param_1 + -1)" (identifier "pppppppbVar18") (= "=") (binary_expression "(byte *******)(uint)*(byte *)((int)pppppppbVar20 + param_1[6] + *param_1 + -1)" (cast_expression "(byte *******)(uint)" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (cast_expression "(byte *)((int)pppppppbVar20 + param_1[6] + *param_1 + -1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppppppbVar20 + param_1[6] + *param_1 + -1)" (( "(") (binary_expression "(int)pppppppbVar20 + param_1[6] + *param_1 + -1" (binary_expression "(int)pppppppbVar20 + param_1[6] + *param_1" (binary_expression "(int)pppppppbVar20 + param_1[6]" (cast_expression "(int)pppppppbVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppbVar20")) (+ "+") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]"))) (+ "+") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (+ "+") (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          pppppppbVar18 = (byte *******)(uint)*(byte *)((int)pppppppbVar18 + param_1[0x10]);\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          pppppppbVar18 = (byte *******)(uint)*(byte *)((int)pppppppbVar18 + param_1[0x10]);\n        }" ({ "{") (expression_statement "pppppppbVar18 = (byte *******)(uint)*(byte *)((int)pppppppbVar18 + param_1[0x10]);" (assignment_expression "pppppppbVar18 = (byte *******)(uint)*(byte *)((int)pppppppbVar18 + param_1[0x10])" (identifier "pppppppbVar18") (= "=") (binary_expression "(byte *******)(uint)*(byte *)((int)pppppppbVar18 + param_1[0x10])" (cast_expression "(byte *******)(uint)" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (cast_expression "(byte *)((int)pppppppbVar18 + param_1[0x10])" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppppppbVar18 + param_1[0x10])" (( "(") (binary_expression "(int)pppppppbVar18 + param_1[0x10]" (cast_expression "(int)pppppppbVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppbVar18")) (+ "+") (subscript_expression "param_1[0x10]" (identifier "param_1") ([ "[") (number_literal "0x10") (] "]"))) () ")"))))) (; ";")) (} "}"))) (expression_statement "iVar11 = 1;" (assignment_expression "iVar11 = 1" (identifier "iVar11") (= "=") (number_literal "1")) (; ";")) (if_statement "if ((*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f) & 1) == 0) {\n          iVar11 = 2;\n          if (pppppppbVar18 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }" (if "if") (parenthesized_expression "((*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f) & 1) == 0)" (( "(") (binary_expression "(*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f) & 1) == 0" (parenthesized_expression "(*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f) & 1)" (( "(") (binary_expression "*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f) & 1" (binary_expression "*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>\n             ((uint)pppppppbVar18 & 0x1f)" (pointer_expression "*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4)" (* "*") (cast_expression "(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4)" (( "(") (binary_expression "param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4" (subscript_expression "param_1[0x11]" (identifier "param_1") ([ "[") (number_literal "0x11") (] "]")) (+ "+") (binary_expression "((int)pppppppbVar18 >> 5) * 4" (parenthesized_expression "((int)pppppppbVar18 >> 5)" (( "(") (binary_expression "(int)pppppppbVar18 >> 5" (cast_expression "(int)pppppppbVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppbVar18")) (>> ">>") (number_literal "5")) () ")")) (* "*") (number_literal "4"))) () ")")))) (>> ">>") (parenthesized_expression "((uint)pppppppbVar18 & 0x1f)" (( "(") (binary_expression "(uint)pppppppbVar18 & 0x1f" (cast_expression "(uint)pppppppbVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppppbVar18")) (& "&") (number_literal "0x1f")) () ")"))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar11 = 2;\n          if (pppppppbVar18 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }" ({ "{") (expression_statement "iVar11 = 2;" (assignment_expression "iVar11 = 2" (identifier "iVar11") (= "=") (number_literal "2")) (; ";")) (if_statement "if (pppppppbVar18 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }" (if "if") (parenthesized_expression "(pppppppbVar18 == (byte *******)&DAT_0000000a)" (( "(") (binary_expression "pppppppbVar18 == (byte *******)&DAT_0000000a" (identifier "pppppppbVar18") (== "==") (cast_expression "(byte *******)&DAT_0000000a" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "&DAT_0000000a" (& "&") (identifier "DAT_0000000a")))) () ")")) (compound_statement "{\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }" ({ "{") (if_statement "if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 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              iVar11 = 0;\n            }" ({ "{") (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            iVar11 = 0;\n          }" (else "else") (compound_statement "{\n            iVar11 = 0;\n          }" ({ "{") (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}"))) (expression_statement "param_1[0xf] = iVar11;" (assignment_expression "param_1[0xf] = iVar11" (subscript_expression "param_1[0xf]" (identifier "param_1") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "iVar11")) (; ";")) (goto_statement "goto LAB_00491360;" (goto "goto") (statement_identifier "LAB_00491360") (; ";")) (} "}"))) (if_statement "if (*(char *)((int)param_1 + 0x49) == '\0') {\nLAB_0049179c:\n        iVar11 = param_1[6];\nLAB_004917a0:\n        pppppppbVar12 = (byte *******)(iVar11 + param_1[8]);\n        if ((int)pppppppbVar12 < (int)param_2) {\n          unaff_s8 = param_1 + 4;\n          unaff_s7 = (byte *******)&local_40;\n          do {\n            unaff_s5 = pppppppbVar12;\n            iVar24 = param_1[0xb];\n            local_3c = param_1[4];\n            local_38 = param_1[5];\n            pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1);\n            iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8);\n            unaff_s4 = local_40;\n            if (0xfffffffc < iVar11 - 1U) {\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }\n            pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11);\n          } while ((int)pppppppbVar12 < (int)param_2);\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n          if (unaff_s4 != (byte *******)0xffffffff) goto LAB_00491834;\n        }\n        else {\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n        }\n        pppppppbVar18 = (byte *******)((int)unaff_s6 + -1);\n        iVar11 = FUN_0048efec(param_1,pppppppbVar18,param_3);\n        param_1[0xf] = iVar11;\n      }\n      else {\n        pppppppbVar12 = (byte *******)*param_1;\n        unaff_s4 = (byte *******)((int)pppppppbVar12 + param_1[6]);\n        pppppppbVar18 = (byte *******)((int)unaff_s4 + ((int)pppppppbVar20 - param_1[0x14]));\n        if (pppppppbVar18 <= pppppppbVar12) {\n          pppppppbVar18 = pppppppbVar12;\n        }\n        pppppppbVar12 = (byte *******)((int)unaff_s4 + (int)((int)pppppppbVar20 + -1));\n        unaff_s5 = pppppppbVar20;\n        if (pppppppbVar12 < pppppppbVar18) goto LAB_0049179c;\n        bVar3 = *(byte *)pppppppbVar12;\n        unaff_s7 = pppppppbVar12;\n        while ((bVar3 & 0xc0) == 0x80) {\n          pppppppbVar19 = (byte *******)((int)unaff_s7 + -1);\n          unaff_s7 = pppppppbVar12;\n          if (pppppppbVar19 < pppppppbVar18) goto LAB_0049179c;\n          unaff_s7 = pppppppbVar19;\n          bVar3 = *(byte *)pppppppbVar19;\n        }\n        iVar11 = param_1[0x10];\n        pbVar16 = (byte *)((int)unaff_s4 + (param_1[0xc] - (int)unaff_s7));\n        pppppppbVar18 = unaff_s7;\n        if (iVar11 != 0) {\n          pbVar17 = (byte *)0x6;\n          if ((int)pbVar16 < 7) {\n            pbVar17 = pbVar16;\n          }\n          if ((int)(pbVar17 + -1) < 0) {\n            pppppppbVar18 = appppppbStack_34;\n          }\n          else {\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }\n        }\n        local_3c = 0;\n        local_38 = 0;\n        uVar29 = (*(code *)PTR_mbrtowc_004bf2ec)(&local_40);\n        uVar30 = (int)((int)unaff_s4 + (int)pppppppbVar20) - (int)unaff_s7;\n        if ((uVar29 < uVar30) || (0xfffffffd < uVar29)) goto LAB_0049179c;\n        *(undefined1 *)(param_1 + 4) = 0;\n        *(undefined1 *)((int)param_1 + 0x11) = 0;\n        *(undefined1 *)((int)param_1 + 0x12) = 0;\n        *(undefined1 *)((int)param_1 + 0x13) = 0;\n        *(undefined1 *)(param_1 + 5) = 0;\n        *(undefined1 *)((int)param_1 + 0x15) = 0;\n        *(undefined1 *)((int)param_1 + 0x16) = 0;\n        *(undefined1 *)((int)param_1 + 0x17) = 0;\n        param_1[7] = uVar29 - uVar30;\n        unaff_s4 = local_40;\n        if (local_40 == (byte *******)0xffffffff) {\n          iVar11 = param_1[6];\n          goto LAB_004917a0;\n        }\nLAB_00491834:\n        if (*(char *)((int)param_1 + 0x4e) == '\0') {\nLAB_00491840:\n          iVar11 = 2;\n          if (unaff_s4 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        else {\n          iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          iVar11 = 1;\n          if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }\n        param_1[0xf] = iVar11;\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_0049179c:\n        iVar11 = param_1[6];\nLAB_004917a0:\n        pppppppbVar12 = (byte *******)(iVar11 + param_1[8]);\n        if ((int)pppppppbVar12 < (int)param_2) {\n          unaff_s8 = param_1 + 4;\n          unaff_s7 = (byte *******)&local_40;\n          do {\n            unaff_s5 = pppppppbVar12;\n            iVar24 = param_1[0xb];\n            local_3c = param_1[4];\n            local_38 = param_1[5];\n            pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1);\n            iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8);\n            unaff_s4 = local_40;\n            if (0xfffffffc < iVar11 - 1U) {\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }\n            pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11);\n          } while ((int)pppppppbVar12 < (int)param_2);\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n          if (unaff_s4 != (byte *******)0xffffffff) goto LAB_00491834;\n        }\n        else {\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n        }\n        pppppppbVar18 = (byte *******)((int)unaff_s6 + -1);\n        iVar11 = FUN_0048efec(param_1,pppppppbVar18,param_3);\n        param_1[0xf] = iVar11;\n      }" ({ "{") (labeled_statement "LAB_0049179c:\n        iVar11 = param_1[6];" (statement_identifier "LAB_0049179c") (: ":") (expression_statement "iVar11 = param_1[6];" (assignment_expression "iVar11 = param_1[6]" (identifier "iVar11") (= "=") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]"))) (; ";"))) (labeled_statement "LAB_004917a0:\n        pppppppbVar12 = (byte *******)(iVar11 + param_1[8]);" (statement_identifier "LAB_004917a0") (: ":") (expression_statement "pppppppbVar12 = (byte *******)(iVar11 + param_1[8]);" (assignment_expression "pppppppbVar12 = (byte *******)(iVar11 + param_1[8])" (identifier "pppppppbVar12") (= "=") (cast_expression "(byte *******)(iVar11 + param_1[8])" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(iVar11 + param_1[8])" (( "(") (binary_expression "iVar11 + param_1[8]" (identifier "iVar11") (+ "+") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]"))) () ")")))) (; ";"))) (if_statement "if ((int)pppppppbVar12 < (int)param_2) {\n          unaff_s8 = param_1 + 4;\n          unaff_s7 = (byte *******)&local_40;\n          do {\n            unaff_s5 = pppppppbVar12;\n            iVar24 = param_1[0xb];\n            local_3c = param_1[4];\n            local_38 = param_1[5];\n            pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1);\n            iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8);\n            unaff_s4 = local_40;\n            if (0xfffffffc < iVar11 - 1U) {\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }\n            pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11);\n          } while ((int)pppppppbVar12 < (int)param_2);\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n          if (unaff_s4 != (byte *******)0xffffffff) goto LAB_00491834;\n        }\n        else {\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n        }" (if "if") (parenthesized_expression "((int)pppppppbVar12 < (int)param_2)" (( "(") (binary_expression "(int)pppppppbVar12 < (int)param_2" (cast_expression "(int)pppppppbVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppbVar12")) (< "<") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2"))) () ")")) (compound_statement "{\n          unaff_s8 = param_1 + 4;\n          unaff_s7 = (byte *******)&local_40;\n          do {\n            unaff_s5 = pppppppbVar12;\n            iVar24 = param_1[0xb];\n            local_3c = param_1[4];\n            local_38 = param_1[5];\n            pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1);\n            iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8);\n            unaff_s4 = local_40;\n            if (0xfffffffc < iVar11 - 1U) {\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }\n            pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11);\n          } while ((int)pppppppbVar12 < (int)param_2);\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n          if (unaff_s4 != (byte *******)0xffffffff) goto LAB_00491834;\n        }" ({ "{") (expression_statement "unaff_s8 = param_1 + 4;" (assignment_expression "unaff_s8 = param_1 + 4" (identifier "unaff_s8") (= "=") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "unaff_s7 = (byte *******)&local_40;" (assignment_expression "unaff_s7 = (byte *******)&local_40" (identifier "unaff_s7") (= "=") (cast_expression "(byte *******)&local_40" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (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            unaff_s5 = pppppppbVar12;\n            iVar24 = param_1[0xb];\n            local_3c = param_1[4];\n            local_38 = param_1[5];\n            pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1);\n            iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8);\n            unaff_s4 = local_40;\n            if (0xfffffffc < iVar11 - 1U) {\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }\n            pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11);\n          } while ((int)pppppppbVar12 < (int)param_2);" (do "do") (compound_statement "{\n            unaff_s5 = pppppppbVar12;\n            iVar24 = param_1[0xb];\n            local_3c = param_1[4];\n            local_38 = param_1[5];\n            pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1);\n            iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8);\n            unaff_s4 = local_40;\n            if (0xfffffffc < iVar11 - 1U) {\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }\n            pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11);\n          }" ({ "{") (expression_statement "unaff_s5 = pppppppbVar12;" (assignment_expression "unaff_s5 = pppppppbVar12" (identifier "unaff_s5") (= "=") (identifier "pppppppbVar12")) (; ";")) (expression_statement "iVar24 = param_1[0xb];" (assignment_expression "iVar24 = param_1[0xb]" (identifier "iVar24") (= "=") (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (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 "pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1);" (assignment_expression "pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1)" (identifier "pppppppbVar18") (= "=") (cast_expression "(byte *******)((int)unaff_s5 + *param_1)" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (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_s5 + *param_1)" (( "(") (binary_expression "(int)unaff_s5 + *param_1" (cast_expression "(int)unaff_s5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s5")) (+ "+") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) () ")")))) (; ";")) (expression_statement "iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8);" (assignment_expression "iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8)" (identifier "iVar11") (= "=") (call_expression "(*(code *)PTR_mbrtowc_004bf2ec)\n                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8)" (parenthesized_expression "(*(code *)PTR_mbrtowc_004bf2ec)" (( "(") (pointer_expression "*(code *)PTR_mbrtowc_004bf2ec" (* "*") (cast_expression "(code *)PTR_mbrtowc_004bf2ec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbrtowc_004bf2ec"))) () ")")) (argument_list "(unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8)" (( "(") (identifier "unaff_s7") (, ",") (identifier "pppppppbVar18") (, ",") (binary_expression "iVar24 - (int)unaff_s5" (identifier "iVar24") (- "-") (cast_expression "(int)unaff_s5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s5"))) (, ",") (identifier "unaff_s8") () ")")))) (; ";")) (expression_statement "unaff_s4 = local_40;" (assignment_expression "unaff_s4 = local_40" (identifier "unaff_s4") (= "=") (identifier "local_40")) (; ";")) (if_statement "if (0xfffffffc < iVar11 - 1U) {\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }" (if "if") (parenthesized_expression "(0xfffffffc < iVar11 - 1U)" (( "(") (binary_expression "0xfffffffc < iVar11 - 1U" (number_literal "0xfffffffc") (< "<") (binary_expression "iVar11 - 1U" (identifier "iVar11") (- "-") (number_literal "1U"))) () ")")) (compound_statement "{\n              if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }\n              param_1[4] = local_3c;\n              param_1[5] = local_38;\n              iVar11 = 1;\n            }" ({ "{") (if_statement "if (iVar11 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                unaff_s4 = (byte *******)0x0;\n              }" ({ "{") (expression_statement "unaff_s4 = (byte *******)0x0;" (assignment_expression "unaff_s4 = (byte *******)0x0" (identifier "unaff_s4") (= "=") (cast_expression "(byte *******)0x0" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (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 if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }" (else "else") (if_statement "if (iVar24 - (int)unaff_s5 == 0) {\n                unaff_s4 = (byte *******)0x0;\n              }\n              else {\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }" (if "if") (parenthesized_expression "(iVar24 - (int)unaff_s5 == 0)" (( "(") (binary_expression "iVar24 - (int)unaff_s5 == 0" (binary_expression "iVar24 - (int)unaff_s5" (identifier "iVar24") (- "-") (cast_expression "(int)unaff_s5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s5"))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                unaff_s4 = (byte *******)0x0;\n              }" ({ "{") (expression_statement "unaff_s4 = (byte *******)0x0;" (assignment_expression "unaff_s4 = (byte *******)0x0" (identifier "unaff_s4") (= "=") (cast_expression "(byte *******)0x0" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (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_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }" (else "else") (compound_statement "{\n                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);\n              }" ({ "{") (expression_statement "unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);" (assignment_expression "unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1)" (identifier "unaff_s4") (= "=") (binary_expression "(byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1)" (cast_expression "(byte *******)(uint)" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (cast_expression "(byte *)((int)unaff_s5 + *param_1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s5 + *param_1)" (( "(") (binary_expression "(int)unaff_s5 + *param_1" (cast_expression "(int)unaff_s5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s5")) (+ "+") (pointer_expression "*param_1" (* "*") (identifier "param_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 "iVar11 = 1;" (assignment_expression "iVar11 = 1" (identifier "iVar11") (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11);" (assignment_expression "pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11)" (identifier "pppppppbVar12") (= "=") (cast_expression "(byte *******)((int)unaff_s5 + iVar11)" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (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_s5 + iVar11)" (( "(") (binary_expression "(int)unaff_s5 + iVar11" (cast_expression "(int)unaff_s5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s5")) (+ "+") (identifier "iVar11")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)pppppppbVar12 < (int)param_2)" (( "(") (binary_expression "(int)pppppppbVar12 < (int)param_2" (cast_expression "(int)pppppppbVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppbVar12")) (< "<") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2"))) () ")")) (; ";")) (expression_statement "param_1[7] = (int)pppppppbVar12 - (int)param_2;" (assignment_expression "param_1[7] = (int)pppppppbVar12 - (int)param_2" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (= "=") (binary_expression "(int)pppppppbVar12 - (int)param_2" (cast_expression "(int)pppppppbVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppbVar12")) (- "-") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")))) (; ";")) (if_statement "if (unaff_s4 != (byte *******)0xffffffff) goto LAB_00491834;" (if "if") (parenthesized_expression "(unaff_s4 != (byte *******)0xffffffff)" (( "(") (binary_expression "unaff_s4 != (byte *******)0xffffffff" (identifier "unaff_s4") (!= "!=") (cast_expression "(byte *******)0xffffffff" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (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_00491834;" (goto "goto") (statement_identifier "LAB_00491834") (; ";"))) (} "}")) (else_clause "else {\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n        }" (else "else") (compound_statement "{\n          param_1[7] = (int)pppppppbVar12 - (int)param_2;\n        }" ({ "{") (expression_statement "param_1[7] = (int)pppppppbVar12 - (int)param_2;" (assignment_expression "param_1[7] = (int)pppppppbVar12 - (int)param_2" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (= "=") (binary_expression "(int)pppppppbVar12 - (int)param_2" (cast_expression "(int)pppppppbVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppbVar12")) (- "-") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")))) (; ";")) (} "}")))) (expression_statement "pppppppbVar18 = (byte *******)((int)unaff_s6 + -1);" (assignment_expression "pppppppbVar18 = (byte *******)((int)unaff_s6 + -1)" (identifier "pppppppbVar18") (= "=") (cast_expression "(byte *******)((int)unaff_s6 + -1)" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (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_s6 + -1)" (( "(") (binary_expression "(int)unaff_s6 + -1" (cast_expression "(int)unaff_s6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s6")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "iVar11 = FUN_0048efec(param_1,pppppppbVar18,param_3);" (assignment_expression "iVar11 = FUN_0048efec(param_1,pppppppbVar18,param_3)" (identifier "iVar11") (= "=") (call_expression "FUN_0048efec(param_1,pppppppbVar18,param_3)" (identifier "FUN_0048efec") (argument_list "(param_1,pppppppbVar18,param_3)" (( "(") (identifier "param_1") (, ",") (identifier "pppppppbVar18") (, ",") (identifier "param_3") () ")")))) (; ";")) (expression_statement "param_1[0xf] = iVar11;" (assignment_expression "param_1[0xf] = iVar11" (subscript_expression "param_1[0xf]" (identifier "param_1") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "iVar11")) (; ";")) (} "}")) (else_clause "else {\n        pppppppbVar12 = (byte *******)*param_1;\n        unaff_s4 = (byte *******)((int)pppppppbVar12 + param_1[6]);\n        pppppppbVar18 = (byte *******)((int)unaff_s4 + ((int)pppppppbVar20 - param_1[0x14]));\n        if (pppppppbVar18 <= pppppppbVar12) {\n          pppppppbVar18 = pppppppbVar12;\n        }\n        pppppppbVar12 = (byte *******)((int)unaff_s4 + (int)((int)pppppppbVar20 + -1));\n        unaff_s5 = pppppppbVar20;\n        if (pppppppbVar12 < pppppppbVar18) goto LAB_0049179c;\n        bVar3 = *(byte *)pppppppbVar12;\n        unaff_s7 = pppppppbVar12;\n        while ((bVar3 & 0xc0) == 0x80) {\n          pppppppbVar19 = (byte *******)((int)unaff_s7 + -1);\n          unaff_s7 = pppppppbVar12;\n          if (pppppppbVar19 < pppppppbVar18) goto LAB_0049179c;\n          unaff_s7 = pppppppbVar19;\n          bVar3 = *(byte *)pppppppbVar19;\n        }\n        iVar11 = param_1[0x10];\n        pbVar16 = (byte *)((int)unaff_s4 + (param_1[0xc] - (int)unaff_s7));\n        pppppppbVar18 = unaff_s7;\n        if (iVar11 != 0) {\n          pbVar17 = (byte *)0x6;\n          if ((int)pbVar16 < 7) {\n            pbVar17 = pbVar16;\n          }\n          if ((int)(pbVar17 + -1) < 0) {\n            pppppppbVar18 = appppppbStack_34;\n          }\n          else {\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }\n        }\n        local_3c = 0;\n        local_38 = 0;\n        uVar29 = (*(code *)PTR_mbrtowc_004bf2ec)(&local_40);\n        uVar30 = (int)((int)unaff_s4 + (int)pppppppbVar20) - (int)unaff_s7;\n        if ((uVar29 < uVar30) || (0xfffffffd < uVar29)) goto LAB_0049179c;\n        *(undefined1 *)(param_1 + 4) = 0;\n        *(undefined1 *)((int)param_1 + 0x11) = 0;\n        *(undefined1 *)((int)param_1 + 0x12) = 0;\n        *(undefined1 *)((int)param_1 + 0x13) = 0;\n        *(undefined1 *)(param_1 + 5) = 0;\n        *(undefined1 *)((int)param_1 + 0x15) = 0;\n        *(undefined1 *)((int)param_1 + 0x16) = 0;\n        *(undefined1 *)((int)param_1 + 0x17) = 0;\n        param_1[7] = uVar29 - uVar30;\n        unaff_s4 = local_40;\n        if (local_40 == (byte *******)0xffffffff) {\n          iVar11 = param_1[6];\n          goto LAB_004917a0;\n        }\nLAB_00491834:\n        if (*(char *)((int)param_1 + 0x4e) == '\0') {\nLAB_00491840:\n          iVar11 = 2;\n          if (unaff_s4 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        else {\n          iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          iVar11 = 1;\n          if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }\n        param_1[0xf] = iVar11;\n      }" (else "else") (compound_statement "{\n        pppppppbVar12 = (byte *******)*param_1;\n        unaff_s4 = (byte *******)((int)pppppppbVar12 + param_1[6]);\n        pppppppbVar18 = (byte *******)((int)unaff_s4 + ((int)pppppppbVar20 - param_1[0x14]));\n        if (pppppppbVar18 <= pppppppbVar12) {\n          pppppppbVar18 = pppppppbVar12;\n        }\n        pppppppbVar12 = (byte *******)((int)unaff_s4 + (int)((int)pppppppbVar20 + -1));\n        unaff_s5 = pppppppbVar20;\n        if (pppppppbVar12 < pppppppbVar18) goto LAB_0049179c;\n        bVar3 = *(byte *)pppppppbVar12;\n        unaff_s7 = pppppppbVar12;\n        while ((bVar3 & 0xc0) == 0x80) {\n          pppppppbVar19 = (byte *******)((int)unaff_s7 + -1);\n          unaff_s7 = pppppppbVar12;\n          if (pppppppbVar19 < pppppppbVar18) goto LAB_0049179c;\n          unaff_s7 = pppppppbVar19;\n          bVar3 = *(byte *)pppppppbVar19;\n        }\n        iVar11 = param_1[0x10];\n        pbVar16 = (byte *)((int)unaff_s4 + (param_1[0xc] - (int)unaff_s7));\n        pppppppbVar18 = unaff_s7;\n        if (iVar11 != 0) {\n          pbVar17 = (byte *)0x6;\n          if ((int)pbVar16 < 7) {\n            pbVar17 = pbVar16;\n          }\n          if ((int)(pbVar17 + -1) < 0) {\n            pppppppbVar18 = appppppbStack_34;\n          }\n          else {\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }\n        }\n        local_3c = 0;\n        local_38 = 0;\n        uVar29 = (*(code *)PTR_mbrtowc_004bf2ec)(&local_40);\n        uVar30 = (int)((int)unaff_s4 + (int)pppppppbVar20) - (int)unaff_s7;\n        if ((uVar29 < uVar30) || (0xfffffffd < uVar29)) goto LAB_0049179c;\n        *(undefined1 *)(param_1 + 4) = 0;\n        *(undefined1 *)((int)param_1 + 0x11) = 0;\n        *(undefined1 *)((int)param_1 + 0x12) = 0;\n        *(undefined1 *)((int)param_1 + 0x13) = 0;\n        *(undefined1 *)(param_1 + 5) = 0;\n        *(undefined1 *)((int)param_1 + 0x15) = 0;\n        *(undefined1 *)((int)param_1 + 0x16) = 0;\n        *(undefined1 *)((int)param_1 + 0x17) = 0;\n        param_1[7] = uVar29 - uVar30;\n        unaff_s4 = local_40;\n        if (local_40 == (byte *******)0xffffffff) {\n          iVar11 = param_1[6];\n          goto LAB_004917a0;\n        }\nLAB_00491834:\n        if (*(char *)((int)param_1 + 0x4e) == '\0') {\nLAB_00491840:\n          iVar11 = 2;\n          if (unaff_s4 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        else {\n          iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          iVar11 = 1;\n          if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }\n        param_1[0xf] = iVar11;\n      }" ({ "{") (expression_statement "pppppppbVar12 = (byte *******)*param_1;" (assignment_expression "pppppppbVar12 = (byte *******)*param_1" (identifier "pppppppbVar12") (= "=") (cast_expression "(byte *******)*param_1" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (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_s4 = (byte *******)((int)pppppppbVar12 + param_1[6]);" (assignment_expression "unaff_s4 = (byte *******)((int)pppppppbVar12 + param_1[6])" (identifier "unaff_s4") (= "=") (cast_expression "(byte *******)((int)pppppppbVar12 + param_1[6])" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppbVar12 + param_1[6])" (( "(") (binary_expression "(int)pppppppbVar12 + param_1[6]" (cast_expression "(int)pppppppbVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppbVar12")) (+ "+") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]"))) () ")")))) (; ";")) (expression_statement "pppppppbVar18 = (byte *******)((int)unaff_s4 + ((int)pppppppbVar20 - param_1[0x14]));" (assignment_expression "pppppppbVar18 = (byte *******)((int)unaff_s4 + ((int)pppppppbVar20 - param_1[0x14]))" (identifier "pppppppbVar18") (= "=") (cast_expression "(byte *******)((int)unaff_s4 + ((int)pppppppbVar20 - param_1[0x14]))" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (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_s4 + ((int)pppppppbVar20 - param_1[0x14]))" (( "(") (binary_expression "(int)unaff_s4 + ((int)pppppppbVar20 - param_1[0x14])" (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4")) (+ "+") (parenthesized_expression "((int)pppppppbVar20 - param_1[0x14])" (( "(") (binary_expression "(int)pppppppbVar20 - param_1[0x14]" (cast_expression "(int)pppppppbVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppbVar20")) (- "-") (subscript_expression "param_1[0x14]" (identifier "param_1") ([ "[") (number_literal "0x14") (] "]"))) () ")"))) () ")")))) (; ";")) (if_statement "if (pppppppbVar18 <= pppppppbVar12) {\n          pppppppbVar18 = pppppppbVar12;\n        }" (if "if") (parenthesized_expression "(pppppppbVar18 <= pppppppbVar12)" (( "(") (binary_expression "pppppppbVar18 <= pppppppbVar12" (identifier "pppppppbVar18") (<= "<=") (identifier "pppppppbVar12")) () ")")) (compound_statement "{\n          pppppppbVar18 = pppppppbVar12;\n        }" ({ "{") (expression_statement "pppppppbVar18 = pppppppbVar12;" (assignment_expression "pppppppbVar18 = pppppppbVar12" (identifier "pppppppbVar18") (= "=") (identifier "pppppppbVar12")) (; ";")) (} "}"))) (expression_statement "pppppppbVar12 = (byte *******)((int)unaff_s4 + (int)((int)pppppppbVar20 + -1));" (assignment_expression "pppppppbVar12 = (byte *******)((int)unaff_s4 + (int)((int)pppppppbVar20 + -1))" (identifier "pppppppbVar12") (= "=") (cast_expression "(byte *******)((int)unaff_s4 + (int)((int)pppppppbVar20 + -1))" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (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_s4 + (int)((int)pppppppbVar20 + -1))" (( "(") (binary_expression "(int)unaff_s4 + (int)((int)pppppppbVar20 + -1)" (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4")) (+ "+") (cast_expression "(int)((int)pppppppbVar20 + -1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)pppppppbVar20 + -1)" (( "(") (binary_expression "(int)pppppppbVar20 + -1" (cast_expression "(int)pppppppbVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppbVar20")) (+ "+") (number_literal "-1")) () ")")))) () ")")))) (; ";")) (expression_statement "unaff_s5 = pppppppbVar20;" (assignment_expression "unaff_s5 = pppppppbVar20" (identifier "unaff_s5") (= "=") (identifier "pppppppbVar20")) (; ";")) (if_statement "if (pppppppbVar12 < pppppppbVar18) goto LAB_0049179c;" (if "if") (parenthesized_expression "(pppppppbVar12 < pppppppbVar18)" (( "(") (binary_expression "pppppppbVar12 < pppppppbVar18" (identifier "pppppppbVar12") (< "<") (identifier "pppppppbVar18")) () ")")) (goto_statement "goto LAB_0049179c;" (goto "goto") (statement_identifier "LAB_0049179c") (; ";"))) (expression_statement "bVar3 = *(byte *)pppppppbVar12;" (assignment_expression "bVar3 = *(byte *)pppppppbVar12" (identifier "bVar3") (= "=") (pointer_expression "*(byte *)pppppppbVar12" (* "*") (cast_expression "(byte *)pppppppbVar12" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppppppbVar12")))) (; ";")) (expression_statement "unaff_s7 = pppppppbVar12;" (assignment_expression "unaff_s7 = pppppppbVar12" (identifier "unaff_s7") (= "=") (identifier "pppppppbVar12")) (; ";")) (while_statement "while ((bVar3 & 0xc0) == 0x80) {\n          pppppppbVar19 = (byte *******)((int)unaff_s7 + -1);\n          unaff_s7 = pppppppbVar12;\n          if (pppppppbVar19 < pppppppbVar18) goto LAB_0049179c;\n          unaff_s7 = pppppppbVar19;\n          bVar3 = *(byte *)pppppppbVar19;\n        }" (while "while") (parenthesized_expression "((bVar3 & 0xc0) == 0x80)" (( "(") (binary_expression "(bVar3 & 0xc0) == 0x80" (parenthesized_expression "(bVar3 & 0xc0)" (( "(") (binary_expression "bVar3 & 0xc0" (identifier "bVar3") (& "&") (number_literal "0xc0")) () ")")) (== "==") (number_literal "0x80")) () ")")) (compound_statement "{\n          pppppppbVar19 = (byte *******)((int)unaff_s7 + -1);\n          unaff_s7 = pppppppbVar12;\n          if (pppppppbVar19 < pppppppbVar18) goto LAB_0049179c;\n          unaff_s7 = pppppppbVar19;\n          bVar3 = *(byte *)pppppppbVar19;\n        }" ({ "{") (expression_statement "pppppppbVar19 = (byte *******)((int)unaff_s7 + -1);" (assignment_expression "pppppppbVar19 = (byte *******)((int)unaff_s7 + -1)" (identifier "pppppppbVar19") (= "=") (cast_expression "(byte *******)((int)unaff_s7 + -1)" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (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 + -1)" (( "(") (binary_expression "(int)unaff_s7 + -1" (cast_expression "(int)unaff_s7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s7")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "unaff_s7 = pppppppbVar12;" (assignment_expression "unaff_s7 = pppppppbVar12" (identifier "unaff_s7") (= "=") (identifier "pppppppbVar12")) (; ";")) (if_statement "if (pppppppbVar19 < pppppppbVar18) goto LAB_0049179c;" (if "if") (parenthesized_expression "(pppppppbVar19 < pppppppbVar18)" (( "(") (binary_expression "pppppppbVar19 < pppppppbVar18" (identifier "pppppppbVar19") (< "<") (identifier "pppppppbVar18")) () ")")) (goto_statement "goto LAB_0049179c;" (goto "goto") (statement_identifier "LAB_0049179c") (; ";"))) (expression_statement "unaff_s7 = pppppppbVar19;" (assignment_expression "unaff_s7 = pppppppbVar19" (identifier "unaff_s7") (= "=") (identifier "pppppppbVar19")) (; ";")) (expression_statement "bVar3 = *(byte *)pppppppbVar19;" (assignment_expression "bVar3 = *(byte *)pppppppbVar19" (identifier "bVar3") (= "=") (pointer_expression "*(byte *)pppppppbVar19" (* "*") (cast_expression "(byte *)pppppppbVar19" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppppppbVar19")))) (; ";")) (} "}"))) (expression_statement "iVar11 = param_1[0x10];" (assignment_expression "iVar11 = param_1[0x10]" (identifier "iVar11") (= "=") (subscript_expression "param_1[0x10]" (identifier "param_1") ([ "[") (number_literal "0x10") (] "]"))) (; ";")) (expression_statement "pbVar16 = (byte *)((int)unaff_s4 + (param_1[0xc] - (int)unaff_s7));" (assignment_expression "pbVar16 = (byte *)((int)unaff_s4 + (param_1[0xc] - (int)unaff_s7))" (identifier "pbVar16") (= "=") (cast_expression "(byte *)((int)unaff_s4 + (param_1[0xc] - (int)unaff_s7))" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s4 + (param_1[0xc] - (int)unaff_s7))" (( "(") (binary_expression "(int)unaff_s4 + (param_1[0xc] - (int)unaff_s7)" (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4")) (+ "+") (parenthesized_expression "(param_1[0xc] - (int)unaff_s7)" (( "(") (binary_expression "param_1[0xc] - (int)unaff_s7" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (- "-") (cast_expression "(int)unaff_s7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s7"))) () ")"))) () ")")))) (; ";")) (expression_statement "pppppppbVar18 = unaff_s7;" (assignment_expression "pppppppbVar18 = unaff_s7" (identifier "pppppppbVar18") (= "=") (identifier "unaff_s7")) (; ";")) (if_statement "if (iVar11 != 0) {\n          pbVar17 = (byte *)0x6;\n          if ((int)pbVar16 < 7) {\n            pbVar17 = pbVar16;\n          }\n          if ((int)(pbVar17 + -1) < 0) {\n            pppppppbVar18 = appppppbStack_34;\n          }\n          else {\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }\n        }" (if "if") (parenthesized_expression "(iVar11 != 0)" (( "(") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          pbVar17 = (byte *)0x6;\n          if ((int)pbVar16 < 7) {\n            pbVar17 = pbVar16;\n          }\n          if ((int)(pbVar17 + -1) < 0) {\n            pppppppbVar18 = appppppbStack_34;\n          }\n          else {\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }\n        }" ({ "{") (expression_statement "pbVar17 = (byte *)0x6;" (assignment_expression "pbVar17 = (byte *)0x6" (identifier "pbVar17") (= "=") (cast_expression "(byte *)0x6" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x6"))) (; ";")) (if_statement "if ((int)pbVar16 < 7) {\n            pbVar17 = pbVar16;\n          }" (if "if") (parenthesized_expression "((int)pbVar16 < 7)" (( "(") (binary_expression "(int)pbVar16 < 7" (cast_expression "(int)pbVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar16")) (< "<") (number_literal "7")) () ")")) (compound_statement "{\n            pbVar17 = pbVar16;\n          }" ({ "{") (expression_statement "pbVar17 = pbVar16;" (assignment_expression "pbVar17 = pbVar16" (identifier "pbVar17") (= "=") (identifier "pbVar16")) (; ";")) (} "}"))) (if_statement "if ((int)(pbVar17 + -1) < 0) {\n            pppppppbVar18 = appppppbStack_34;\n          }\n          else {\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }" (if "if") (parenthesized_expression "((int)(pbVar17 + -1) < 0)" (( "(") (binary_expression "(int)(pbVar17 + -1) < 0" (cast_expression "(int)(pbVar17 + -1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pbVar17 + -1)" (( "(") (binary_expression "pbVar17 + -1" (identifier "pbVar17") (+ "+") (number_literal "-1")) () ")"))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            pppppppbVar18 = appppppbStack_34;\n          }" ({ "{") (expression_statement "pppppppbVar18 = appppppbStack_34;" (assignment_expression "pppppppbVar18 = appppppbStack_34" (identifier "pppppppbVar18") (= "=") (identifier "appppppbStack_34")) (; ";")) (} "}")) (else_clause "else {\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }" (else "else") (compound_statement "{\n            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));\n            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);\n            do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);\n            pppppppbVar18 = appppppbStack_34;\n          }" ({ "{") (expression_statement "pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));" (assignment_expression "pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1))" (identifier "pbVar16") (= "=") (cast_expression "(byte *)((int)unaff_s7 + (int)(pbVar17 + -1))" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s7 + (int)(pbVar17 + -1))" (( "(") (binary_expression "(int)unaff_s7 + (int)(pbVar17 + -1)" (cast_expression "(int)unaff_s7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s7")) (+ "+") (cast_expression "(int)(pbVar17 + -1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pbVar17 + -1)" (( "(") (binary_expression "pbVar17 + -1" (identifier "pbVar17") (+ "+") (number_literal "-1")) () ")")))) () ")")))) (; ";")) (expression_statement "ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);" (assignment_expression "ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17)" (identifier "ppppppbVar22") (= "=") (cast_expression "(byte ******)((int)appppppbStack_34 + (int)pbVar17)" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "((int)appppppbStack_34 + (int)pbVar17)" (( "(") (binary_expression "(int)appppppbStack_34 + (int)pbVar17" (cast_expression "(int)appppppbStack_34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "appppppbStack_34")) (+ "+") (cast_expression "(int)pbVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar17"))) () ")")))) (; ";")) (do_statement "do {\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            } while ((byte *******)ppppppbVar22 != appppppbStack_34);" (do "do") (compound_statement "{\n              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);\n              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);\n              pbVar16 = pbVar16 + -1;\n            }" ({ "{") (expression_statement "*(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);" (assignment_expression "*(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16)" (pointer_expression "*(byte *)((int)ppppppbVar22 + -1)" (* "*") (cast_expression "(byte *)((int)ppppppbVar22 + -1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppppppbVar22 + -1)" (( "(") (binary_expression "(int)ppppppbVar22 + -1" (cast_expression "(int)ppppppbVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppbVar22")) (+ "+") (number_literal "-1")) () ")")))) (= "=") (pointer_expression "*(byte *)(iVar11 + (uint)*pbVar16)" (* "*") (cast_expression "(byte *)(iVar11 + (uint)*pbVar16)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + (uint)*pbVar16)" (( "(") (binary_expression "iVar11 + (uint)*pbVar16" (identifier "iVar11") (+ "+") (binary_expression "(uint)*pbVar16" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar16"))) () ")"))))) (; ";")) (expression_statement "ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);" (assignment_expression "ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1)" (identifier "ppppppbVar22") (= "=") (cast_expression "(byte ******)((int)ppppppbVar22 + -1)" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "((int)ppppppbVar22 + -1)" (( "(") (binary_expression "(int)ppppppbVar22 + -1" (cast_expression "(int)ppppppbVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppbVar22")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "pbVar16 = pbVar16 + -1;" (assignment_expression "pbVar16 = pbVar16 + -1" (identifier "pbVar16") (= "=") (binary_expression "pbVar16 + -1" (identifier "pbVar16") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((byte *******)ppppppbVar22 != appppppbStack_34)" (( "(") (binary_expression "(byte *******)ppppppbVar22 != appppppbStack_34" (cast_expression "(byte *******)ppppppbVar22" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (identifier "ppppppbVar22")) (!= "!=") (identifier "appppppbStack_34")) () ")")) (; ";")) (expression_statement "pppppppbVar18 = appppppbStack_34;" (assignment_expression "pppppppbVar18 = appppppbStack_34" (identifier "pppppppbVar18") (= "=") (identifier "appppppbStack_34")) (; ";")) (} "}")))) (} "}"))) (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 "uVar29 = (*(code *)PTR_mbrtowc_004bf2ec)(&local_40);" (assignment_expression "uVar29 = (*(code *)PTR_mbrtowc_004bf2ec)(&local_40)" (identifier "uVar29") (= "=") (call_expression "(*(code *)PTR_mbrtowc_004bf2ec)(&local_40)" (parenthesized_expression "(*(code *)PTR_mbrtowc_004bf2ec)" (( "(") (pointer_expression "*(code *)PTR_mbrtowc_004bf2ec" (* "*") (cast_expression "(code *)PTR_mbrtowc_004bf2ec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbrtowc_004bf2ec"))) () ")")) (argument_list "(&local_40)" (( "(") (pointer_expression "&local_40" (& "&") (identifier "local_40")) () ")")))) (; ";")) (expression_statement "uVar30 = (int)((int)unaff_s4 + (int)pppppppbVar20) - (int)unaff_s7;" (assignment_expression "uVar30 = (int)((int)unaff_s4 + (int)pppppppbVar20) - (int)unaff_s7" (identifier "uVar30") (= "=") (binary_expression "(int)((int)unaff_s4 + (int)pppppppbVar20) - (int)unaff_s7" (cast_expression "(int)((int)unaff_s4 + (int)pppppppbVar20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)unaff_s4 + (int)pppppppbVar20)" (( "(") (binary_expression "(int)unaff_s4 + (int)pppppppbVar20" (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4")) (+ "+") (cast_expression "(int)pppppppbVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppbVar20"))) () ")"))) (- "-") (cast_expression "(int)unaff_s7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s7")))) (; ";")) (if_statement "if ((uVar29 < uVar30) || (0xfffffffd < uVar29)) goto LAB_0049179c;" (if "if") (parenthesized_expression "((uVar29 < uVar30) || (0xfffffffd < uVar29))" (( "(") (binary_expression "(uVar29 < uVar30) || (0xfffffffd < uVar29)" (parenthesized_expression "(uVar29 < uVar30)" (( "(") (binary_expression "uVar29 < uVar30" (identifier "uVar29") (< "<") (identifier "uVar30")) () ")")) (|| "||") (parenthesized_expression "(0xfffffffd < uVar29)" (( "(") (binary_expression "0xfffffffd < uVar29" (number_literal "0xfffffffd") (< "<") (identifier "uVar29")) () ")"))) () ")")) (goto_statement "goto LAB_0049179c;" (goto "goto") (statement_identifier "LAB_0049179c") (; ";"))) (expression_statement "*(undefined1 *)(param_1 + 4) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 4) = 0" (pointer_expression "*(undefined1 *)(param_1 + 4)" (* "*") (cast_expression "(undefined1 *)(param_1 + 4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)param_1 + 0x11) = 0;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x11) = 0" (pointer_expression "*(undefined1 *)((int)param_1 + 0x11)" (* "*") (cast_expression "(undefined1 *)((int)param_1 + 0x11)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x11)" (( "(") (binary_expression "(int)param_1 + 0x11" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x11")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)param_1 + 0x12) = 0;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x12) = 0" (pointer_expression "*(undefined1 *)((int)param_1 + 0x12)" (* "*") (cast_expression "(undefined1 *)((int)param_1 + 0x12)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x12)" (( "(") (binary_expression "(int)param_1 + 0x12" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x12")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)param_1 + 0x13) = 0;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x13) = 0" (pointer_expression "*(undefined1 *)((int)param_1 + 0x13)" (* "*") (cast_expression "(undefined1 *)((int)param_1 + 0x13)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x13)" (( "(") (binary_expression "(int)param_1 + 0x13" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x13")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 5) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 5) = 0" (pointer_expression "*(undefined1 *)(param_1 + 5)" (* "*") (cast_expression "(undefined1 *)(param_1 + 5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 5)" (( "(") (binary_expression "param_1 + 5" (identifier "param_1") (+ "+") (number_literal "5")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)param_1 + 0x15) = 0;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x15) = 0" (pointer_expression "*(undefined1 *)((int)param_1 + 0x15)" (* "*") (cast_expression "(undefined1 *)((int)param_1 + 0x15)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x15)" (( "(") (binary_expression "(int)param_1 + 0x15" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x15")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)param_1 + 0x16) = 0;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x16) = 0" (pointer_expression "*(undefined1 *)((int)param_1 + 0x16)" (* "*") (cast_expression "(undefined1 *)((int)param_1 + 0x16)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x16)" (( "(") (binary_expression "(int)param_1 + 0x16" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x16")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)param_1 + 0x17) = 0;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x17) = 0" (pointer_expression "*(undefined1 *)((int)param_1 + 0x17)" (* "*") (cast_expression "(undefined1 *)((int)param_1 + 0x17)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x17)" (( "(") (binary_expression "(int)param_1 + 0x17" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x17")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[7] = uVar29 - uVar30;" (assignment_expression "param_1[7] = uVar29 - uVar30" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (= "=") (binary_expression "uVar29 - uVar30" (identifier "uVar29") (- "-") (identifier "uVar30"))) (; ";")) (expression_statement "unaff_s4 = local_40;" (assignment_expression "unaff_s4 = local_40" (identifier "unaff_s4") (= "=") (identifier "local_40")) (; ";")) (if_statement "if (local_40 == (byte *******)0xffffffff) {\n          iVar11 = param_1[6];\n          goto LAB_004917a0;\n        }" (if "if") (parenthesized_expression "(local_40 == (byte *******)0xffffffff)" (( "(") (binary_expression "local_40 == (byte *******)0xffffffff" (identifier "local_40") (== "==") (cast_expression "(byte *******)0xffffffff" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (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          iVar11 = param_1[6];\n          goto LAB_004917a0;\n        }" ({ "{") (expression_statement "iVar11 = param_1[6];" (assignment_expression "iVar11 = param_1[6]" (identifier "iVar11") (= "=") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]"))) (; ";")) (goto_statement "goto LAB_004917a0;" (goto "goto") (statement_identifier "LAB_004917a0") (; ";")) (} "}"))) (labeled_statement "LAB_00491834:\n        if (*(char *)((int)param_1 + 0x4e) == '\0') {\nLAB_00491840:\n          iVar11 = 2;\n          if (unaff_s4 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        else {\n          iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          iVar11 = 1;\n          if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }" (statement_identifier "LAB_00491834") (: ":") (if_statement "if (*(char *)((int)param_1 + 0x4e) == '\0') {\nLAB_00491840:\n          iVar11 = 2;\n          if (unaff_s4 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }\n        else {\n          iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          iVar11 = 1;\n          if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }" (if "if") (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") (' "'"))) () ")")) (compound_statement "{\nLAB_00491840:\n          iVar11 = 2;\n          if (unaff_s4 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }\n        }" ({ "{") (labeled_statement "LAB_00491840:\n          iVar11 = 2;" (statement_identifier "LAB_00491840") (: ":") (expression_statement "iVar11 = 2;" (assignment_expression "iVar11 = 2" (identifier "iVar11") (= "=") (number_literal "2")) (; ";"))) (if_statement "if (unaff_s4 == (byte *******)&DAT_0000000a) {\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }\n          else {\n            iVar11 = 0;\n          }" (if "if") (parenthesized_expression "(unaff_s4 == (byte *******)&DAT_0000000a)" (( "(") (binary_expression "unaff_s4 == (byte *******)&DAT_0000000a" (identifier "unaff_s4") (== "==") (cast_expression "(byte *******)&DAT_0000000a" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "&DAT_0000000a" (& "&") (identifier "DAT_0000000a")))) () ")")) (compound_statement "{\n            if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 0;\n            }\n          }" ({ "{") (if_statement "if (*(char *)((int)param_1 + 0x4d) == '\0') {\n              iVar11 = 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              iVar11 = 0;\n            }" ({ "{") (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            iVar11 = 0;\n          }" (else "else") (compound_statement "{\n            iVar11 = 0;\n          }" ({ "{") (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n          iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          iVar11 = 1;\n          if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }" (else "else") (compound_statement "{\n          iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);\n          iVar11 = 1;\n          if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }\n        }" ({ "{") (expression_statement "iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);" (assignment_expression "iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4)" (identifier "iVar24") (= "=") (call_expression "(*(code *)PTR_iswalnum_004bf25c)(unaff_s4)" (parenthesized_expression "(*(code *)PTR_iswalnum_004bf25c)" (( "(") (pointer_expression "*(code *)PTR_iswalnum_004bf25c" (* "*") (cast_expression "(code *)PTR_iswalnum_004bf25c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_iswalnum_004bf25c"))) () ")")) (argument_list "(unaff_s4)" (( "(") (identifier "unaff_s4") () ")")))) (; ";")) (expression_statement "iVar11 = 1;" (assignment_expression "iVar11 = 1" (identifier "iVar11") (= "=") (number_literal "1")) (; ";")) (if_statement "if (iVar24 == 0) {\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }" (if "if") (parenthesized_expression "(iVar24 == 0)" (( "(") (binary_expression "iVar24 == 0" (identifier "iVar24") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }\n            goto LAB_00491840;\n          }" ({ "{") (if_statement "if (unaff_s4 == (byte *******)0x5f) {\n              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }" (if "if") (parenthesized_expression "(unaff_s4 == (byte *******)0x5f)" (( "(") (binary_expression "unaff_s4 == (byte *******)0x5f" (identifier "unaff_s4") (== "==") (cast_expression "(byte *******)0x5f" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (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              param_1[0xf] = 1;\n              goto LAB_00491854;\n            }" ({ "{") (expression_statement "param_1[0xf] = 1;" (assignment_expression "param_1[0xf] = 1" (subscript_expression "param_1[0xf]" (identifier "param_1") ([ "[") (number_literal "0xf") (] "]")) (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_00491854;" (goto "goto") (statement_identifier "LAB_00491854") (; ";")) (} "}"))) (goto_statement "goto LAB_00491840;" (goto "goto") (statement_identifier "LAB_00491840") (; ";")) (} "}"))) (} "}"))))) (expression_statement "param_1[0xf] = iVar11;" (assignment_expression "param_1[0xf] = iVar11" (subscript_expression "param_1[0xf]" (identifier "param_1") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "iVar11")) (; ";")) (} "}")))) (labeled_statement "LAB_00491854:\n      ppppppbVar22 = (byte ******)param_1[7];" (statement_identifier "LAB_00491854") (: ":") (expression_statement "ppppppbVar22 = (byte ******)param_1[7];" (assignment_expression "ppppppbVar22 = (byte ******)param_1[7]" (identifier "ppppppbVar22") (= "=") (cast_expression "(byte ******)param_1[7]" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (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 (ppppppbVar22 == (byte ******)0x0) {\nLAB_00491860:\n        iVar11 = param_1[7];\n      }\n      else {\n        iVar11 = 0;\n        if (0 < (int)ppppppbVar22) {\n          do {\n            *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n            iVar11 = iVar11 + 1;\n            ppppppbVar22 = (byte ******)param_1[7];\n          } while (iVar11 < (int)ppppppbVar22);\n        }\n        pppppppbVar18 = (byte *******)0xff;\n        if (*(char *)((int)param_1 + 0x4b) == '\0') goto LAB_00491860;\n        (*(code *)PTR_memset_004bf260)(param_1[1]);\n        iVar11 = param_1[7];\n      }" (if "if") (parenthesized_expression "(ppppppbVar22 == (byte ******)0x0)" (( "(") (binary_expression "ppppppbVar22 == (byte ******)0x0" (identifier "ppppppbVar22") (== "==") (cast_expression "(byte ******)0x0" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00491860:\n        iVar11 = param_1[7];\n      }" ({ "{") (labeled_statement "LAB_00491860:\n        iVar11 = param_1[7];" (statement_identifier "LAB_00491860") (: ":") (expression_statement "iVar11 = param_1[7];" (assignment_expression "iVar11 = param_1[7]" (identifier "iVar11") (= "=") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]"))) (; ";"))) (} "}")) (else_clause "else {\n        iVar11 = 0;\n        if (0 < (int)ppppppbVar22) {\n          do {\n            *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n            iVar11 = iVar11 + 1;\n            ppppppbVar22 = (byte ******)param_1[7];\n          } while (iVar11 < (int)ppppppbVar22);\n        }\n        pppppppbVar18 = (byte *******)0xff;\n        if (*(char *)((int)param_1 + 0x4b) == '\0') goto LAB_00491860;\n        (*(code *)PTR_memset_004bf260)(param_1[1]);\n        iVar11 = param_1[7];\n      }" (else "else") (compound_statement "{\n        iVar11 = 0;\n        if (0 < (int)ppppppbVar22) {\n          do {\n            *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n            iVar11 = iVar11 + 1;\n            ppppppbVar22 = (byte ******)param_1[7];\n          } while (iVar11 < (int)ppppppbVar22);\n        }\n        pppppppbVar18 = (byte *******)0xff;\n        if (*(char *)((int)param_1 + 0x4b) == '\0') goto LAB_00491860;\n        (*(code *)PTR_memset_004bf260)(param_1[1]);\n        iVar11 = param_1[7];\n      }" ({ "{") (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < (int)ppppppbVar22) {\n          do {\n            *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n            iVar11 = iVar11 + 1;\n            ppppppbVar22 = (byte ******)param_1[7];\n          } while (iVar11 < (int)ppppppbVar22);\n        }" (if "if") (parenthesized_expression "(0 < (int)ppppppbVar22)" (( "(") (binary_expression "0 < (int)ppppppbVar22" (number_literal "0") (< "<") (cast_expression "(int)ppppppbVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppbVar22"))) () ")")) (compound_statement "{\n          do {\n            *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n            iVar11 = iVar11 + 1;\n            ppppppbVar22 = (byte ******)param_1[7];\n          } while (iVar11 < (int)ppppppbVar22);\n        }" ({ "{") (do_statement "do {\n            *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n            iVar11 = iVar11 + 1;\n            ppppppbVar22 = (byte ******)param_1[7];\n          } while (iVar11 < (int)ppppppbVar22);" (do "do") (compound_statement "{\n            *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;\n            iVar11 = iVar11 + 1;\n            ppppppbVar22 = (byte ******)param_1[7];\n          }" ({ "{") (expression_statement "*(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;" (assignment_expression "*(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff" (pointer_expression "*(undefined4 *)(param_1[2] + iVar11 * 4)" (* "*") (cast_expression "(undefined4 *)(param_1[2] + iVar11 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[2] + iVar11 * 4)" (( "(") (binary_expression "param_1[2] + iVar11 * 4" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (+ "+") (binary_expression "iVar11 * 4" (identifier "iVar11") (* "*") (number_literal "4"))) () ")")))) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" (identifier "iVar11") (= "=") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "ppppppbVar22 = (byte ******)param_1[7];" (assignment_expression "ppppppbVar22 = (byte ******)param_1[7]" (identifier "ppppppbVar22") (= "=") (cast_expression "(byte ******)param_1[7]" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (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") (] "]")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar11 < (int)ppppppbVar22)" (( "(") (binary_expression "iVar11 < (int)ppppppbVar22" (identifier "iVar11") (< "<") (cast_expression "(int)ppppppbVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppbVar22"))) () ")")) (; ";")) (} "}"))) (expression_statement "pppppppbVar18 = (byte *******)0xff;" (assignment_expression "pppppppbVar18 = (byte *******)0xff" (identifier "pppppppbVar18") (= "=") (cast_expression "(byte *******)0xff" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0xff"))) (; ";")) (if_statement "if (*(char *)((int)param_1 + 0x4b) == '\0') goto LAB_00491860;" (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") (' "'"))) () ")")) (goto_statement "goto LAB_00491860;" (goto "goto") (statement_identifier "LAB_00491860") (; ";"))) (expression_statement "(*(code *)PTR_memset_004bf260)(param_1[1]);" (call_expression "(*(code *)PTR_memset_004bf260)(param_1[1])" (parenthesized_expression "(*(code *)PTR_memset_004bf260)" (( "(") (pointer_expression "*(code *)PTR_memset_004bf260" (* "*") (cast_expression "(code *)PTR_memset_004bf260" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memset_004bf260"))) () ")")) (argument_list "(param_1[1])" (( "(") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) () ")"))) (; ";")) (expression_statement "iVar11 = param_1[7];" (assignment_expression "iVar11 = param_1[7]" (identifier "iVar11") (= "=") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]"))) (; ";")) (} "}")))) (expression_statement "param_1[8] = iVar11;" (assignment_expression "param_1[8] = iVar11" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "iVar11")) (; ";")) (labeled_statement "LAB_00491360:\n      cVar2 = *(char *)((int)param_1 + 0x4b);" (statement_identifier "LAB_00491360") (: ":") (expression_statement "cVar2 = *(char *)((int)param_1 + 0x4b);" (assignment_expression "cVar2 = *(char *)((int)param_1 + 0x4b)" (identifier "cVar2") (= "=") (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 (cVar2 == '\0') {\n      param_1[1] = (int)((int)pppppppbVar20 + param_1[1]);\n    }" (if "if") (parenthesized_expression "(cVar2 == '\0')" (( "(") (binary_expression "cVar2 == '\0'" (identifier "cVar2") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      param_1[1] = (int)((int)pppppppbVar20 + param_1[1]);\n    }" ({ "{") (expression_statement "param_1[1] = (int)((int)pppppppbVar20 + param_1[1]);" (assignment_expression "param_1[1] = (int)((int)pppppppbVar20 + param_1[1])" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(int)((int)pppppppbVar20 + param_1[1])" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)pppppppbVar20 + param_1[1])" (( "(") (binary_expression "(int)pppppppbVar20 + param_1[1]" (cast_expression "(int)pppppppbVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppbVar20")) (+ "+") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) () ")")))) (; ";")) (} "}"))) (} "}"))) (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 "iVar11 = param_1[0xc];" (assignment_expression "iVar11 = param_1[0xc]" (identifier "iVar11") (= "=") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (expression_statement "param_1[0xc] = iVar11 - (int)pppppppbVar20;" (assignment_expression "param_1[0xc] = iVar11 - (int)pppppppbVar20" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (= "=") (binary_expression "iVar11 - (int)pppppppbVar20" (identifier "iVar11") (- "-") (cast_expression "(int)pppppppbVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppbVar20")))) (; ";")) (expression_statement "iVar24 = param_1[0xe] - (int)pppppppbVar20;" (assignment_expression "iVar24 = param_1[0xe] - (int)pppppppbVar20" (identifier "iVar24") (= "=") (binary_expression "param_1[0xe] - (int)pppppppbVar20" (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]")) (- "-") (cast_expression "(int)pppppppbVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppbVar20")))) (; ";")) (expression_statement "param_1[0xe] = iVar24;" (assignment_expression "param_1[0xe] = iVar24" (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "iVar24")) (; ";")) (if_statement "if (param_1[0x14] < 2) {\n    if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[7] = iVar11 - (int)pppppppbVar20;\n      goto LAB_00491aa8;\n    }\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      if (param_1[0x10] == 0) goto LAB_00491aa8;\n      FUN_00489d80();\n      param_1[10] = 0;\n    }\n    else {\n      FUN_0048b84c(param_1);\n      param_1[10] = 0;\n    }\n  }\n  else {\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      FUN_0048b928(param_1);\n      param_1[10] = 0;\n      goto LAB_00491aac;\n    }\n    ppppbVar5 = (byte ****)FUN_0048c3a4();\n    if (ppppbVar5 != (byte ****)0x0) goto LAB_00491ab0;\nLAB_00491aa8:\n    param_1[10] = 0;\n  }" (if "if") (parenthesized_expression "(param_1[0x14] < 2)" (( "(") (binary_expression "param_1[0x14] < 2" (subscript_expression "param_1[0x14]" (identifier "param_1") ([ "[") (number_literal "0x14") (] "]")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n    if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[7] = iVar11 - (int)pppppppbVar20;\n      goto LAB_00491aa8;\n    }\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      if (param_1[0x10] == 0) goto LAB_00491aa8;\n      FUN_00489d80();\n      param_1[10] = 0;\n    }\n    else {\n      FUN_0048b84c(param_1);\n      param_1[10] = 0;\n    }\n  }" ({ "{") (if_statement "if (*(char *)((int)param_1 + 0x4b) == '\0') {\n      param_1[7] = iVar11 - (int)pppppppbVar20;\n      goto LAB_00491aa8;\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[7] = iVar11 - (int)pppppppbVar20;\n      goto LAB_00491aa8;\n    }" ({ "{") (expression_statement "param_1[7] = iVar11 - (int)pppppppbVar20;" (assignment_expression "param_1[7] = iVar11 - (int)pppppppbVar20" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (= "=") (binary_expression "iVar11 - (int)pppppppbVar20" (identifier "iVar11") (- "-") (cast_expression "(int)pppppppbVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppbVar20")))) (; ";")) (goto_statement "goto LAB_00491aa8;" (goto "goto") (statement_identifier "LAB_00491aa8") (; ";")) (} "}"))) (if_statement "if (*(char *)(param_1 + 0x12) == '\0') {\n      if (param_1[0x10] == 0) goto LAB_00491aa8;\n      FUN_00489d80();\n      param_1[10] = 0;\n    }\n    else {\n      FUN_0048b84c(param_1);\n      param_1[10] = 0;\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      if (param_1[0x10] == 0) goto LAB_00491aa8;\n      FUN_00489d80();\n      param_1[10] = 0;\n    }" ({ "{") (if_statement "if (param_1[0x10] == 0) goto LAB_00491aa8;" (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")) () ")")) (goto_statement "goto LAB_00491aa8;" (goto "goto") (statement_identifier "LAB_00491aa8") (; ";"))) (expression_statement "FUN_00489d80();" (call_expression "FUN_00489d80()" (identifier "FUN_00489d80") (argument_list "()" (( "(") () ")"))) (; ";")) (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 {\n      FUN_0048b84c(param_1);\n      param_1[10] = 0;\n    }" (else "else") (compound_statement "{\n      FUN_0048b84c(param_1);\n      param_1[10] = 0;\n    }" ({ "{") (expression_statement "FUN_0048b84c(param_1);" (call_expression "FUN_0048b84c(param_1)" (identifier "FUN_0048b84c") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (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 {\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      FUN_0048b928(param_1);\n      param_1[10] = 0;\n      goto LAB_00491aac;\n    }\n    ppppbVar5 = (byte ****)FUN_0048c3a4();\n    if (ppppbVar5 != (byte ****)0x0) goto LAB_00491ab0;\nLAB_00491aa8:\n    param_1[10] = 0;\n  }" (else "else") (compound_statement "{\n    if (*(char *)(param_1 + 0x12) == '\0') {\n      FUN_0048b928(param_1);\n      param_1[10] = 0;\n      goto LAB_00491aac;\n    }\n    ppppbVar5 = (byte ****)FUN_0048c3a4();\n    if (ppppbVar5 != (byte ****)0x0) goto LAB_00491ab0;\nLAB_00491aa8:\n    param_1[10] = 0;\n  }" ({ "{") (if_statement "if (*(char *)(param_1 + 0x12) == '\0') {\n      FUN_0048b928(param_1);\n      param_1[10] = 0;\n      goto LAB_00491aac;\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_0048b928(param_1);\n      param_1[10] = 0;\n      goto LAB_00491aac;\n    }" ({ "{") (expression_statement "FUN_0048b928(param_1);" (call_expression "FUN_0048b928(param_1)" (identifier "FUN_0048b928") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (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")) (; ";")) (goto_statement "goto LAB_00491aac;" (goto "goto") (statement_identifier "LAB_00491aac") (; ";")) (} "}"))) (expression_statement "ppppbVar5 = (byte ****)FUN_0048c3a4();" (assignment_expression "ppppbVar5 = (byte ****)FUN_0048c3a4()" (identifier "ppppbVar5") (= "=") (cast_expression "(byte ****)FUN_0048c3a4()" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (call_expression "FUN_0048c3a4()" (identifier "FUN_0048c3a4") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (ppppbVar5 != (byte ****)0x0) goto LAB_00491ab0;" (if "if") (parenthesized_expression "(ppppbVar5 != (byte ****)0x0)" (( "(") (binary_expression "ppppbVar5 != (byte ****)0x0" (identifier "ppppbVar5") (!= "!=") (cast_expression "(byte ****)0x0" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00491ab0;" (goto "goto") (statement_identifier "LAB_00491ab0") (; ";"))) (labeled_statement "LAB_00491aa8:\n    param_1[10] = 0;" (statement_identifier "LAB_00491aa8") (: ":") (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")) (; ";"))) (} "}")))) (labeled_statement "LAB_00491aac:\n  ppppbVar5 = (byte ****)0x0;" (statement_identifier "LAB_00491aac") (: ":") (expression_statement "ppppbVar5 = (byte ****)0x0;" (assignment_expression "ppppbVar5 = (byte ****)0x0" (identifier "ppppbVar5") (= "=") (cast_expression "(byte ****)0x0" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) (; ";"))) (labeled_statement "LAB_00491ab0:\n  if (appppppbStack_34[2] == *(byte *******)PTR___stack_chk_guard_004bf38c) {\n    return ppppbVar5;\n  }" (statement_identifier "LAB_00491ab0") (: ":") (if_statement "if (appppppbStack_34[2] == *(byte *******)PTR___stack_chk_guard_004bf38c) {\n    return ppppbVar5;\n  }" (if "if") (parenthesized_expression "(appppppbStack_34[2] == *(byte *******)PTR___stack_chk_guard_004bf38c)" (( "(") (binary_expression "appppppbStack_34[2] == *(byte *******)PTR___stack_chk_guard_004bf38c" (subscript_expression "appppppbStack_34[2]" (identifier "appppppbStack_34") ([ "[") (number_literal "2") (] "]")) (== "==") (pointer_expression "*(byte *******)PTR___stack_chk_guard_004bf38c" (* "*") (cast_expression "(byte *******)PTR___stack_chk_guard_004bf38c" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (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_004bf38c")))) () ")")) (compound_statement "{\n    return ppppbVar5;\n  }" ({ "{") (return_statement "return ppppbVar5;" (return "return") (identifier "ppppbVar5") (; ";")) (} "}")))) (expression_statement "pcVar32 = FUN_00491b60;" (assignment_expression "pcVar32 = FUN_00491b60" (identifier "pcVar32") (= "=") (identifier "FUN_00491b60")) (; ";")) (expression_statement "ppppppbVar6 = appppppbStack_34[2];" (assignment_expression "ppppppbVar6 = appppppbStack_34[2]" (identifier "ppppppbVar6") (= "=") (subscript_expression "appppppbStack_34[2]" (identifier "appppppbStack_34") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_004bf34c)();" (call_expression "(*(code *)PTR___stack_chk_fail_004bf34c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_004bf34c)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_004bf34c" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_004bf34c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_004bf34c"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "ppppbStack_84 = *(byte *****)PTR___stack_chk_guard_004bf38c;" (assignment_expression "ppppbStack_84 = *(byte *****)PTR___stack_chk_guard_004bf38c" (identifier "ppppbStack_84") (= "=") (pointer_expression "*(byte *****)PTR___stack_chk_guard_004bf38c" (* "*") (cast_expression "(byte *****)PTR___stack_chk_guard_004bf38c" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "PTR___stack_chk_guard_004bf38c")))) (; ";")) (expression_statement "pppppbVar31 = *ppppppbVar6;" (assignment_expression "pppppbVar31 = *ppppppbVar6" (identifier "pppppbVar31") (= "=") (pointer_expression "*ppppppbVar6" (* "*") (identifier "ppppppbVar6"))) (; ";")) (if_statement "if (pppppbVar31[0x17] == (byte ****)0x1) {\n    uVar29 = (uint)((int)ppppppbVar6[3] << 9) >> 0x1f;\n  }\n  else {\n    uVar29 = 0;\n  }" (if "if") (parenthesized_expression "(pppppbVar31[0x17] == (byte ****)0x1)" (( "(") (binary_expression "pppppbVar31[0x17] == (byte ****)0x1" (subscript_expression "pppppbVar31[0x17]" (identifier "pppppbVar31") ([ "[") (number_literal "0x17") (] "]")) (== "==") (cast_expression "(byte ****)0x1" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\n    uVar29 = (uint)((int)ppppppbVar6[3] << 9) >> 0x1f;\n  }" ({ "{") (expression_statement "uVar29 = (uint)((int)ppppppbVar6[3] << 9) >> 0x1f;" (assignment_expression "uVar29 = (uint)((int)ppppppbVar6[3] << 9) >> 0x1f" (identifier "uVar29") (= "=") (binary_expression "(uint)((int)ppppppbVar6[3] << 9) >> 0x1f" (call_expression "(uint)((int)ppppppbVar6[3] << 9)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)ppppppbVar6[3] << 9)" (( "(") (binary_expression "(int)ppppppbVar6[3] << 9" (cast_expression "(int)ppppppbVar6[3]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "ppppppbVar6[3]" (identifier "ppppppbVar6") ([ "[") (number_literal "3") (] "]"))) (<< "<<") (number_literal "9")) () ")"))) (>> ">>") (number_literal "0x1f"))) (; ";")) (} "}")) (else_clause "else {\n    uVar29 = 0;\n  }" (else "else") (compound_statement "{\n    uVar29 = 0;\n  }" ({ "{") (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" (identifier "uVar29") (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "ppppppbVar13 = ppppppbVar6;" (assignment_expression "ppppppbVar13 = ppppppbVar6" (identifier "ppppppbVar13") (= "=") (identifier "ppppppbVar6")) (; ";")) (expression_statement "pppppppbVar20 = pppppppbVar18;" (assignment_expression "pppppppbVar20 = pppppppbVar18" (identifier "pppppppbVar20") (= "=") (identifier "pppppppbVar18")) (; ";")) (expression_statement "ppppppbVar21 = ppppppbVar22;" (assignment_expression "ppppppbVar21 = ppppppbVar22" (identifier "ppppppbVar21") (= "=") (identifier "ppppppbVar22")) (; ";")) (expression_statement "piStack_80 = param_1;" (assignment_expression "piStack_80 = param_1" (identifier "piStack_80") (= "=") (identifier "param_1")) (; ";")) (expression_statement "iStack_7c = iVar24;" (assignment_expression "iStack_7c = iVar24" (identifier "iStack_7c") (= "=") (identifier "iVar24")) (; ";")) (expression_statement "pppppppbStack_78 = param_2;" (assignment_expression "pppppppbStack_78 = param_2" (identifier "pppppppbStack_78") (= "=") (identifier "param_2")) (; ";")) (expression_statement "ppppppbStack_74 = param_3;" (assignment_expression "ppppppbStack_74 = param_3" (identifier "ppppppbStack_74") (= "=") (identifier "param_3")) (; ";")) (expression_statement "pppppppbStack_70 = unaff_s4;" (assignment_expression "pppppppbStack_70 = unaff_s4" (identifier "pppppppbStack_70") (= "=") (identifier "unaff_s4")) (; ";")) (expression_statement "pppppppbStack_6c = unaff_s5;" (assignment_expression "pppppppbStack_6c = unaff_s5" (identifier "pppppppbStack_6c") (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "pppppppbStack_68 = unaff_s6;" (assignment_expression "pppppppbStack_68 = unaff_s6" (identifier "pppppppbStack_68") (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "pppppppbStack_64 = unaff_s7;" (assignment_expression "pppppppbStack_64 = unaff_s7" (identifier "pppppppbStack_64") (= "=") (identifier "unaff_s7")) (; ";")) (expression_statement "piStack_60 = unaff_s8;" (assignment_expression "piStack_60 = unaff_s8" (identifier "piStack_60") (= "=") (identifier "unaff_s8")) (; ";")) (expression_statement "pcStack_5c = pcVar32;" (assignment_expression "pcStack_5c = pcVar32" (identifier "pcStack_5c") (= "=") (identifier "pcVar32")) (; ";")) (if_statement "if (0 < (int)pppppppbVar18[2]) {\n    iStack_1a8 = 0;\n    do {\n      pppppbVar23 = pppppppbVar18[3][iStack_1a8];\n      ppppppbVar7 = (byte ******)((int)pppppbVar23 * 8);\n      ppppbVar5 = *pppppbVar31 + (int)pppppbVar23 * 2;\n      ppppppbVar13 = (byte ******)(uint)*(byte *)(ppppbVar5 + 1);\n      pppppppbVar20 = (byte *******)&DAT_00000001;\n      if (ppppppbVar13 == (byte ******)&DAT_00000001) {\n        uVar30 = (uint)*(byte *)ppppbVar5;\n        *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        if (uVar29 != 0) {\n          if (uVar30 + 0x80 < 0x180) {\n            piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n          }\n          *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        }\n        if (((int)ppppppbVar6[3] << 9 < 0) &&\n           (ppppppbVar13 = ppppppbVar7, 1 < (int)pppppbVar31[0x17])) {\n          bStack_184 = *(byte *)(*pppppbVar31 + (int)pppppbVar23 * 2);\n          if ((byte ****)((int)pppppbVar23 + 1U) < pppppbVar31[2]) {\n            ppppbVar5 = (byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2));\n            ppppppbVar7 = ppppppbVar7 + 4;\n            if (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400) {\n              puVar15 = auStack_183;\n              do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar14 = auStack_183;\n            }\n          }\n          else {\n            puVar14 = auStack_183;\n          }\n          pppppbStack_18c = (byte *****)0x0;\n          uStack_188 = 0;\n          pppppppbVar20 = (byte *******)&bStack_184;\n          iVar11 = -(int)pppppppbVar20;\n          ppppppbVar13 = (byte ******)&ppppppbStack_190;\n          ppppppbVar21 = (byte ******)(puVar14 + iVar11);\n          ppppppbVar7 = (byte ******)(*(code *)PTR_mbrtowc_004bf2ec)();\n          if ((byte ******)(puVar14 + iVar11) == ppppppbVar7) {\n            pppppppbVar20 = (byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190);\n            ppppppbVar21 = &pppppbStack_18c;\n            ppppppbVar13 = (byte ******)&bStack_184;\n            iVar11 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar11 != -1) {\n              *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n            }\n          }\n        }\n      }\n      else {\n        pppppppbVar20 = (byte *******)&DAT_00000006;\n        if (ppppppbVar13 == (byte ******)0x3) {\n          iStack_1ac = 0;\n          iVar11 = 0;\n          do {\n            uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac);\n            uVar30 = 0;\n            iVar24 = iVar11;\n            do {\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            } while (uVar30 != 0x20);\n            iVar11 = iVar11 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar11 != 0x100);\n        }\n        else if (ppppppbVar13 == (byte ******)&DAT_00000006) {\n          pppbVar25 = *ppppbVar5;\n          if (((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))) {\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }\n          else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }\n          if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }\n        }\n      }\n      iStack_1a8 = iStack_1a8 + 1;\n    } while (iStack_1a8 < (int)pppppppbVar18[2]);\n  }" (if "if") (parenthesized_expression "(0 < (int)pppppppbVar18[2])" (( "(") (binary_expression "0 < (int)pppppppbVar18[2]" (number_literal "0") (< "<") (cast_expression "(int)pppppppbVar18[2]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppbVar18[2]" (identifier "pppppppbVar18") ([ "[") (number_literal "2") (] "]")))) () ")")) (compound_statement "{\n    iStack_1a8 = 0;\n    do {\n      pppppbVar23 = pppppppbVar18[3][iStack_1a8];\n      ppppppbVar7 = (byte ******)((int)pppppbVar23 * 8);\n      ppppbVar5 = *pppppbVar31 + (int)pppppbVar23 * 2;\n      ppppppbVar13 = (byte ******)(uint)*(byte *)(ppppbVar5 + 1);\n      pppppppbVar20 = (byte *******)&DAT_00000001;\n      if (ppppppbVar13 == (byte ******)&DAT_00000001) {\n        uVar30 = (uint)*(byte *)ppppbVar5;\n        *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        if (uVar29 != 0) {\n          if (uVar30 + 0x80 < 0x180) {\n            piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n          }\n          *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        }\n        if (((int)ppppppbVar6[3] << 9 < 0) &&\n           (ppppppbVar13 = ppppppbVar7, 1 < (int)pppppbVar31[0x17])) {\n          bStack_184 = *(byte *)(*pppppbVar31 + (int)pppppbVar23 * 2);\n          if ((byte ****)((int)pppppbVar23 + 1U) < pppppbVar31[2]) {\n            ppppbVar5 = (byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2));\n            ppppppbVar7 = ppppppbVar7 + 4;\n            if (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400) {\n              puVar15 = auStack_183;\n              do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar14 = auStack_183;\n            }\n          }\n          else {\n            puVar14 = auStack_183;\n          }\n          pppppbStack_18c = (byte *****)0x0;\n          uStack_188 = 0;\n          pppppppbVar20 = (byte *******)&bStack_184;\n          iVar11 = -(int)pppppppbVar20;\n          ppppppbVar13 = (byte ******)&ppppppbStack_190;\n          ppppppbVar21 = (byte ******)(puVar14 + iVar11);\n          ppppppbVar7 = (byte ******)(*(code *)PTR_mbrtowc_004bf2ec)();\n          if ((byte ******)(puVar14 + iVar11) == ppppppbVar7) {\n            pppppppbVar20 = (byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190);\n            ppppppbVar21 = &pppppbStack_18c;\n            ppppppbVar13 = (byte ******)&bStack_184;\n            iVar11 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar11 != -1) {\n              *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n            }\n          }\n        }\n      }\n      else {\n        pppppppbVar20 = (byte *******)&DAT_00000006;\n        if (ppppppbVar13 == (byte ******)0x3) {\n          iStack_1ac = 0;\n          iVar11 = 0;\n          do {\n            uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac);\n            uVar30 = 0;\n            iVar24 = iVar11;\n            do {\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            } while (uVar30 != 0x20);\n            iVar11 = iVar11 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar11 != 0x100);\n        }\n        else if (ppppppbVar13 == (byte ******)&DAT_00000006) {\n          pppbVar25 = *ppppbVar5;\n          if (((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))) {\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }\n          else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }\n          if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }\n        }\n      }\n      iStack_1a8 = iStack_1a8 + 1;\n    } while (iStack_1a8 < (int)pppppppbVar18[2]);\n  }" ({ "{") (expression_statement "iStack_1a8 = 0;" (assignment_expression "iStack_1a8 = 0" (identifier "iStack_1a8") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      pppppbVar23 = pppppppbVar18[3][iStack_1a8];\n      ppppppbVar7 = (byte ******)((int)pppppbVar23 * 8);\n      ppppbVar5 = *pppppbVar31 + (int)pppppbVar23 * 2;\n      ppppppbVar13 = (byte ******)(uint)*(byte *)(ppppbVar5 + 1);\n      pppppppbVar20 = (byte *******)&DAT_00000001;\n      if (ppppppbVar13 == (byte ******)&DAT_00000001) {\n        uVar30 = (uint)*(byte *)ppppbVar5;\n        *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        if (uVar29 != 0) {\n          if (uVar30 + 0x80 < 0x180) {\n            piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n          }\n          *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        }\n        if (((int)ppppppbVar6[3] << 9 < 0) &&\n           (ppppppbVar13 = ppppppbVar7, 1 < (int)pppppbVar31[0x17])) {\n          bStack_184 = *(byte *)(*pppppbVar31 + (int)pppppbVar23 * 2);\n          if ((byte ****)((int)pppppbVar23 + 1U) < pppppbVar31[2]) {\n            ppppbVar5 = (byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2));\n            ppppppbVar7 = ppppppbVar7 + 4;\n            if (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400) {\n              puVar15 = auStack_183;\n              do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar14 = auStack_183;\n            }\n          }\n          else {\n            puVar14 = auStack_183;\n          }\n          pppppbStack_18c = (byte *****)0x0;\n          uStack_188 = 0;\n          pppppppbVar20 = (byte *******)&bStack_184;\n          iVar11 = -(int)pppppppbVar20;\n          ppppppbVar13 = (byte ******)&ppppppbStack_190;\n          ppppppbVar21 = (byte ******)(puVar14 + iVar11);\n          ppppppbVar7 = (byte ******)(*(code *)PTR_mbrtowc_004bf2ec)();\n          if ((byte ******)(puVar14 + iVar11) == ppppppbVar7) {\n            pppppppbVar20 = (byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190);\n            ppppppbVar21 = &pppppbStack_18c;\n            ppppppbVar13 = (byte ******)&bStack_184;\n            iVar11 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar11 != -1) {\n              *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n            }\n          }\n        }\n      }\n      else {\n        pppppppbVar20 = (byte *******)&DAT_00000006;\n        if (ppppppbVar13 == (byte ******)0x3) {\n          iStack_1ac = 0;\n          iVar11 = 0;\n          do {\n            uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac);\n            uVar30 = 0;\n            iVar24 = iVar11;\n            do {\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            } while (uVar30 != 0x20);\n            iVar11 = iVar11 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar11 != 0x100);\n        }\n        else if (ppppppbVar13 == (byte ******)&DAT_00000006) {\n          pppbVar25 = *ppppbVar5;\n          if (((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))) {\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }\n          else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }\n          if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }\n        }\n      }\n      iStack_1a8 = iStack_1a8 + 1;\n    } while (iStack_1a8 < (int)pppppppbVar18[2]);" (do "do") (compound_statement "{\n      pppppbVar23 = pppppppbVar18[3][iStack_1a8];\n      ppppppbVar7 = (byte ******)((int)pppppbVar23 * 8);\n      ppppbVar5 = *pppppbVar31 + (int)pppppbVar23 * 2;\n      ppppppbVar13 = (byte ******)(uint)*(byte *)(ppppbVar5 + 1);\n      pppppppbVar20 = (byte *******)&DAT_00000001;\n      if (ppppppbVar13 == (byte ******)&DAT_00000001) {\n        uVar30 = (uint)*(byte *)ppppbVar5;\n        *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        if (uVar29 != 0) {\n          if (uVar30 + 0x80 < 0x180) {\n            piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n          }\n          *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        }\n        if (((int)ppppppbVar6[3] << 9 < 0) &&\n           (ppppppbVar13 = ppppppbVar7, 1 < (int)pppppbVar31[0x17])) {\n          bStack_184 = *(byte *)(*pppppbVar31 + (int)pppppbVar23 * 2);\n          if ((byte ****)((int)pppppbVar23 + 1U) < pppppbVar31[2]) {\n            ppppbVar5 = (byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2));\n            ppppppbVar7 = ppppppbVar7 + 4;\n            if (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400) {\n              puVar15 = auStack_183;\n              do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar14 = auStack_183;\n            }\n          }\n          else {\n            puVar14 = auStack_183;\n          }\n          pppppbStack_18c = (byte *****)0x0;\n          uStack_188 = 0;\n          pppppppbVar20 = (byte *******)&bStack_184;\n          iVar11 = -(int)pppppppbVar20;\n          ppppppbVar13 = (byte ******)&ppppppbStack_190;\n          ppppppbVar21 = (byte ******)(puVar14 + iVar11);\n          ppppppbVar7 = (byte ******)(*(code *)PTR_mbrtowc_004bf2ec)();\n          if ((byte ******)(puVar14 + iVar11) == ppppppbVar7) {\n            pppppppbVar20 = (byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190);\n            ppppppbVar21 = &pppppbStack_18c;\n            ppppppbVar13 = (byte ******)&bStack_184;\n            iVar11 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar11 != -1) {\n              *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n            }\n          }\n        }\n      }\n      else {\n        pppppppbVar20 = (byte *******)&DAT_00000006;\n        if (ppppppbVar13 == (byte ******)0x3) {\n          iStack_1ac = 0;\n          iVar11 = 0;\n          do {\n            uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac);\n            uVar30 = 0;\n            iVar24 = iVar11;\n            do {\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            } while (uVar30 != 0x20);\n            iVar11 = iVar11 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar11 != 0x100);\n        }\n        else if (ppppppbVar13 == (byte ******)&DAT_00000006) {\n          pppbVar25 = *ppppbVar5;\n          if (((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))) {\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }\n          else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }\n          if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }\n        }\n      }\n      iStack_1a8 = iStack_1a8 + 1;\n    }" ({ "{") (expression_statement "pppppbVar23 = pppppppbVar18[3][iStack_1a8];" (assignment_expression "pppppbVar23 = pppppppbVar18[3][iStack_1a8]" (identifier "pppppbVar23") (= "=") (subscript_expression "pppppppbVar18[3][iStack_1a8]" (subscript_expression "pppppppbVar18[3]" (identifier "pppppppbVar18") ([ "[") (number_literal "3") (] "]")) ([ "[") (identifier "iStack_1a8") (] "]"))) (; ";")) (expression_statement "ppppppbVar7 = (byte ******)((int)pppppbVar23 * 8);" (assignment_expression "ppppppbVar7 = (byte ******)((int)pppppbVar23 * 8)" (identifier "ppppppbVar7") (= "=") (cast_expression "(byte ******)((int)pppppbVar23 * 8)" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "((int)pppppbVar23 * 8)" (( "(") (binary_expression "(int)pppppbVar23 * 8" (cast_expression "(int)pppppbVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar23")) (* "*") (number_literal "8")) () ")")))) (; ";")) (expression_statement "ppppbVar5 = *pppppbVar31 + (int)pppppbVar23 * 2;" (assignment_expression "ppppbVar5 = *pppppbVar31 + (int)pppppbVar23 * 2" (identifier "ppppbVar5") (= "=") (binary_expression "*pppppbVar31 + (int)pppppbVar23 * 2" (pointer_expression "*pppppbVar31" (* "*") (identifier "pppppbVar31")) (+ "+") (binary_expression "(int)pppppbVar23 * 2" (cast_expression "(int)pppppbVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar23")) (* "*") (number_literal "2")))) (; ";")) (expression_statement "ppppppbVar13 = (byte ******)(uint)*(byte *)(ppppbVar5 + 1);" (assignment_expression "ppppppbVar13 = (byte ******)(uint)*(byte *)(ppppbVar5 + 1)" (identifier "ppppppbVar13") (= "=") (binary_expression "(byte ******)(uint)*(byte *)(ppppbVar5 + 1)" (cast_expression "(byte ******)(uint)" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (cast_expression "(byte *)(ppppbVar5 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppppbVar5 + 1)" (( "(") (binary_expression "ppppbVar5 + 1" (identifier "ppppbVar5") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "pppppppbVar20 = (byte *******)&DAT_00000001;" (assignment_expression "pppppppbVar20 = (byte *******)&DAT_00000001" (identifier "pppppppbVar20") (= "=") (cast_expression "(byte *******)&DAT_00000001" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "&DAT_00000001" (& "&") (identifier "DAT_00000001")))) (; ";")) (if_statement "if (ppppppbVar13 == (byte ******)&DAT_00000001) {\n        uVar30 = (uint)*(byte *)ppppbVar5;\n        *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        if (uVar29 != 0) {\n          if (uVar30 + 0x80 < 0x180) {\n            piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n          }\n          *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        }\n        if (((int)ppppppbVar6[3] << 9 < 0) &&\n           (ppppppbVar13 = ppppppbVar7, 1 < (int)pppppbVar31[0x17])) {\n          bStack_184 = *(byte *)(*pppppbVar31 + (int)pppppbVar23 * 2);\n          if ((byte ****)((int)pppppbVar23 + 1U) < pppppbVar31[2]) {\n            ppppbVar5 = (byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2));\n            ppppppbVar7 = ppppppbVar7 + 4;\n            if (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400) {\n              puVar15 = auStack_183;\n              do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar14 = auStack_183;\n            }\n          }\n          else {\n            puVar14 = auStack_183;\n          }\n          pppppbStack_18c = (byte *****)0x0;\n          uStack_188 = 0;\n          pppppppbVar20 = (byte *******)&bStack_184;\n          iVar11 = -(int)pppppppbVar20;\n          ppppppbVar13 = (byte ******)&ppppppbStack_190;\n          ppppppbVar21 = (byte ******)(puVar14 + iVar11);\n          ppppppbVar7 = (byte ******)(*(code *)PTR_mbrtowc_004bf2ec)();\n          if ((byte ******)(puVar14 + iVar11) == ppppppbVar7) {\n            pppppppbVar20 = (byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190);\n            ppppppbVar21 = &pppppbStack_18c;\n            ppppppbVar13 = (byte ******)&bStack_184;\n            iVar11 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar11 != -1) {\n              *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n            }\n          }\n        }\n      }\n      else {\n        pppppppbVar20 = (byte *******)&DAT_00000006;\n        if (ppppppbVar13 == (byte ******)0x3) {\n          iStack_1ac = 0;\n          iVar11 = 0;\n          do {\n            uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac);\n            uVar30 = 0;\n            iVar24 = iVar11;\n            do {\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            } while (uVar30 != 0x20);\n            iVar11 = iVar11 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar11 != 0x100);\n        }\n        else if (ppppppbVar13 == (byte ******)&DAT_00000006) {\n          pppbVar25 = *ppppbVar5;\n          if (((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))) {\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }\n          else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }\n          if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(ppppppbVar13 == (byte ******)&DAT_00000001)" (( "(") (binary_expression "ppppppbVar13 == (byte ******)&DAT_00000001" (identifier "ppppppbVar13") (== "==") (cast_expression "(byte ******)&DAT_00000001" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (pointer_expression "&DAT_00000001" (& "&") (identifier "DAT_00000001")))) () ")")) (compound_statement "{\n        uVar30 = (uint)*(byte *)ppppbVar5;\n        *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        if (uVar29 != 0) {\n          if (uVar30 + 0x80 < 0x180) {\n            piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n          }\n          *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        }\n        if (((int)ppppppbVar6[3] << 9 < 0) &&\n           (ppppppbVar13 = ppppppbVar7, 1 < (int)pppppbVar31[0x17])) {\n          bStack_184 = *(byte *)(*pppppbVar31 + (int)pppppbVar23 * 2);\n          if ((byte ****)((int)pppppbVar23 + 1U) < pppppbVar31[2]) {\n            ppppbVar5 = (byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2));\n            ppppppbVar7 = ppppppbVar7 + 4;\n            if (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400) {\n              puVar15 = auStack_183;\n              do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar14 = auStack_183;\n            }\n          }\n          else {\n            puVar14 = auStack_183;\n          }\n          pppppbStack_18c = (byte *****)0x0;\n          uStack_188 = 0;\n          pppppppbVar20 = (byte *******)&bStack_184;\n          iVar11 = -(int)pppppppbVar20;\n          ppppppbVar13 = (byte ******)&ppppppbStack_190;\n          ppppppbVar21 = (byte ******)(puVar14 + iVar11);\n          ppppppbVar7 = (byte ******)(*(code *)PTR_mbrtowc_004bf2ec)();\n          if ((byte ******)(puVar14 + iVar11) == ppppppbVar7) {\n            pppppppbVar20 = (byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190);\n            ppppppbVar21 = &pppppbStack_18c;\n            ppppppbVar13 = (byte ******)&bStack_184;\n            iVar11 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar11 != -1) {\n              *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n            }\n          }\n        }\n      }" ({ "{") (expression_statement "uVar30 = (uint)*(byte *)ppppbVar5;" (assignment_expression "uVar30 = (uint)*(byte *)ppppbVar5" (identifier "uVar30") (= "=") (binary_expression "(uint)*(byte *)ppppbVar5" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)ppppbVar5" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppppbVar5")))) (; ";")) (expression_statement "*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;" (assignment_expression "*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1" (pointer_expression "*(undefined1 *)((int)ppppppbVar22 + uVar30)" (* "*") (cast_expression "(undefined1 *)((int)ppppppbVar22 + uVar30)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppppppbVar22 + uVar30)" (( "(") (binary_expression "(int)ppppppbVar22 + uVar30" (cast_expression "(int)ppppppbVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppbVar22")) (+ "+") (identifier "uVar30")) () ")")))) (= "=") (number_literal "1")) (; ";")) (if_statement "if (uVar29 != 0) {\n          if (uVar30 + 0x80 < 0x180) {\n            piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n          }\n          *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        }" (if "if") (parenthesized_expression "(uVar29 != 0)" (( "(") (binary_expression "uVar29 != 0" (identifier "uVar29") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          if (uVar30 + 0x80 < 0x180) {\n            piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n          }\n          *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n        }" ({ "{") (if_statement "if (uVar30 + 0x80 < 0x180) {\n            piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n          }" (if "if") (parenthesized_expression "(uVar30 + 0x80 < 0x180)" (( "(") (binary_expression "uVar30 + 0x80 < 0x180" (binary_expression "uVar30 + 0x80" (identifier "uVar30") (+ "+") (number_literal "0x80")) (< "<") (number_literal "0x180")) () ")")) (compound_statement "{\n            piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n            uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n          }" ({ "{") (expression_statement "piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();" (assignment_expression "piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)()" (identifier "piVar9") (= "=") (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___ctype_tolower_loc_004bf16c)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_004bf16c)" (( "(") (pointer_expression "*(code *)PTR___ctype_tolower_loc_004bf16c" (* "*") (cast_expression "(code *)PTR___ctype_tolower_loc_004bf16c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_tolower_loc_004bf16c"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "uVar30 = *(uint *)(*piVar9 + uVar30 * 4);" (assignment_expression "uVar30 = *(uint *)(*piVar9 + uVar30 * 4)" (identifier "uVar30") (= "=") (pointer_expression "*(uint *)(*piVar9 + uVar30 * 4)" (* "*") (cast_expression "(uint *)(*piVar9 + uVar30 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar9 + uVar30 * 4)" (( "(") (binary_expression "*piVar9 + uVar30 * 4" (pointer_expression "*piVar9" (* "*") (identifier "piVar9")) (+ "+") (binary_expression "uVar30 * 4" (identifier "uVar30") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}"))) (expression_statement "*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;" (assignment_expression "*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1" (pointer_expression "*(undefined1 *)((int)ppppppbVar22 + uVar30)" (* "*") (cast_expression "(undefined1 *)((int)ppppppbVar22 + uVar30)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppppppbVar22 + uVar30)" (( "(") (binary_expression "(int)ppppppbVar22 + uVar30" (cast_expression "(int)ppppppbVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppbVar22")) (+ "+") (identifier "uVar30")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}"))) (if_statement "if (((int)ppppppbVar6[3] << 9 < 0) &&\n           (ppppppbVar13 = ppppppbVar7, 1 < (int)pppppbVar31[0x17])) {\n          bStack_184 = *(byte *)(*pppppbVar31 + (int)pppppbVar23 * 2);\n          if ((byte ****)((int)pppppbVar23 + 1U) < pppppbVar31[2]) {\n            ppppbVar5 = (byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2));\n            ppppppbVar7 = ppppppbVar7 + 4;\n            if (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400) {\n              puVar15 = auStack_183;\n              do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar14 = auStack_183;\n            }\n          }\n          else {\n            puVar14 = auStack_183;\n          }\n          pppppbStack_18c = (byte *****)0x0;\n          uStack_188 = 0;\n          pppppppbVar20 = (byte *******)&bStack_184;\n          iVar11 = -(int)pppppppbVar20;\n          ppppppbVar13 = (byte ******)&ppppppbStack_190;\n          ppppppbVar21 = (byte ******)(puVar14 + iVar11);\n          ppppppbVar7 = (byte ******)(*(code *)PTR_mbrtowc_004bf2ec)();\n          if ((byte ******)(puVar14 + iVar11) == ppppppbVar7) {\n            pppppppbVar20 = (byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190);\n            ppppppbVar21 = &pppppbStack_18c;\n            ppppppbVar13 = (byte ******)&bStack_184;\n            iVar11 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar11 != -1) {\n              *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n            }\n          }\n        }" (if "if") (parenthesized_expression "(((int)ppppppbVar6[3] << 9 < 0) &&\n           (ppppppbVar13 = ppppppbVar7, 1 < (int)pppppbVar31[0x17]))" (( "(") (binary_expression "((int)ppppppbVar6[3] << 9 < 0) &&\n           (ppppppbVar13 = ppppppbVar7, 1 < (int)pppppbVar31[0x17])" (parenthesized_expression "((int)ppppppbVar6[3] << 9 < 0)" (( "(") (binary_expression "(int)ppppppbVar6[3] << 9 < 0" (binary_expression "(int)ppppppbVar6[3] << 9" (cast_expression "(int)ppppppbVar6[3]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "ppppppbVar6[3]" (identifier "ppppppbVar6") ([ "[") (number_literal "3") (] "]"))) (<< "<<") (number_literal "9")) (< "<") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(ppppppbVar13 = ppppppbVar7, 1 < (int)pppppbVar31[0x17])" (( "(") (comma_expression "ppppppbVar13 = ppppppbVar7, 1 < (int)pppppbVar31[0x17]" (assignment_expression "ppppppbVar13 = ppppppbVar7" (identifier "ppppppbVar13") (= "=") (identifier "ppppppbVar7")) (, ",") (binary_expression "1 < (int)pppppbVar31[0x17]" (number_literal "1") (< "<") (cast_expression "(int)pppppbVar31[0x17]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppbVar31[0x17]" (identifier "pppppbVar31") ([ "[") (number_literal "0x17") (] "]"))))) () ")"))) () ")")) (compound_statement "{\n          bStack_184 = *(byte *)(*pppppbVar31 + (int)pppppbVar23 * 2);\n          if ((byte ****)((int)pppppbVar23 + 1U) < pppppbVar31[2]) {\n            ppppbVar5 = (byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2));\n            ppppppbVar7 = ppppppbVar7 + 4;\n            if (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400) {\n              puVar15 = auStack_183;\n              do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar14 = auStack_183;\n            }\n          }\n          else {\n            puVar14 = auStack_183;\n          }\n          pppppbStack_18c = (byte *****)0x0;\n          uStack_188 = 0;\n          pppppppbVar20 = (byte *******)&bStack_184;\n          iVar11 = -(int)pppppppbVar20;\n          ppppppbVar13 = (byte ******)&ppppppbStack_190;\n          ppppppbVar21 = (byte ******)(puVar14 + iVar11);\n          ppppppbVar7 = (byte ******)(*(code *)PTR_mbrtowc_004bf2ec)();\n          if ((byte ******)(puVar14 + iVar11) == ppppppbVar7) {\n            pppppppbVar20 = (byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190);\n            ppppppbVar21 = &pppppbStack_18c;\n            ppppppbVar13 = (byte ******)&bStack_184;\n            iVar11 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar11 != -1) {\n              *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n            }\n          }\n        }" ({ "{") (expression_statement "bStack_184 = *(byte *)(*pppppbVar31 + (int)pppppbVar23 * 2);" (assignment_expression "bStack_184 = *(byte *)(*pppppbVar31 + (int)pppppbVar23 * 2)" (identifier "bStack_184") (= "=") (pointer_expression "*(byte *)(*pppppbVar31 + (int)pppppbVar23 * 2)" (* "*") (cast_expression "(byte *)(*pppppbVar31 + (int)pppppbVar23 * 2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*pppppbVar31 + (int)pppppbVar23 * 2)" (( "(") (binary_expression "*pppppbVar31 + (int)pppppbVar23 * 2" (pointer_expression "*pppppbVar31" (* "*") (identifier "pppppbVar31")) (+ "+") (binary_expression "(int)pppppbVar23 * 2" (cast_expression "(int)pppppbVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar23")) (* "*") (number_literal "2"))) () ")"))))) (; ";")) (if_statement "if ((byte ****)((int)pppppbVar23 + 1U) < pppppbVar31[2]) {\n            ppppbVar5 = (byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2));\n            ppppppbVar7 = ppppppbVar7 + 4;\n            if (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400) {\n              puVar15 = auStack_183;\n              do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar14 = auStack_183;\n            }\n          }\n          else {\n            puVar14 = auStack_183;\n          }" (if "if") (parenthesized_expression "((byte ****)((int)pppppbVar23 + 1U) < pppppbVar31[2])" (( "(") (binary_expression "(byte ****)((int)pppppbVar23 + 1U) < pppppbVar31[2]" (cast_expression "(byte ****)((int)pppppbVar23 + 1U)" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((int)pppppbVar23 + 1U)" (( "(") (binary_expression "(int)pppppbVar23 + 1U" (cast_expression "(int)pppppbVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar23")) (+ "+") (number_literal "1U")) () ")"))) (< "<") (subscript_expression "pppppbVar31[2]" (identifier "pppppbVar31") ([ "[") (number_literal "2") (] "]"))) () ")")) (compound_statement "{\n            ppppbVar5 = (byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2));\n            ppppppbVar7 = ppppppbVar7 + 4;\n            if (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400) {\n              puVar15 = auStack_183;\n              do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar14 = auStack_183;\n            }\n          }" ({ "{") (expression_statement "ppppbVar5 = (byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2));" (assignment_expression "ppppbVar5 = (byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2))" (identifier "ppppbVar5") (= "=") (cast_expression "(byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2))" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((int)ppppppbVar7 + (int)(*pppppbVar31 + 2))" (( "(") (binary_expression "(int)ppppppbVar7 + (int)(*pppppbVar31 + 2)" (cast_expression "(int)ppppppbVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppbVar7")) (+ "+") (cast_expression "(int)(*pppppbVar31 + 2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(*pppppbVar31 + 2)" (( "(") (binary_expression "*pppppbVar31 + 2" (pointer_expression "*pppppbVar31" (* "*") (identifier "pppppbVar31")) (+ "+") (number_literal "2")) () ")")))) () ")")))) (; ";")) (expression_statement "ppppppbVar7 = ppppppbVar7 + 4;" (assignment_expression "ppppppbVar7 = ppppppbVar7 + 4" (identifier "ppppppbVar7") (= "=") (binary_expression "ppppppbVar7 + 4" (identifier "ppppppbVar7") (+ "+") (number_literal "4"))) (; ";")) (if_statement "if (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400) {\n              puVar15 = auStack_183;\n              do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);\n            }\n            else {\n              puVar14 = auStack_183;\n            }" (if "if") (parenthesized_expression "(((uint)ppppbVar5[1] & 0xff000400) == 0x1000400)" (( "(") (binary_expression "((uint)ppppbVar5[1] & 0xff000400) == 0x1000400" (parenthesized_expression "((uint)ppppbVar5[1] & 0xff000400)" (( "(") (binary_expression "(uint)ppppbVar5[1] & 0xff000400" (cast_expression "(uint)ppppbVar5[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "ppppbVar5[1]" (identifier "ppppbVar5") ([ "[") (number_literal "1") (] "]"))) (& "&") (number_literal "0xff000400")) () ")")) (== "==") (number_literal "0x1000400")) () ")")) (compound_statement "{\n              puVar15 = auStack_183;\n              do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);\n            }" ({ "{") (expression_statement "puVar15 = auStack_183;" (assignment_expression "puVar15 = auStack_183" (identifier "puVar15") (= "=") (identifier "auStack_183")) (; ";")) (do_statement "do {\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);" (do "do") (compound_statement "{\n                puVar14 = puVar15 + 1;\n                *puVar15 = *(undefined1 *)ppppbVar5;\n                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;\n                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);\n                ppppppbVar7 = ppppppbVar7 + 2;\n                puVar15 = puVar14;\n              }" ({ "{") (expression_statement "puVar14 = puVar15 + 1;" (assignment_expression "puVar14 = puVar15 + 1" (identifier "puVar14") (= "=") (binary_expression "puVar15 + 1" (identifier "puVar15") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar15 = *(undefined1 *)ppppbVar5;" (assignment_expression "*puVar15 = *(undefined1 *)ppppbVar5" (pointer_expression "*puVar15" (* "*") (identifier "puVar15")) (= "=") (pointer_expression "*(undefined1 *)ppppbVar5" (* "*") (cast_expression "(undefined1 *)ppppbVar5" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppppbVar5")))) (; ";")) (if_statement "if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;" (if "if") (parenthesized_expression "(pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184))" (( "(") (binary_expression "pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)" (subscript_expression "pppppbVar31[2]" (identifier "pppppbVar31") ([ "[") (number_literal "2") (] "]")) (<= "<=") (binary_expression "puVar14 + ((int)pppppbVar23 - (int)&bStack_184)" (identifier "puVar14") (+ "+") (parenthesized_expression "((int)pppppbVar23 - (int)&bStack_184)" (( "(") (binary_expression "(int)pppppbVar23 - (int)&bStack_184" (cast_expression "(int)pppppbVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar23")) (- "-") (cast_expression "(int)&bStack_184" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&bStack_184" (& "&") (identifier "bStack_184")))) () ")")))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);" (assignment_expression "ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7)" (identifier "ppppbVar5") (= "=") (cast_expression "(byte ****)((int)*pppppbVar31 + (int)ppppppbVar7)" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((int)*pppppbVar31 + (int)ppppppbVar7)" (( "(") (binary_expression "(int)*pppppbVar31 + (int)ppppppbVar7" (cast_expression "(int)*pppppbVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*pppppbVar31" (* "*") (identifier "pppppbVar31"))) (+ "+") (cast_expression "(int)ppppppbVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppbVar7"))) () ")")))) (; ";")) (expression_statement "ppppppbVar7 = ppppppbVar7 + 2;" (assignment_expression "ppppppbVar7 = ppppppbVar7 + 2" (identifier "ppppppbVar7") (= "=") (binary_expression "ppppppbVar7 + 2" (identifier "ppppppbVar7") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "puVar15 = puVar14;" (assignment_expression "puVar15 = puVar14" (identifier "puVar15") (= "=") (identifier "puVar14")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(((uint)ppppbVar5[1] & 0xff000400) == 0x1000400)" (( "(") (binary_expression "((uint)ppppbVar5[1] & 0xff000400) == 0x1000400" (parenthesized_expression "((uint)ppppbVar5[1] & 0xff000400)" (( "(") (binary_expression "(uint)ppppbVar5[1] & 0xff000400" (cast_expression "(uint)ppppbVar5[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "ppppbVar5[1]" (identifier "ppppbVar5") ([ "[") (number_literal "1") (] "]"))) (& "&") (number_literal "0xff000400")) () ")")) (== "==") (number_literal "0x1000400")) () ")")) (; ";")) (} "}")) (else_clause "else {\n              puVar14 = auStack_183;\n            }" (else "else") (compound_statement "{\n              puVar14 = auStack_183;\n            }" ({ "{") (expression_statement "puVar14 = auStack_183;" (assignment_expression "puVar14 = auStack_183" (identifier "puVar14") (= "=") (identifier "auStack_183")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n            puVar14 = auStack_183;\n          }" (else "else") (compound_statement "{\n            puVar14 = auStack_183;\n          }" ({ "{") (expression_statement "puVar14 = auStack_183;" (assignment_expression "puVar14 = auStack_183" (identifier "puVar14") (= "=") (identifier "auStack_183")) (; ";")) (} "}")))) (expression_statement "pppppbStack_18c = (byte *****)0x0;" (assignment_expression "pppppbStack_18c = (byte *****)0x0" (identifier "pppppbStack_18c") (= "=") (cast_expression "(byte *****)0x0" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "uStack_188 = 0;" (assignment_expression "uStack_188 = 0" (identifier "uStack_188") (= "=") (number_literal "0")) (; ";")) (expression_statement "pppppppbVar20 = (byte *******)&bStack_184;" (assignment_expression "pppppppbVar20 = (byte *******)&bStack_184" (identifier "pppppppbVar20") (= "=") (cast_expression "(byte *******)&bStack_184" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "&bStack_184" (& "&") (identifier "bStack_184")))) (; ";")) (expression_statement "iVar11 = -(int)pppppppbVar20;" (assignment_expression "iVar11 = -(int)pppppppbVar20" (identifier "iVar11") (= "=") (unary_expression "-(int)pppppppbVar20" (- "-") (cast_expression "(int)pppppppbVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppbVar20")))) (; ";")) (expression_statement "ppppppbVar13 = (byte ******)&ppppppbStack_190;" (assignment_expression "ppppppbVar13 = (byte ******)&ppppppbStack_190" (identifier "ppppppbVar13") (= "=") (cast_expression "(byte ******)&ppppppbStack_190" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (pointer_expression "&ppppppbStack_190" (& "&") (identifier "ppppppbStack_190")))) (; ";")) (expression_statement "ppppppbVar21 = (byte ******)(puVar14 + iVar11);" (assignment_expression "ppppppbVar21 = (byte ******)(puVar14 + iVar11)" (identifier "ppppppbVar21") (= "=") (cast_expression "(byte ******)(puVar14 + iVar11)" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(puVar14 + iVar11)" (( "(") (binary_expression "puVar14 + iVar11" (identifier "puVar14") (+ "+") (identifier "iVar11")) () ")")))) (; ";")) (expression_statement "ppppppbVar7 = (byte ******)(*(code *)PTR_mbrtowc_004bf2ec)();" (assignment_expression "ppppppbVar7 = (byte ******)(*(code *)PTR_mbrtowc_004bf2ec)()" (identifier "ppppppbVar7") (= "=") (cast_expression "(byte ******)(*(code *)PTR_mbrtowc_004bf2ec)()" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "(*(code *)PTR_mbrtowc_004bf2ec)()" (parenthesized_expression "(*(code *)PTR_mbrtowc_004bf2ec)" (( "(") (pointer_expression "*(code *)PTR_mbrtowc_004bf2ec" (* "*") (cast_expression "(code *)PTR_mbrtowc_004bf2ec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbrtowc_004bf2ec"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if ((byte ******)(puVar14 + iVar11) == ppppppbVar7) {\n            pppppppbVar20 = (byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190);\n            ppppppbVar21 = &pppppbStack_18c;\n            ppppppbVar13 = (byte ******)&bStack_184;\n            iVar11 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar11 != -1) {\n              *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n            }\n          }" (if "if") (parenthesized_expression "((byte ******)(puVar14 + iVar11) == ppppppbVar7)" (( "(") (binary_expression "(byte ******)(puVar14 + iVar11) == ppppppbVar7" (cast_expression "(byte ******)(puVar14 + iVar11)" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(puVar14 + iVar11)" (( "(") (binary_expression "puVar14 + iVar11" (identifier "puVar14") (+ "+") (identifier "iVar11")) () ")"))) (== "==") (identifier "ppppppbVar7")) () ")")) (compound_statement "{\n            pppppppbVar20 = (byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190);\n            ppppppbVar21 = &pppppbStack_18c;\n            ppppppbVar13 = (byte ******)&bStack_184;\n            iVar11 = (*(code *)PTR_wcrtomb_004bf3dc)();\n            if (iVar11 != -1) {\n              *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n            }\n          }" ({ "{") (expression_statement "pppppppbVar20 = (byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190);" (assignment_expression "pppppppbVar20 = (byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190)" (identifier "pppppppbVar20") (= "=") (cast_expression "(byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190)" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190)" (parenthesized_expression "(*(code *)PTR_towlower_004bf37c)" (( "(") (pointer_expression "*(code *)PTR_towlower_004bf37c" (* "*") (cast_expression "(code *)PTR_towlower_004bf37c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_towlower_004bf37c"))) () ")")) (argument_list "(ppppppbStack_190)" (( "(") (identifier "ppppppbStack_190") () ")"))))) (; ";")) (expression_statement "ppppppbVar21 = &pppppbStack_18c;" (assignment_expression "ppppppbVar21 = &pppppbStack_18c" (identifier "ppppppbVar21") (= "=") (pointer_expression "&pppppbStack_18c" (& "&") (identifier "pppppbStack_18c"))) (; ";")) (expression_statement "ppppppbVar13 = (byte ******)&bStack_184;" (assignment_expression "ppppppbVar13 = (byte ******)&bStack_184" (identifier "ppppppbVar13") (= "=") (cast_expression "(byte ******)&bStack_184" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (pointer_expression "&bStack_184" (& "&") (identifier "bStack_184")))) (; ";")) (expression_statement "iVar11 = (*(code *)PTR_wcrtomb_004bf3dc)();" (assignment_expression "iVar11 = (*(code *)PTR_wcrtomb_004bf3dc)()" (identifier "iVar11") (= "=") (call_expression "(*(code *)PTR_wcrtomb_004bf3dc)()" (parenthesized_expression "(*(code *)PTR_wcrtomb_004bf3dc)" (( "(") (pointer_expression "*(code *)PTR_wcrtomb_004bf3dc" (* "*") (cast_expression "(code *)PTR_wcrtomb_004bf3dc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_wcrtomb_004bf3dc"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar11 != -1) {\n              *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n            }" (if "if") (parenthesized_expression "(iVar11 != -1)" (( "(") (binary_expression "iVar11 != -1" (identifier "iVar11") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n              *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n            }" ({ "{") (expression_statement "*(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;" (assignment_expression "*(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1" (pointer_expression "*(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184)" (* "*") (cast_expression "(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppppppbVar22 + (uint)bStack_184)" (( "(") (binary_expression "(int)ppppppbVar22 + (uint)bStack_184" (cast_expression "(int)ppppppbVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppbVar22")) (+ "+") (cast_expression "(uint)bStack_184" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bStack_184"))) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n        pppppppbVar20 = (byte *******)&DAT_00000006;\n        if (ppppppbVar13 == (byte ******)0x3) {\n          iStack_1ac = 0;\n          iVar11 = 0;\n          do {\n            uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac);\n            uVar30 = 0;\n            iVar24 = iVar11;\n            do {\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            } while (uVar30 != 0x20);\n            iVar11 = iVar11 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar11 != 0x100);\n        }\n        else if (ppppppbVar13 == (byte ******)&DAT_00000006) {\n          pppbVar25 = *ppppbVar5;\n          if (((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))) {\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }\n          else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }\n          if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }\n        }\n      }" (else "else") (compound_statement "{\n        pppppppbVar20 = (byte *******)&DAT_00000006;\n        if (ppppppbVar13 == (byte ******)0x3) {\n          iStack_1ac = 0;\n          iVar11 = 0;\n          do {\n            uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac);\n            uVar30 = 0;\n            iVar24 = iVar11;\n            do {\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            } while (uVar30 != 0x20);\n            iVar11 = iVar11 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar11 != 0x100);\n        }\n        else if (ppppppbVar13 == (byte ******)&DAT_00000006) {\n          pppbVar25 = *ppppbVar5;\n          if (((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))) {\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }\n          else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }\n          if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }\n        }\n      }" ({ "{") (expression_statement "pppppppbVar20 = (byte *******)&DAT_00000006;" (assignment_expression "pppppppbVar20 = (byte *******)&DAT_00000006" (identifier "pppppppbVar20") (= "=") (cast_expression "(byte *******)&DAT_00000006" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "&DAT_00000006" (& "&") (identifier "DAT_00000006")))) (; ";")) (if_statement "if (ppppppbVar13 == (byte ******)0x3) {\n          iStack_1ac = 0;\n          iVar11 = 0;\n          do {\n            uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac);\n            uVar30 = 0;\n            iVar24 = iVar11;\n            do {\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            } while (uVar30 != 0x20);\n            iVar11 = iVar11 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar11 != 0x100);\n        }\n        else if (ppppppbVar13 == (byte ******)&DAT_00000006) {\n          pppbVar25 = *ppppbVar5;\n          if (((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))) {\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }\n          else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }\n          if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }\n        }" (if "if") (parenthesized_expression "(ppppppbVar13 == (byte ******)0x3)" (( "(") (binary_expression "ppppppbVar13 == (byte ******)0x3" (identifier "ppppppbVar13") (== "==") (cast_expression "(byte ******)0x3" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x3"))) () ")")) (compound_statement "{\n          iStack_1ac = 0;\n          iVar11 = 0;\n          do {\n            uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac);\n            uVar30 = 0;\n            iVar24 = iVar11;\n            do {\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            } while (uVar30 != 0x20);\n            iVar11 = iVar11 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar11 != 0x100);\n        }" ({ "{") (expression_statement "iStack_1ac = 0;" (assignment_expression "iStack_1ac = 0" (identifier "iStack_1ac") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n            uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac);\n            uVar30 = 0;\n            iVar24 = iVar11;\n            do {\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            } while (uVar30 != 0x20);\n            iVar11 = iVar11 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          } while (iVar11 != 0x100);" (do "do") (compound_statement "{\n            uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac);\n            uVar30 = 0;\n            iVar24 = iVar11;\n            do {\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            } while (uVar30 != 0x20);\n            iVar11 = iVar11 + 0x20;\n            iStack_1ac = iStack_1ac + 4;\n          }" ({ "{") (expression_statement "uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac);" (assignment_expression "uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac)" (identifier "uVar27") (= "=") (pointer_expression "*(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac)" (* "*") (cast_expression "(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac)" (( "(") (binary_expression "(int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac" (cast_expression "(int)(*pppppbVar31)[(int)pppppbVar23 * 2]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "(*pppppbVar31)[(int)pppppbVar23 * 2]" (parenthesized_expression "(*pppppbVar31)" (( "(") (pointer_expression "*pppppbVar31" (* "*") (identifier "pppppbVar31")) () ")")) ([ "[") (binary_expression "(int)pppppbVar23 * 2" (cast_expression "(int)pppppbVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar23")) (* "*") (number_literal "2")) (] "]"))) (+ "+") (identifier "iStack_1ac")) () ")"))))) (; ";")) (expression_statement "uVar30 = 0;" (assignment_expression "uVar30 = 0" (identifier "uVar30") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar24 = iVar11;" (assignment_expression "iVar24 = iVar11" (identifier "iVar24") (= "=") (identifier "iVar11")) (; ";")) (do_statement "do {\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            } while (uVar30 != 0x20);" (do "do") (compound_statement "{\n              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }\n              uVar30 = uVar30 + 1;\n              iVar24 = iVar24 + 1;\n            }" ({ "{") (if_statement "if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }" (if "if") (parenthesized_expression "(((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0))" (( "(") (binary_expression "((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&\n                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)" (parenthesized_expression "((uVar27 >> (uVar30 & 0x1f) & 1) != 0)" (( "(") (binary_expression "(uVar27 >> (uVar30 & 0x1f) & 1) != 0" (parenthesized_expression "(uVar27 >> (uVar30 & 0x1f) & 1)" (( "(") (binary_expression "uVar27 >> (uVar30 & 0x1f) & 1" (binary_expression "uVar27 >> (uVar30 & 0x1f)" (identifier "uVar27") (>> ">>") (parenthesized_expression "(uVar30 & 0x1f)" (( "(") (binary_expression "uVar30 & 0x1f" (identifier "uVar30") (& "&") (number_literal "0x1f")) () ")"))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)" (( "(") (comma_expression "*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0" (assignment_expression "*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1" (pointer_expression "*(undefined1 *)((int)ppppppbVar22 + iVar24)" (* "*") (cast_expression "(undefined1 *)((int)ppppppbVar22 + iVar24)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppppppbVar22 + iVar24)" (( "(") (binary_expression "(int)ppppppbVar22 + iVar24" (cast_expression "(int)ppppppbVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppbVar22")) (+ "+") (identifier "iVar24")) () ")")))) (= "=") (number_literal "1")) (, ",") (binary_expression "uVar29 != 0" (identifier "uVar29") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n                iVar8 = iVar24;\n                if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }\n                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;\n              }" ({ "{") (expression_statement "iVar8 = iVar24;" (assignment_expression "iVar8 = iVar24" (identifier "iVar8") (= "=") (identifier "iVar24")) (; ";")) (if_statement "if (iVar24 + 0x80U < 0x180) {\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }" (if "if") (parenthesized_expression "(iVar24 + 0x80U < 0x180)" (( "(") (binary_expression "iVar24 + 0x80U < 0x180" (binary_expression "iVar24 + 0x80U" (identifier "iVar24") (+ "+") (number_literal "0x80U")) (< "<") (number_literal "0x180")) () ")")) (compound_statement "{\n                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);\n                }" ({ "{") (expression_statement "piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();" (assignment_expression "piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)()" (identifier "piVar9") (= "=") (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___ctype_tolower_loc_004bf16c)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_004bf16c)" (( "(") (pointer_expression "*(code *)PTR___ctype_tolower_loc_004bf16c" (* "*") (cast_expression "(code *)PTR___ctype_tolower_loc_004bf16c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_tolower_loc_004bf16c"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);" (assignment_expression "iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(*piVar9 + (uVar30 + iVar11) * 4)" (* "*") (cast_expression "(int *)(*piVar9 + (uVar30 + iVar11) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar9 + (uVar30 + iVar11) * 4)" (( "(") (binary_expression "*piVar9 + (uVar30 + iVar11) * 4" (pointer_expression "*piVar9" (* "*") (identifier "piVar9")) (+ "+") (binary_expression "(uVar30 + iVar11) * 4" (parenthesized_expression "(uVar30 + iVar11)" (( "(") (binary_expression "uVar30 + iVar11" (identifier "uVar30") (+ "+") (identifier "iVar11")) () ")")) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}"))) (expression_statement "*(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;" (assignment_expression "*(undefined1 *)((int)ppppppbVar22 + iVar8) = 1" (pointer_expression "*(undefined1 *)((int)ppppppbVar22 + iVar8)" (* "*") (cast_expression "(undefined1 *)((int)ppppppbVar22 + iVar8)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppppppbVar22 + iVar8)" (( "(") (binary_expression "(int)ppppppbVar22 + iVar8" (cast_expression "(int)ppppppbVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppbVar22")) (+ "+") (identifier "iVar8")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "uVar30 = uVar30 + 1;" (assignment_expression "uVar30 = uVar30 + 1" (identifier "uVar30") (= "=") (binary_expression "uVar30 + 1" (identifier "uVar30") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" (identifier "iVar24") (= "=") (binary_expression "iVar24 + 1" (identifier "iVar24") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar30 != 0x20)" (( "(") (binary_expression "uVar30 != 0x20" (identifier "uVar30") (!= "!=") (number_literal "0x20")) () ")")) (; ";")) (expression_statement "iVar11 = iVar11 + 0x20;" (assignment_expression "iVar11 = iVar11 + 0x20" (identifier "iVar11") (= "=") (binary_expression "iVar11 + 0x20" (identifier "iVar11") (+ "+") (number_literal "0x20"))) (; ";")) (expression_statement "iStack_1ac = iStack_1ac + 4;" (assignment_expression "iStack_1ac = iStack_1ac + 4" (identifier "iStack_1ac") (= "=") (binary_expression "iStack_1ac + 4" (identifier "iStack_1ac") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar11 != 0x100)" (( "(") (binary_expression "iVar11 != 0x100" (identifier "iVar11") (!= "!=") (number_literal "0x100")) () ")")) (; ";")) (} "}")) (else_clause "else if (ppppppbVar13 == (byte ******)&DAT_00000006) {\n          pppbVar25 = *ppppbVar5;\n          if (((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))) {\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }\n          else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }\n          if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }\n        }" (else "else") (if_statement "if (ppppppbVar13 == (byte ******)&DAT_00000006) {\n          pppbVar25 = *ppppbVar5;\n          if (((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))) {\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }\n          else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }\n        }\n        else {\n          if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }\n          if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }\n        }" (if "if") (parenthesized_expression "(ppppppbVar13 == (byte ******)&DAT_00000006)" (( "(") (binary_expression "ppppppbVar13 == (byte ******)&DAT_00000006" (identifier "ppppppbVar13") (== "==") (cast_expression "(byte ******)&DAT_00000006" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (pointer_expression "&DAT_00000006" (& "&") (identifier "DAT_00000006")))) () ")")) (compound_statement "{\n          pppbVar25 = *ppppbVar5;\n          if (((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))) {\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }\n          else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }\n        }" ({ "{") (expression_statement "pppbVar25 = *ppppbVar5;" (assignment_expression "pppbVar25 = *ppppbVar5" (identifier "pppbVar25") (= "=") (pointer_expression "*ppppbVar5" (* "*") (identifier "ppppbVar5"))) (; ";")) (if_statement "if (((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))) {\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }\n          else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }" (if "if") (parenthesized_expression "(((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0))))" (( "(") (binary_expression "((int)pppppbVar31[0x17] < 2) ||\n             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))" (parenthesized_expression "((int)pppppbVar31[0x17] < 2)" (( "(") (binary_expression "(int)pppppbVar31[0x17] < 2" (cast_expression "(int)pppppbVar31[0x17]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppbVar31[0x17]" (identifier "pppppbVar31") ([ "[") (number_literal "0x17") (] "]"))) (< "<") (number_literal "2")) () ")")) (|| "||") (parenthesized_expression "(((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)))" (( "(") (parenthesized_expression "((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0))" (( "(") (binary_expression "(pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&\n              (pppbVar25[8] == (byte **)0x0)" (parenthesized_expression "(pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4)))" (( "(") (binary_expression "pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))" (binary_expression "pppbVar25[9] == (byte **)0x0" (subscript_expression "pppbVar25[9]" (identifier "pppbVar25") ([ "[") (number_literal "9") (] "]")) (== "==") (cast_expression "(byte **)0x0" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) (&& "&&") (parenthesized_expression "(-1 < *(char *)(pppbVar25 + 4))" (( "(") (binary_expression "-1 < *(char *)(pppbVar25 + 4)" (number_literal "-1") (< "<") (pointer_expression "*(char *)(pppbVar25 + 4)" (* "*") (cast_expression "(char *)(pppbVar25 + 4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppbVar25 + 4)" (( "(") (binary_expression "pppbVar25 + 4" (identifier "pppbVar25") (+ "+") (number_literal "4")) () ")"))))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(pppbVar25[8] == (byte **)0x0)" (( "(") (binary_expression "pppbVar25[8] == (byte **)0x0" (subscript_expression "pppbVar25[8]" (identifier "pppbVar25") ([ "[") (number_literal "8") (] "]")) (== "==") (cast_expression "(byte **)0x0" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n            iVar11 = 0;\n            if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }\n          }" ({ "{") (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < (int)pppbVar25[5]) {\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }" (if "if") (parenthesized_expression "(0 < (int)pppbVar25[5])" (( "(") (binary_expression "0 < (int)pppbVar25[5]" (number_literal "0") (< "<") (cast_expression "(int)pppbVar25[5]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppbVar25[5]" (identifier "pppbVar25") ([ "[") (number_literal "5") (] "]")))) () ")")) (compound_statement "{\n              do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);\n            }" ({ "{") (do_statement "do {\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              } while (iVar11 < (int)pppbVar25[5]);" (do "do") (compound_statement "{\n                pppppbStack_18c = (byte *****)0x0;\n                uStack_188 = 0;\n                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];\n                ppppppbVar13 = (byte ******)&bStack_184;\n                ppppppbVar21 = &pppppbStack_18c;\n                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                uVar30 = (uint)bStack_184;\n                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }\n                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }\n                iVar11 = iVar11 + 1;\n              }" ({ "{") (expression_statement "pppppbStack_18c = (byte *****)0x0;" (assignment_expression "pppppbStack_18c = (byte *****)0x0" (identifier "pppppbStack_18c") (= "=") (cast_expression "(byte *****)0x0" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "uStack_188 = 0;" (assignment_expression "uStack_188 = 0" (identifier "uStack_188") (= "=") (number_literal "0")) (; ";")) (expression_statement "pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];" (assignment_expression "pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11]" (identifier "pppppppbVar20") (= "=") (cast_expression "(byte *******)(*pppbVar25)[iVar11]" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (subscript_expression "(*pppbVar25)[iVar11]" (parenthesized_expression "(*pppbVar25)" (( "(") (pointer_expression "*pppbVar25" (* "*") (identifier "pppbVar25")) () ")")) ([ "[") (identifier "iVar11") (] "]")))) (; ";")) (expression_statement "ppppppbVar13 = (byte ******)&bStack_184;" (assignment_expression "ppppppbVar13 = (byte ******)&bStack_184" (identifier "ppppppbVar13") (= "=") (cast_expression "(byte ******)&bStack_184" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (pointer_expression "&bStack_184" (& "&") (identifier "bStack_184")))) (; ";")) (expression_statement "ppppppbVar21 = &pppppbStack_18c;" (assignment_expression "ppppppbVar21 = &pppppbStack_18c" (identifier "ppppppbVar21") (= "=") (pointer_expression "&pppppbStack_18c" (& "&") (identifier "pppppbStack_18c"))) (; ";")) (expression_statement "iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();" (assignment_expression "iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)()" (identifier "iVar24") (= "=") (call_expression "(*(code *)PTR_wcrtomb_004bf3dc)()" (parenthesized_expression "(*(code *)PTR_wcrtomb_004bf3dc)" (( "(") (pointer_expression "*(code *)PTR_wcrtomb_004bf3dc" (* "*") (cast_expression "(code *)PTR_wcrtomb_004bf3dc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_wcrtomb_004bf3dc"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar30 = (uint)bStack_184;" (assignment_expression "uVar30 = (uint)bStack_184" (identifier "uVar30") (= "=") (cast_expression "(uint)bStack_184" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bStack_184"))) (; ";")) (if_statement "if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   ) {\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }" (if "if") (parenthesized_expression "((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)\n                   )" (( "(") (binary_expression "(iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)" (parenthesized_expression "(iVar24 != -1)" (( "(") (binary_expression "iVar24 != -1" (identifier "iVar24") (!= "!=") (number_literal "-1")) () ")")) (&& "&&") (parenthesized_expression "(*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)" (( "(") (comma_expression "*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0" (assignment_expression "*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1" (pointer_expression "*(undefined1 *)((int)ppppppbVar22 + uVar30)" (* "*") (cast_expression "(undefined1 *)((int)ppppppbVar22 + uVar30)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppppppbVar22 + uVar30)" (( "(") (binary_expression "(int)ppppppbVar22 + uVar30" (cast_expression "(int)ppppppbVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppbVar22")) (+ "+") (identifier "uVar30")) () ")")))) (= "=") (number_literal "1")) (, ",") (binary_expression "uVar29 != 0" (identifier "uVar29") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n                  if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }\n                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;\n                }" ({ "{") (if_statement "if (uVar30 + 0x80 < 0x180) {\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }" (if "if") (parenthesized_expression "(uVar30 + 0x80 < 0x180)" (( "(") (binary_expression "uVar30 + 0x80 < 0x180" (binary_expression "uVar30 + 0x80" (identifier "uVar30") (+ "+") (number_literal "0x80")) (< "<") (number_literal "0x180")) () ")")) (compound_statement "{\n                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();\n                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);\n                  }" ({ "{") (expression_statement "piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();" (assignment_expression "piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)()" (identifier "piVar9") (= "=") (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___ctype_tolower_loc_004bf16c)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_004bf16c)" (( "(") (pointer_expression "*(code *)PTR___ctype_tolower_loc_004bf16c" (* "*") (cast_expression "(code *)PTR___ctype_tolower_loc_004bf16c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_tolower_loc_004bf16c"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "uVar30 = *(uint *)(*piVar9 + uVar30 * 4);" (assignment_expression "uVar30 = *(uint *)(*piVar9 + uVar30 * 4)" (identifier "uVar30") (= "=") (pointer_expression "*(uint *)(*piVar9 + uVar30 * 4)" (* "*") (cast_expression "(uint *)(*piVar9 + uVar30 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar9 + uVar30 * 4)" (( "(") (binary_expression "*piVar9 + uVar30 * 4" (pointer_expression "*piVar9" (* "*") (identifier "piVar9")) (+ "+") (binary_expression "uVar30 * 4" (identifier "uVar30") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}"))) (expression_statement "*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;" (assignment_expression "*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1" (pointer_expression "*(undefined1 *)((int)ppppppbVar22 + uVar30)" (* "*") (cast_expression "(undefined1 *)((int)ppppppbVar22 + uVar30)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppppppbVar22 + uVar30)" (( "(") (binary_expression "(int)ppppppbVar22 + uVar30" (cast_expression "(int)ppppppbVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppbVar22")) (+ "+") (identifier "uVar30")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}"))) (if_statement "if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }" (if "if") (parenthesized_expression "((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17]))" (( "(") (binary_expression "(((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])" (parenthesized_expression "(((uint)ppppppbVar6[3] & 0x400000) != 0)" (( "(") (binary_expression "((uint)ppppppbVar6[3] & 0x400000) != 0" (parenthesized_expression "((uint)ppppppbVar6[3] & 0x400000)" (( "(") (binary_expression "(uint)ppppppbVar6[3] & 0x400000" (cast_expression "(uint)ppppppbVar6[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "ppppppbVar6[3]" (identifier "ppppppbVar6") ([ "[") (number_literal "3") (] "]"))) (& "&") (number_literal "0x400000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(1 < (int)pppppbVar31[0x17])" (( "(") (binary_expression "1 < (int)pppppbVar31[0x17]" (number_literal "1") (< "<") (cast_expression "(int)pppppbVar31[0x17]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppbVar31[0x17]" (identifier "pppppbVar31") ([ "[") (number_literal "0x17") (] "]")))) () ")"))) () ")")) (compound_statement "{\n                  pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);\n                  ppppppbVar13 = (byte ******)&bStack_184;\n                  ppppppbVar21 = &pppppbStack_18c;\n                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();\n                  if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }\n                }" ({ "{") (expression_statement "pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);" (assignment_expression "pppppppbVar20 =\n                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11])" (identifier "pppppppbVar20") (= "=") (cast_expression "(byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11])" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11])" (parenthesized_expression "(*(code *)PTR_towlower_004bf37c)" (( "(") (pointer_expression "*(code *)PTR_towlower_004bf37c" (* "*") (cast_expression "(code *)PTR_towlower_004bf37c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_towlower_004bf37c"))) () ")")) (argument_list "((*pppbVar25)[iVar11])" (( "(") (subscript_expression "(*pppbVar25)[iVar11]" (parenthesized_expression "(*pppbVar25)" (( "(") (pointer_expression "*pppbVar25" (* "*") (identifier "pppbVar25")) () ")")) ([ "[") (identifier "iVar11") (] "]")) () ")"))))) (; ";")) (expression_statement "ppppppbVar13 = (byte ******)&bStack_184;" (assignment_expression "ppppppbVar13 = (byte ******)&bStack_184" (identifier "ppppppbVar13") (= "=") (cast_expression "(byte ******)&bStack_184" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (pointer_expression "&bStack_184" (& "&") (identifier "bStack_184")))) (; ";")) (expression_statement "ppppppbVar21 = &pppppbStack_18c;" (assignment_expression "ppppppbVar21 = &pppppbStack_18c" (identifier "ppppppbVar21") (= "=") (pointer_expression "&pppppbStack_18c" (& "&") (identifier "pppppbStack_18c"))) (; ";")) (expression_statement "iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();" (assignment_expression "iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)()" (identifier "iVar24") (= "=") (call_expression "(*(code *)PTR_wcrtomb_004bf3dc)()" (parenthesized_expression "(*(code *)PTR_wcrtomb_004bf3dc)" (( "(") (pointer_expression "*(code *)PTR_wcrtomb_004bf3dc" (* "*") (cast_expression "(code *)PTR_wcrtomb_004bf3dc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_wcrtomb_004bf3dc"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar24 != -1) {\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }" (if "if") (parenthesized_expression "(iVar24 != -1)" (( "(") (binary_expression "iVar24 != -1" (identifier "iVar24") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;\n                  }" ({ "{") (expression_statement "*(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;" (assignment_expression "*(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1" (pointer_expression "*(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184)" (* "*") (cast_expression "(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppppppbVar22 + (uint)bStack_184)" (( "(") (binary_expression "(int)ppppppbVar22 + (uint)bStack_184" (cast_expression "(int)ppppppbVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppbVar22")) (+ "+") (cast_expression "(uint)bStack_184" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bStack_184"))) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" (identifier "iVar11") (= "=") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar11 < (int)pppbVar25[5])" (( "(") (binary_expression "iVar11 < (int)pppbVar25[5]" (identifier "iVar11") (< "<") (cast_expression "(int)pppbVar25[5]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppbVar25[5]" (identifier "pppbVar25") ([ "[") (number_literal "5") (] "]")))) () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }" (else "else") (compound_statement "{\n            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);\n            do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);\n          }" ({ "{") (expression_statement "ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);" (assignment_expression "ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff)" (identifier "ppppppbStack_190") (= "=") (cast_expression "(byte ******)((uint)ppppppbStack_190 & 0xffffff)" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "((uint)ppppppbStack_190 & 0xffffff)" (( "(") (binary_expression "(uint)ppppppbStack_190 & 0xffffff" (cast_expression "(uint)ppppppbStack_190" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppppbStack_190")) (& "&") (number_literal "0xffffff")) () ")")))) (; ";")) (do_statement "do {\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            } while (bVar1);" (do "do") (compound_statement "{\n              pppppbStack_18c = (byte *****)0x0;\n              uStack_188 = 0;\n              ppppppbVar21 = (byte ******)&DAT_00000001;\n              ppppppbVar13 = (byte ******)0x0;\n              pppppppbVar20 = &ppppppbStack_190;\n              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();\n              if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }\n              bVar1 = ppppppbStack_190._0_1_ != 0xff;\n              ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);\n            }" ({ "{") (expression_statement "pppppbStack_18c = (byte *****)0x0;" (assignment_expression "pppppbStack_18c = (byte *****)0x0" (identifier "pppppbStack_18c") (= "=") (cast_expression "(byte *****)0x0" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "uStack_188 = 0;" (assignment_expression "uStack_188 = 0" (identifier "uStack_188") (= "=") (number_literal "0")) (; ";")) (expression_statement "ppppppbVar21 = (byte ******)&DAT_00000001;" (assignment_expression "ppppppbVar21 = (byte ******)&DAT_00000001" (identifier "ppppppbVar21") (= "=") (cast_expression "(byte ******)&DAT_00000001" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (pointer_expression "&DAT_00000001" (& "&") (identifier "DAT_00000001")))) (; ";")) (expression_statement "ppppppbVar13 = (byte ******)0x0;" (assignment_expression "ppppppbVar13 = (byte ******)0x0" (identifier "ppppppbVar13") (= "=") (cast_expression "(byte ******)0x0" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppppppbVar20 = &ppppppbStack_190;" (assignment_expression "pppppppbVar20 = &ppppppbStack_190" (identifier "pppppppbVar20") (= "=") (pointer_expression "&ppppppbStack_190" (& "&") (identifier "ppppppbStack_190"))) (; ";")) (expression_statement "iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();" (assignment_expression "iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)()" (identifier "iVar11") (= "=") (call_expression "(*(code *)PTR_mbrtowc_004bf2ec)()" (parenthesized_expression "(*(code *)PTR_mbrtowc_004bf2ec)" (( "(") (pointer_expression "*(code *)PTR_mbrtowc_004bf2ec" (* "*") (cast_expression "(code *)PTR_mbrtowc_004bf2ec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_mbrtowc_004bf2ec"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar11 == -2) {\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }" (if "if") (parenthesized_expression "(iVar11 == -2)" (( "(") (binary_expression "iVar11 == -2" (identifier "iVar11") (== "==") (number_literal "-2")) () ")")) (compound_statement "{\n                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;\n              }" ({ "{") (expression_statement "*(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;" (assignment_expression "*(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1" (pointer_expression "*(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_)" (* "*") (cast_expression "(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_)" (( "(") (binary_expression "(int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_" (cast_expression "(int)ppppppbVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppbVar22")) (+ "+") (cast_expression "(uint)ppppppbStack_190._0_1_" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (field_expression "ppppppbStack_190._0_1_" (identifier "ppppppbStack_190") (. ".") (field_identifier "_0_1_")))) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "bVar1 = ppppppbStack_190._0_1_ != 0xff;" (assignment_expression "bVar1 = ppppppbStack_190._0_1_ != 0xff" (identifier "bVar1") (= "=") (binary_expression "ppppppbStack_190._0_1_ != 0xff" (field_expression "ppppppbStack_190._0_1_" (identifier "ppppppbStack_190") (. ".") (field_identifier "_0_1_")) (!= "!=") (number_literal "0xff"))) (; ";")) (expression_statement "ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);" (assignment_expression "ppppppbStack_190 =\n                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_)" (identifier "ppppppbStack_190") (= "=") (cast_expression "(byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_)" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_)" (identifier "CONCAT13") (argument_list "(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_)" (( "(") (binary_expression "ppppppbStack_190._0_1_ + 1" (field_expression "ppppppbStack_190._0_1_" (identifier "ppppppbStack_190") (. ".") (field_identifier "_0_1_")) (+ "+") (number_literal "1")) (, ",") (field_expression "ppppppbStack_190._1_3_" (identifier "ppppppbStack_190") (. ".") (field_identifier "_1_3_")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n          if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }\n          if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }\n        }" (else "else") (compound_statement "{\n          if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }\n          if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }\n        }" ({ "{") (if_statement "if (((uint)ppppppbVar13 & 0xfd) == 5) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }" (if "if") (parenthesized_expression "(((uint)ppppppbVar13 & 0xfd) == 5)" (( "(") (binary_expression "((uint)ppppppbVar13 & 0xfd) == 5" (parenthesized_expression "((uint)ppppppbVar13 & 0xfd)" (( "(") (binary_expression "(uint)ppppppbVar13 & 0xfd" (cast_expression "(uint)ppppppbVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppppbVar13")) (& "&") (number_literal "0xfd")) () ")")) (== "==") (number_literal "5")) () ")")) (compound_statement "{\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)();\n            ppppppbVar13 = ppppppbVar22;\n            break;\n          }" ({ "{") (expression_statement "ppppppbVar21 = (byte ******)0x100;" (assignment_expression "ppppppbVar21 = (byte ******)0x100" (identifier "ppppppbVar21") (= "=") (cast_expression "(byte ******)0x100" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x100"))) (; ";")) (expression_statement "pppppppbVar20 = (byte *******)&DAT_00000001;" (assignment_expression "pppppppbVar20 = (byte *******)&DAT_00000001" (identifier "pppppppbVar20") (= "=") (cast_expression "(byte *******)&DAT_00000001" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "&DAT_00000001" (& "&") (identifier "DAT_00000001")))) (; ";")) (expression_statement "(*(code *)PTR_memset_004bf260)();" (call_expression "(*(code *)PTR_memset_004bf260)()" (parenthesized_expression "(*(code *)PTR_memset_004bf260)" (( "(") (pointer_expression "*(code *)PTR_memset_004bf260" (* "*") (cast_expression "(code *)PTR_memset_004bf260" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memset_004bf260"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "ppppppbVar13 = ppppppbVar22;" (assignment_expression "ppppppbVar13 = ppppppbVar22" (identifier "ppppppbVar13") (= "=") (identifier "ppppppbVar22")) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (if_statement "if (ppppppbVar13 == (byte ******)0x2) {\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }" (if "if") (parenthesized_expression "(ppppppbVar13 == (byte ******)0x2)" (( "(") (binary_expression "ppppppbVar13 == (byte ******)0x2" (identifier "ppppppbVar13") (== "==") (cast_expression "(byte ******)0x2" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x2"))) () ")")) (compound_statement "{\n            ppppppbVar21 = (byte ******)0x100;\n            pppppppbVar20 = (byte *******)&DAT_00000001;\n            (*(code *)PTR_memset_004bf260)(ppppppbVar22);\n            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;\n            ppppppbVar13 = ppppppbVar6;\n            break;\n          }" ({ "{") (expression_statement "ppppppbVar21 = (byte ******)0x100;" (assignment_expression "ppppppbVar21 = (byte ******)0x100" (identifier "ppppppbVar21") (= "=") (cast_expression "(byte ******)0x100" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (number_literal "0x100"))) (; ";")) (expression_statement "pppppppbVar20 = (byte *******)&DAT_00000001;" (assignment_expression "pppppppbVar20 = (byte *******)&DAT_00000001" (identifier "pppppppbVar20") (= "=") (cast_expression "(byte *******)&DAT_00000001" (( "(") (type_descriptor "byte *******" (type_identifier "byte") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "&DAT_00000001" (& "&") (identifier "DAT_00000001")))) (; ";")) (expression_statement "(*(code *)PTR_memset_004bf260)(ppppppbVar22);" (call_expression "(*(code *)PTR_memset_004bf260)(ppppppbVar22)" (parenthesized_expression "(*(code *)PTR_memset_004bf260)" (( "(") (pointer_expression "*(code *)PTR_memset_004bf260" (* "*") (cast_expression "(code *)PTR_memset_004bf260" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memset_004bf260"))) () ")")) (argument_list "(ppppppbVar22)" (( "(") (identifier "ppppppbVar22") () ")"))) (; ";")) (expression_statement "*(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;" (assignment_expression "*(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80" (pointer_expression "*(byte *)(ppppppbVar6 + 7)" (* "*") (cast_expression "(byte *)(ppppppbVar6 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppppppbVar6 + 7)" (( "(") (binary_expression "ppppppbVar6 + 7" (identifier "ppppppbVar6") (+ "+") (number_literal "7")) () ")")))) (= "=") (binary_expression "*(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80" (binary_expression "*(byte *)(ppppppbVar6 + 7) & 0x7f" (pointer_expression "*(byte *)(ppppppbVar6 + 7)" (* "*") (cast_expression "(byte *)(ppppppbVar6 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppppppbVar6 + 7)" (( "(") (binary_expression "ppppppbVar6 + 7" (identifier "ppppppbVar6") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "0x7f")) (| "|") (number_literal "0x80"))) (; ";")) (expression_statement "ppppppbVar13 = ppppppbVar6;" (assignment_expression "ppppppbVar13 = ppppppbVar6" (identifier "ppppppbVar13") (= "=") (identifier "ppppppbVar6")) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (} "}")))))) (} "}")))) (expression_statement "iStack_1a8 = iStack_1a8 + 1;" (assignment_expression "iStack_1a8 = iStack_1a8 + 1" (identifier "iStack_1a8") (= "=") (binary_expression "iStack_1a8 + 1" (identifier "iStack_1a8") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iStack_1a8 < (int)pppppppbVar18[2])" (( "(") (binary_expression "iStack_1a8 < (int)pppppppbVar18[2]" (identifier "iStack_1a8") (< "<") (cast_expression "(int)pppppppbVar18[2]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "pppppppbVar18[2]" (identifier "pppppppbVar18") ([ "[") (number_literal "2") (] "]")))) () ")")) (; ";")) (} "}"))) (if_statement "if (ppppbStack_84 == *(byte *****)PTR___stack_chk_guard_004bf38c) {\n    return *(byte *****)PTR___stack_chk_guard_004bf38c;\n  }" (if "if") (parenthesized_expression "(ppppbStack_84 == *(byte *****)PTR___stack_chk_guard_004bf38c)" (( "(") (binary_expression "ppppbStack_84 == *(byte *****)PTR___stack_chk_guard_004bf38c" (identifier "ppppbStack_84") (== "==") (pointer_expression "*(byte *****)PTR___stack_chk_guard_004bf38c" (* "*") (cast_expression "(byte *****)PTR___stack_chk_guard_004bf38c" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "PTR___stack_chk_guard_004bf38c")))) () ")")) (compound_statement "{\n    return *(byte *****)PTR___stack_chk_guard_004bf38c;\n  }" ({ "{") (return_statement "return *(byte *****)PTR___stack_chk_guard_004bf38c;" (return "return") (pointer_expression "*(byte *****)PTR___stack_chk_guard_004bf38c" (* "*") (cast_expression "(byte *****)PTR___stack_chk_guard_004bf38c" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "PTR___stack_chk_guard_004bf38c"))) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR___stack_chk_fail_004bf34c)();" (call_expression "(*(code *)PTR___stack_chk_fail_004bf34c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_004bf34c)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_004bf34c" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_004bf34c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_004bf34c"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pppppbVar31 = ppppppbVar21[1];" (assignment_expression "pppppbVar31 = ppppppbVar21[1]" (identifier "pppppbVar31") (= "=") (subscript_expression "ppppppbVar21[1]" (identifier "ppppppbVar21") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (pppppbVar31 == (byte *****)0x0) {\n    *ppppppbVar13 = (byte *****)0x0;\n  }\n  else {\n    if (0 < (int)pppppbVar31) {\n      pppppbVar23 = ppppppbVar21[2];\n      pppppbVar26 = pppppbVar23 + (int)pppppbVar31;\n      do {\n        ppppbVar5 = *pppppbVar23;\n        pppppbVar23 = pppppbVar23 + 1;\n        pppppbVar31 = (byte *****)((int)pppppbVar31 + (int)ppppbVar5);\n      } while (pppppbVar23 != pppppbVar26);\n    }\n    pppppbVar23 = pppppppbVar20[8][((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3];\n    if (0 < (int)pppppbVar23) {\n      pppppbVar26 = (pppppppbVar20[8] + ((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3)[2];\n      pppppbVar28 = (byte *****)0x0;\n      do {\n        ppppbVar5 = *pppppbVar26;\n        if ((pppppbVar31 == (byte *****)*ppppbVar5) &&\n           (iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21), iVar11 != 0)) {\n          return ppppbVar5;\n        }\n        pppppbVar28 = (byte *****)((int)pppppbVar28 + 1);\n        pppppbVar26 = pppppbVar26 + 1;\n      } while (pppppbVar23 != pppppbVar28);\n    }\n    ppppbVar5 = (byte ****)(*(code *)PTR_calloc_004bf160)(0x38,1);\n    if (ppppbVar5 != (byte ****)0x0) {\n      iVar11 = FUN_0048c08c(ppppbVar5 + 1,ppppppbVar21);\n      if (iVar11 == 0) {\n        ppppbVar5[10] = (byte ***)(ppppbVar5 + 1);\n        if (0 < (int)ppppppbVar21[1]) {\n          ppppppbVar22 = *pppppppbVar20;\n          pppppbVar23 = ppppppbVar21[2];\n          pppppbVar26 = pppppbVar23 + (int)ppppppbVar21[1];\n          do {\n            ppppbVar10 = *pppppbVar23;\n            cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1);\n            if (cVar2 == '\x01') {\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }\n            pppppbVar23 = pppppbVar23 + 1;\n          } while (pppppbVar23 != pppppbVar26);\n        }\n        iVar11 = FUN_0048b6d0(pppppppbVar20,ppppbVar5,pppppbVar31);\n        if (iVar11 == 0) {\n          return ppppbVar5;\n        }\n        FUN_0048e3e8(ppppbVar5);\n      }\n      else {\n        (*(code *)PTR_free_004bf39c)(ppppbVar5);\n      }\n    }\n    *ppppppbVar13 = (byte *****)0xc;\n  }" (if "if") (parenthesized_expression "(pppppbVar31 == (byte *****)0x0)" (( "(") (binary_expression "pppppbVar31 == (byte *****)0x0" (identifier "pppppbVar31") (== "==") (cast_expression "(byte *****)0x0" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    *ppppppbVar13 = (byte *****)0x0;\n  }" ({ "{") (expression_statement "*ppppppbVar13 = (byte *****)0x0;" (assignment_expression "*ppppppbVar13 = (byte *****)0x0" (pointer_expression "*ppppppbVar13" (* "*") (identifier "ppppppbVar13")) (= "=") (cast_expression "(byte *****)0x0" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n    if (0 < (int)pppppbVar31) {\n      pppppbVar23 = ppppppbVar21[2];\n      pppppbVar26 = pppppbVar23 + (int)pppppbVar31;\n      do {\n        ppppbVar5 = *pppppbVar23;\n        pppppbVar23 = pppppbVar23 + 1;\n        pppppbVar31 = (byte *****)((int)pppppbVar31 + (int)ppppbVar5);\n      } while (pppppbVar23 != pppppbVar26);\n    }\n    pppppbVar23 = pppppppbVar20[8][((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3];\n    if (0 < (int)pppppbVar23) {\n      pppppbVar26 = (pppppppbVar20[8] + ((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3)[2];\n      pppppbVar28 = (byte *****)0x0;\n      do {\n        ppppbVar5 = *pppppbVar26;\n        if ((pppppbVar31 == (byte *****)*ppppbVar5) &&\n           (iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21), iVar11 != 0)) {\n          return ppppbVar5;\n        }\n        pppppbVar28 = (byte *****)((int)pppppbVar28 + 1);\n        pppppbVar26 = pppppbVar26 + 1;\n      } while (pppppbVar23 != pppppbVar28);\n    }\n    ppppbVar5 = (byte ****)(*(code *)PTR_calloc_004bf160)(0x38,1);\n    if (ppppbVar5 != (byte ****)0x0) {\n      iVar11 = FUN_0048c08c(ppppbVar5 + 1,ppppppbVar21);\n      if (iVar11 == 0) {\n        ppppbVar5[10] = (byte ***)(ppppbVar5 + 1);\n        if (0 < (int)ppppppbVar21[1]) {\n          ppppppbVar22 = *pppppppbVar20;\n          pppppbVar23 = ppppppbVar21[2];\n          pppppbVar26 = pppppbVar23 + (int)ppppppbVar21[1];\n          do {\n            ppppbVar10 = *pppppbVar23;\n            cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1);\n            if (cVar2 == '\x01') {\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }\n            pppppbVar23 = pppppbVar23 + 1;\n          } while (pppppbVar23 != pppppbVar26);\n        }\n        iVar11 = FUN_0048b6d0(pppppppbVar20,ppppbVar5,pppppbVar31);\n        if (iVar11 == 0) {\n          return ppppbVar5;\n        }\n        FUN_0048e3e8(ppppbVar5);\n      }\n      else {\n        (*(code *)PTR_free_004bf39c)(ppppbVar5);\n      }\n    }\n    *ppppppbVar13 = (byte *****)0xc;\n  }" (else "else") (compound_statement "{\n    if (0 < (int)pppppbVar31) {\n      pppppbVar23 = ppppppbVar21[2];\n      pppppbVar26 = pppppbVar23 + (int)pppppbVar31;\n      do {\n        ppppbVar5 = *pppppbVar23;\n        pppppbVar23 = pppppbVar23 + 1;\n        pppppbVar31 = (byte *****)((int)pppppbVar31 + (int)ppppbVar5);\n      } while (pppppbVar23 != pppppbVar26);\n    }\n    pppppbVar23 = pppppppbVar20[8][((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3];\n    if (0 < (int)pppppbVar23) {\n      pppppbVar26 = (pppppppbVar20[8] + ((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3)[2];\n      pppppbVar28 = (byte *****)0x0;\n      do {\n        ppppbVar5 = *pppppbVar26;\n        if ((pppppbVar31 == (byte *****)*ppppbVar5) &&\n           (iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21), iVar11 != 0)) {\n          return ppppbVar5;\n        }\n        pppppbVar28 = (byte *****)((int)pppppbVar28 + 1);\n        pppppbVar26 = pppppbVar26 + 1;\n      } while (pppppbVar23 != pppppbVar28);\n    }\n    ppppbVar5 = (byte ****)(*(code *)PTR_calloc_004bf160)(0x38,1);\n    if (ppppbVar5 != (byte ****)0x0) {\n      iVar11 = FUN_0048c08c(ppppbVar5 + 1,ppppppbVar21);\n      if (iVar11 == 0) {\n        ppppbVar5[10] = (byte ***)(ppppbVar5 + 1);\n        if (0 < (int)ppppppbVar21[1]) {\n          ppppppbVar22 = *pppppppbVar20;\n          pppppbVar23 = ppppppbVar21[2];\n          pppppbVar26 = pppppbVar23 + (int)ppppppbVar21[1];\n          do {\n            ppppbVar10 = *pppppbVar23;\n            cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1);\n            if (cVar2 == '\x01') {\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }\n            pppppbVar23 = pppppbVar23 + 1;\n          } while (pppppbVar23 != pppppbVar26);\n        }\n        iVar11 = FUN_0048b6d0(pppppppbVar20,ppppbVar5,pppppbVar31);\n        if (iVar11 == 0) {\n          return ppppbVar5;\n        }\n        FUN_0048e3e8(ppppbVar5);\n      }\n      else {\n        (*(code *)PTR_free_004bf39c)(ppppbVar5);\n      }\n    }\n    *ppppppbVar13 = (byte *****)0xc;\n  }" ({ "{") (if_statement "if (0 < (int)pppppbVar31) {\n      pppppbVar23 = ppppppbVar21[2];\n      pppppbVar26 = pppppbVar23 + (int)pppppbVar31;\n      do {\n        ppppbVar5 = *pppppbVar23;\n        pppppbVar23 = pppppbVar23 + 1;\n        pppppbVar31 = (byte *****)((int)pppppbVar31 + (int)ppppbVar5);\n      } while (pppppbVar23 != pppppbVar26);\n    }" (if "if") (parenthesized_expression "(0 < (int)pppppbVar31)" (( "(") (binary_expression "0 < (int)pppppbVar31" (number_literal "0") (< "<") (cast_expression "(int)pppppbVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar31"))) () ")")) (compound_statement "{\n      pppppbVar23 = ppppppbVar21[2];\n      pppppbVar26 = pppppbVar23 + (int)pppppbVar31;\n      do {\n        ppppbVar5 = *pppppbVar23;\n        pppppbVar23 = pppppbVar23 + 1;\n        pppppbVar31 = (byte *****)((int)pppppbVar31 + (int)ppppbVar5);\n      } while (pppppbVar23 != pppppbVar26);\n    }" ({ "{") (expression_statement "pppppbVar23 = ppppppbVar21[2];" (assignment_expression "pppppbVar23 = ppppppbVar21[2]" (identifier "pppppbVar23") (= "=") (subscript_expression "ppppppbVar21[2]" (identifier "ppppppbVar21") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "pppppbVar26 = pppppbVar23 + (int)pppppbVar31;" (assignment_expression "pppppbVar26 = pppppbVar23 + (int)pppppbVar31" (identifier "pppppbVar26") (= "=") (binary_expression "pppppbVar23 + (int)pppppbVar31" (identifier "pppppbVar23") (+ "+") (cast_expression "(int)pppppbVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar31")))) (; ";")) (do_statement "do {\n        ppppbVar5 = *pppppbVar23;\n        pppppbVar23 = pppppbVar23 + 1;\n        pppppbVar31 = (byte *****)((int)pppppbVar31 + (int)ppppbVar5);\n      } while (pppppbVar23 != pppppbVar26);" (do "do") (compound_statement "{\n        ppppbVar5 = *pppppbVar23;\n        pppppbVar23 = pppppbVar23 + 1;\n        pppppbVar31 = (byte *****)((int)pppppbVar31 + (int)ppppbVar5);\n      }" ({ "{") (expression_statement "ppppbVar5 = *pppppbVar23;" (assignment_expression "ppppbVar5 = *pppppbVar23" (identifier "ppppbVar5") (= "=") (pointer_expression "*pppppbVar23" (* "*") (identifier "pppppbVar23"))) (; ";")) (expression_statement "pppppbVar23 = pppppbVar23 + 1;" (assignment_expression "pppppbVar23 = pppppbVar23 + 1" (identifier "pppppbVar23") (= "=") (binary_expression "pppppbVar23 + 1" (identifier "pppppbVar23") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pppppbVar31 = (byte *****)((int)pppppbVar31 + (int)ppppbVar5);" (assignment_expression "pppppbVar31 = (byte *****)((int)pppppbVar31 + (int)ppppbVar5)" (identifier "pppppbVar31") (= "=") (cast_expression "(byte *****)((int)pppppbVar31 + (int)ppppbVar5)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "((int)pppppbVar31 + (int)ppppbVar5)" (( "(") (binary_expression "(int)pppppbVar31 + (int)ppppbVar5" (cast_expression "(int)pppppbVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar31")) (+ "+") (cast_expression "(int)ppppbVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppbVar5"))) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pppppbVar23 != pppppbVar26)" (( "(") (binary_expression "pppppbVar23 != pppppbVar26" (identifier "pppppbVar23") (!= "!=") (identifier "pppppbVar26")) () ")")) (; ";")) (} "}"))) (expression_statement "pppppbVar23 = pppppppbVar20[8][((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3];" (assignment_expression "pppppbVar23 = pppppppbVar20[8][((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3]" (identifier "pppppbVar23") (= "=") (subscript_expression "pppppppbVar20[8][((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3]" (subscript_expression "pppppppbVar20[8]" (identifier "pppppppbVar20") ([ "[") (number_literal "8") (] "]")) ([ "[") (binary_expression "((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3" (parenthesized_expression "((uint)pppppbVar31 & (uint)pppppppbVar20[0x11])" (( "(") (binary_expression "(uint)pppppbVar31 & (uint)pppppppbVar20[0x11]" (cast_expression "(uint)pppppbVar31" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppbVar31")) (& "&") (cast_expression "(uint)pppppppbVar20[0x11]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pppppppbVar20[0x11]" (identifier "pppppppbVar20") ([ "[") (number_literal "0x11") (] "]")))) () ")")) (* "*") (number_literal "3")) (] "]"))) (; ";")) (if_statement "if (0 < (int)pppppbVar23) {\n      pppppbVar26 = (pppppppbVar20[8] + ((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3)[2];\n      pppppbVar28 = (byte *****)0x0;\n      do {\n        ppppbVar5 = *pppppbVar26;\n        if ((pppppbVar31 == (byte *****)*ppppbVar5) &&\n           (iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21), iVar11 != 0)) {\n          return ppppbVar5;\n        }\n        pppppbVar28 = (byte *****)((int)pppppbVar28 + 1);\n        pppppbVar26 = pppppbVar26 + 1;\n      } while (pppppbVar23 != pppppbVar28);\n    }" (if "if") (parenthesized_expression "(0 < (int)pppppbVar23)" (( "(") (binary_expression "0 < (int)pppppbVar23" (number_literal "0") (< "<") (cast_expression "(int)pppppbVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar23"))) () ")")) (compound_statement "{\n      pppppbVar26 = (pppppppbVar20[8] + ((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3)[2];\n      pppppbVar28 = (byte *****)0x0;\n      do {\n        ppppbVar5 = *pppppbVar26;\n        if ((pppppbVar31 == (byte *****)*ppppbVar5) &&\n           (iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21), iVar11 != 0)) {\n          return ppppbVar5;\n        }\n        pppppbVar28 = (byte *****)((int)pppppbVar28 + 1);\n        pppppbVar26 = pppppbVar26 + 1;\n      } while (pppppbVar23 != pppppbVar28);\n    }" ({ "{") (expression_statement "pppppbVar26 = (pppppppbVar20[8] + ((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3)[2];" (assignment_expression "pppppbVar26 = (pppppppbVar20[8] + ((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3)[2]" (identifier "pppppbVar26") (= "=") (subscript_expression "(pppppppbVar20[8] + ((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3)[2]" (parenthesized_expression "(pppppppbVar20[8] + ((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3)" (( "(") (binary_expression "pppppppbVar20[8] + ((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3" (subscript_expression "pppppppbVar20[8]" (identifier "pppppppbVar20") ([ "[") (number_literal "8") (] "]")) (+ "+") (binary_expression "((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3" (parenthesized_expression "((uint)pppppbVar31 & (uint)pppppppbVar20[0x11])" (( "(") (binary_expression "(uint)pppppbVar31 & (uint)pppppppbVar20[0x11]" (cast_expression "(uint)pppppbVar31" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppbVar31")) (& "&") (cast_expression "(uint)pppppppbVar20[0x11]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pppppppbVar20[0x11]" (identifier "pppppppbVar20") ([ "[") (number_literal "0x11") (] "]")))) () ")")) (* "*") (number_literal "3"))) () ")")) ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "pppppbVar28 = (byte *****)0x0;" (assignment_expression "pppppbVar28 = (byte *****)0x0" (identifier "pppppbVar28") (= "=") (cast_expression "(byte *****)0x0" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) (; ";")) (do_statement "do {\n        ppppbVar5 = *pppppbVar26;\n        if ((pppppbVar31 == (byte *****)*ppppbVar5) &&\n           (iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21), iVar11 != 0)) {\n          return ppppbVar5;\n        }\n        pppppbVar28 = (byte *****)((int)pppppbVar28 + 1);\n        pppppbVar26 = pppppbVar26 + 1;\n      } while (pppppbVar23 != pppppbVar28);" (do "do") (compound_statement "{\n        ppppbVar5 = *pppppbVar26;\n        if ((pppppbVar31 == (byte *****)*ppppbVar5) &&\n           (iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21), iVar11 != 0)) {\n          return ppppbVar5;\n        }\n        pppppbVar28 = (byte *****)((int)pppppbVar28 + 1);\n        pppppbVar26 = pppppbVar26 + 1;\n      }" ({ "{") (expression_statement "ppppbVar5 = *pppppbVar26;" (assignment_expression "ppppbVar5 = *pppppbVar26" (identifier "ppppbVar5") (= "=") (pointer_expression "*pppppbVar26" (* "*") (identifier "pppppbVar26"))) (; ";")) (if_statement "if ((pppppbVar31 == (byte *****)*ppppbVar5) &&\n           (iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21), iVar11 != 0)) {\n          return ppppbVar5;\n        }" (if "if") (parenthesized_expression "((pppppbVar31 == (byte *****)*ppppbVar5) &&\n           (iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21), iVar11 != 0))" (( "(") (binary_expression "(pppppbVar31 == (byte *****)*ppppbVar5) &&\n           (iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21), iVar11 != 0)" (parenthesized_expression "(pppppbVar31 == (byte *****)*ppppbVar5)" (( "(") (binary_expression "pppppbVar31 == (byte *****)*ppppbVar5" (identifier "pppppbVar31") (== "==") (cast_expression "(byte *****)*ppppbVar5" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (pointer_expression "*ppppbVar5" (* "*") (identifier "ppppbVar5")))) () ")")) (&& "&&") (parenthesized_expression "(iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21), iVar11 != 0)" (( "(") (comma_expression "iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21), iVar11 != 0" (assignment_expression "iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21)" (identifier "iVar11") (= "=") (call_expression "FUN_00489de4(ppppbVar5 + 1,ppppppbVar21)" (identifier "FUN_00489de4") (argument_list "(ppppbVar5 + 1,ppppppbVar21)" (( "(") (binary_expression "ppppbVar5 + 1" (identifier "ppppbVar5") (+ "+") (number_literal "1")) (, ",") (identifier "ppppppbVar21") () ")")))) (, ",") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n          return ppppbVar5;\n        }" ({ "{") (return_statement "return ppppbVar5;" (return "return") (identifier "ppppbVar5") (; ";")) (} "}"))) (expression_statement "pppppbVar28 = (byte *****)((int)pppppbVar28 + 1);" (assignment_expression "pppppbVar28 = (byte *****)((int)pppppbVar28 + 1)" (identifier "pppppbVar28") (= "=") (cast_expression "(byte *****)((int)pppppbVar28 + 1)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "((int)pppppbVar28 + 1)" (( "(") (binary_expression "(int)pppppbVar28 + 1" (cast_expression "(int)pppppbVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar28")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pppppbVar26 = pppppbVar26 + 1;" (assignment_expression "pppppbVar26 = pppppbVar26 + 1" (identifier "pppppbVar26") (= "=") (binary_expression "pppppbVar26 + 1" (identifier "pppppbVar26") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pppppbVar23 != pppppbVar28)" (( "(") (binary_expression "pppppbVar23 != pppppbVar28" (identifier "pppppbVar23") (!= "!=") (identifier "pppppbVar28")) () ")")) (; ";")) (} "}"))) (expression_statement "ppppbVar5 = (byte ****)(*(code *)PTR_calloc_004bf160)(0x38,1);" (assignment_expression "ppppbVar5 = (byte ****)(*(code *)PTR_calloc_004bf160)(0x38,1)" (identifier "ppppbVar5") (= "=") (cast_expression "(byte ****)(*(code *)PTR_calloc_004bf160)(0x38,1)" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (call_expression "(*(code *)PTR_calloc_004bf160)(0x38,1)" (parenthesized_expression "(*(code *)PTR_calloc_004bf160)" (( "(") (pointer_expression "*(code *)PTR_calloc_004bf160" (* "*") (cast_expression "(code *)PTR_calloc_004bf160" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_calloc_004bf160"))) () ")")) (argument_list "(0x38,1)" (( "(") (number_literal "0x38") (, ",") (number_literal "1") () ")"))))) (; ";")) (if_statement "if (ppppbVar5 != (byte ****)0x0) {\n      iVar11 = FUN_0048c08c(ppppbVar5 + 1,ppppppbVar21);\n      if (iVar11 == 0) {\n        ppppbVar5[10] = (byte ***)(ppppbVar5 + 1);\n        if (0 < (int)ppppppbVar21[1]) {\n          ppppppbVar22 = *pppppppbVar20;\n          pppppbVar23 = ppppppbVar21[2];\n          pppppbVar26 = pppppbVar23 + (int)ppppppbVar21[1];\n          do {\n            ppppbVar10 = *pppppbVar23;\n            cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1);\n            if (cVar2 == '\x01') {\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }\n            pppppbVar23 = pppppbVar23 + 1;\n          } while (pppppbVar23 != pppppbVar26);\n        }\n        iVar11 = FUN_0048b6d0(pppppppbVar20,ppppbVar5,pppppbVar31);\n        if (iVar11 == 0) {\n          return ppppbVar5;\n        }\n        FUN_0048e3e8(ppppbVar5);\n      }\n      else {\n        (*(code *)PTR_free_004bf39c)(ppppbVar5);\n      }\n    }" (if "if") (parenthesized_expression "(ppppbVar5 != (byte ****)0x0)" (( "(") (binary_expression "ppppbVar5 != (byte ****)0x0" (identifier "ppppbVar5") (!= "!=") (cast_expression "(byte ****)0x0" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      iVar11 = FUN_0048c08c(ppppbVar5 + 1,ppppppbVar21);\n      if (iVar11 == 0) {\n        ppppbVar5[10] = (byte ***)(ppppbVar5 + 1);\n        if (0 < (int)ppppppbVar21[1]) {\n          ppppppbVar22 = *pppppppbVar20;\n          pppppbVar23 = ppppppbVar21[2];\n          pppppbVar26 = pppppbVar23 + (int)ppppppbVar21[1];\n          do {\n            ppppbVar10 = *pppppbVar23;\n            cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1);\n            if (cVar2 == '\x01') {\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }\n            pppppbVar23 = pppppbVar23 + 1;\n          } while (pppppbVar23 != pppppbVar26);\n        }\n        iVar11 = FUN_0048b6d0(pppppppbVar20,ppppbVar5,pppppbVar31);\n        if (iVar11 == 0) {\n          return ppppbVar5;\n        }\n        FUN_0048e3e8(ppppbVar5);\n      }\n      else {\n        (*(code *)PTR_free_004bf39c)(ppppbVar5);\n      }\n    }" ({ "{") (expression_statement "iVar11 = FUN_0048c08c(ppppbVar5 + 1,ppppppbVar21);" (assignment_expression "iVar11 = FUN_0048c08c(ppppbVar5 + 1,ppppppbVar21)" (identifier "iVar11") (= "=") (call_expression "FUN_0048c08c(ppppbVar5 + 1,ppppppbVar21)" (identifier "FUN_0048c08c") (argument_list "(ppppbVar5 + 1,ppppppbVar21)" (( "(") (binary_expression "ppppbVar5 + 1" (identifier "ppppbVar5") (+ "+") (number_literal "1")) (, ",") (identifier "ppppppbVar21") () ")")))) (; ";")) (if_statement "if (iVar11 == 0) {\n        ppppbVar5[10] = (byte ***)(ppppbVar5 + 1);\n        if (0 < (int)ppppppbVar21[1]) {\n          ppppppbVar22 = *pppppppbVar20;\n          pppppbVar23 = ppppppbVar21[2];\n          pppppbVar26 = pppppbVar23 + (int)ppppppbVar21[1];\n          do {\n            ppppbVar10 = *pppppbVar23;\n            cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1);\n            if (cVar2 == '\x01') {\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }\n            pppppbVar23 = pppppbVar23 + 1;\n          } while (pppppbVar23 != pppppbVar26);\n        }\n        iVar11 = FUN_0048b6d0(pppppppbVar20,ppppbVar5,pppppbVar31);\n        if (iVar11 == 0) {\n          return ppppbVar5;\n        }\n        FUN_0048e3e8(ppppbVar5);\n      }\n      else {\n        (*(code *)PTR_free_004bf39c)(ppppbVar5);\n      }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        ppppbVar5[10] = (byte ***)(ppppbVar5 + 1);\n        if (0 < (int)ppppppbVar21[1]) {\n          ppppppbVar22 = *pppppppbVar20;\n          pppppbVar23 = ppppppbVar21[2];\n          pppppbVar26 = pppppbVar23 + (int)ppppppbVar21[1];\n          do {\n            ppppbVar10 = *pppppbVar23;\n            cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1);\n            if (cVar2 == '\x01') {\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }\n            pppppbVar23 = pppppbVar23 + 1;\n          } while (pppppbVar23 != pppppbVar26);\n        }\n        iVar11 = FUN_0048b6d0(pppppppbVar20,ppppbVar5,pppppbVar31);\n        if (iVar11 == 0) {\n          return ppppbVar5;\n        }\n        FUN_0048e3e8(ppppbVar5);\n      }" ({ "{") (expression_statement "ppppbVar5[10] = (byte ***)(ppppbVar5 + 1);" (assignment_expression "ppppbVar5[10] = (byte ***)(ppppbVar5 + 1)" (subscript_expression "ppppbVar5[10]" (identifier "ppppbVar5") ([ "[") (number_literal "10") (] "]")) (= "=") (cast_expression "(byte ***)(ppppbVar5 + 1)" (( "(") (type_descriptor "byte ***" (type_identifier "byte") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(ppppbVar5 + 1)" (( "(") (binary_expression "ppppbVar5 + 1" (identifier "ppppbVar5") (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (0 < (int)ppppppbVar21[1]) {\n          ppppppbVar22 = *pppppppbVar20;\n          pppppbVar23 = ppppppbVar21[2];\n          pppppbVar26 = pppppbVar23 + (int)ppppppbVar21[1];\n          do {\n            ppppbVar10 = *pppppbVar23;\n            cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1);\n            if (cVar2 == '\x01') {\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }\n            pppppbVar23 = pppppbVar23 + 1;\n          } while (pppppbVar23 != pppppbVar26);\n        }" (if "if") (parenthesized_expression "(0 < (int)ppppppbVar21[1])" (( "(") (binary_expression "0 < (int)ppppppbVar21[1]" (number_literal "0") (< "<") (cast_expression "(int)ppppppbVar21[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "ppppppbVar21[1]" (identifier "ppppppbVar21") ([ "[") (number_literal "1") (] "]")))) () ")")) (compound_statement "{\n          ppppppbVar22 = *pppppppbVar20;\n          pppppbVar23 = ppppppbVar21[2];\n          pppppbVar26 = pppppbVar23 + (int)ppppppbVar21[1];\n          do {\n            ppppbVar10 = *pppppbVar23;\n            cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1);\n            if (cVar2 == '\x01') {\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }\n            pppppbVar23 = pppppbVar23 + 1;\n          } while (pppppbVar23 != pppppbVar26);\n        }" ({ "{") (expression_statement "ppppppbVar22 = *pppppppbVar20;" (assignment_expression "ppppppbVar22 = *pppppppbVar20" (identifier "ppppppbVar22") (= "=") (pointer_expression "*pppppppbVar20" (* "*") (identifier "pppppppbVar20"))) (; ";")) (expression_statement "pppppbVar23 = ppppppbVar21[2];" (assignment_expression "pppppbVar23 = ppppppbVar21[2]" (identifier "pppppbVar23") (= "=") (subscript_expression "ppppppbVar21[2]" (identifier "ppppppbVar21") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "pppppbVar26 = pppppbVar23 + (int)ppppppbVar21[1];" (assignment_expression "pppppbVar26 = pppppbVar23 + (int)ppppppbVar21[1]" (identifier "pppppbVar26") (= "=") (binary_expression "pppppbVar23 + (int)ppppppbVar21[1]" (identifier "pppppbVar23") (+ "+") (cast_expression "(int)ppppppbVar21[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "ppppppbVar21[1]" (identifier "ppppppbVar21") ([ "[") (number_literal "1") (] "]"))))) (; ";")) (do_statement "do {\n            ppppbVar10 = *pppppbVar23;\n            cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1);\n            if (cVar2 == '\x01') {\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }\n            pppppbVar23 = pppppbVar23 + 1;\n          } while (pppppbVar23 != pppppbVar26);" (do "do") (compound_statement "{\n            ppppbVar10 = *pppppbVar23;\n            cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1);\n            if (cVar2 == '\x01') {\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }\n            pppppbVar23 = pppppbVar23 + 1;\n          }" ({ "{") (expression_statement "ppppbVar10 = *pppppbVar23;" (assignment_expression "ppppbVar10 = *pppppbVar23" (identifier "ppppbVar10") (= "=") (pointer_expression "*pppppbVar23" (* "*") (identifier "pppppbVar23"))) (; ";")) (expression_statement "cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1);" (assignment_expression "cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1)" (identifier "cVar2") (= "=") (pointer_expression "*(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1)" (* "*") (cast_expression "(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppppppbVar22 + (int)ppppbVar10 * 2 + 1)" (( "(") (binary_expression "ppppppbVar22 + (int)ppppbVar10 * 2 + 1" (binary_expression "ppppppbVar22 + (int)ppppbVar10 * 2" (identifier "ppppppbVar22") (+ "+") (binary_expression "(int)ppppbVar10 * 2" (cast_expression "(int)ppppbVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppbVar10")) (* "*") (number_literal "2"))) (+ "+") (number_literal "1")) () ")"))))) (; ";")) (if_statement "if (cVar2 == '\x01') {\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }\n            else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }" (if "if") (parenthesized_expression "(cVar2 == '\x01')" (( "(") (binary_expression "cVar2 == '\x01'" (identifier "cVar2") (== "==") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")")) (compound_statement "{\n              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }\n            }" ({ "{") (if_statement "if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }" (if "if") (parenthesized_expression "(((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0)" (( "(") (binary_expression "((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0" (parenthesized_expression "((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000)" (( "(") (binary_expression "(uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000" (cast_expression "(uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "ppppppbVar22[(int)ppppbVar10 * 2 + 1]" (identifier "ppppppbVar22") ([ "[") (binary_expression "(int)ppppbVar10 * 2 + 1" (binary_expression "(int)ppppbVar10 * 2" (cast_expression "(int)ppppbVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppbVar10")) (* "*") (number_literal "2")) (+ "+") (number_literal "1")) (] "]"))) (& "&") (number_literal "0xffc000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                *(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);\nLAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }\n              }" ({ "{") (expression_statement "*(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);" (assignment_expression "*(byte *)(ppppbVar5 + 0xd) =\n                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2)" (pointer_expression "*(byte *)(ppppbVar5 + 0xd)" (* "*") (cast_expression "(byte *)(ppppbVar5 + 0xd)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppppbVar5 + 0xd)" (( "(") (binary_expression "ppppbVar5 + 0xd" (identifier "ppppbVar5") (+ "+") (number_literal "0xd")) () ")")))) (= "=") (binary_expression "*(byte *)(ppppbVar5 + 0xd) & 0xfb |\n                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2)" (binary_expression "*(byte *)(ppppbVar5 + 0xd) & 0xfb" (pointer_expression "*(byte *)(ppppbVar5 + 0xd)" (* "*") (cast_expression "(byte *)(ppppbVar5 + 0xd)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppppbVar5 + 0xd)" (( "(") (binary_expression "ppppbVar5 + 0xd" (identifier "ppppbVar5") (+ "+") (number_literal "0xd")) () ")")))) (& "&") (number_literal "0xfb")) (| "|") (call_expression "(byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2)" (( "(") (binary_expression "((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2" (parenthesized_expression "((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f)" (( "(") (binary_expression "(uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5) >> 0x1f" (call_expression "(uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5)" (( "(") (binary_expression "(int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |\n                                   (int)ppppbVar5[0xd] << 5" (binary_expression "(int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14" (cast_expression "(int)ppppppbVar22[(int)ppppbVar10 * 2 + 1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "ppppppbVar22[(int)ppppbVar10 * 2 + 1]" (identifier "ppppppbVar22") ([ "[") (binary_expression "(int)ppppbVar10 * 2 + 1" (binary_expression "(int)ppppbVar10 * 2" (cast_expression "(int)ppppbVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppbVar10")) (* "*") (number_literal "2")) (+ "+") (number_literal "1")) (] "]"))) (<< "<<") (number_literal "0x14")) (| "|") (binary_expression "(int)ppppbVar5[0xd] << 5" (cast_expression "(int)ppppbVar5[0xd]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "ppppbVar5[0xd]" (identifier "ppppbVar5") ([ "[") (number_literal "0xd") (] "]"))) (<< "<<") (number_literal "5"))) () ")"))) (>> ">>") (number_literal "0x1f")) () ")")) (<< "<<") (number_literal "2")) () ")"))))) (; ";")) (labeled_statement "LAB_004922f0:\n                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }" (statement_identifier "LAB_004922f0") (: ":") (if_statement "if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }" (if "if") (parenthesized_expression "(((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0)" (( "(") (binary_expression "((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0" (parenthesized_expression "((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000)" (( "(") (binary_expression "(uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000" (cast_expression "(uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "ppppppbVar22[(int)ppppbVar10 * 2 + 1]" (identifier "ppppppbVar22") ([ "[") (binary_expression "(int)ppppbVar10 * 2 + 1" (binary_expression "(int)ppppbVar10 * 2" (cast_expression "(int)ppppbVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppbVar10")) (* "*") (number_literal "2")) (+ "+") (number_literal "1")) (] "]"))) (& "&") (number_literal "0xffc000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\nLAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;\n                }" ({ "{") (expression_statement "bVar3 = *(byte *)(ppppbVar5 + 0xd);" (assignment_expression "bVar3 = *(byte *)(ppppbVar5 + 0xd)" (identifier "bVar3") (= "=") (pointer_expression "*(byte *)(ppppbVar5 + 0xd)" (* "*") (cast_expression "(byte *)(ppppbVar5 + 0xd)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppppbVar5 + 0xd)" (( "(") (binary_expression "ppppbVar5 + 0xd" (identifier "ppppbVar5") (+ "+") (number_literal "0xd")) () ")"))))) (; ";")) (labeled_statement "LAB_00492380:\n                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;" (statement_identifier "LAB_00492380") (: ":") (expression_statement "*(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;" (assignment_expression "*(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1" (pointer_expression "*(byte *)(ppppbVar5 + 0xd)" (* "*") (cast_expression "(byte *)(ppppbVar5 + 0xd)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppppbVar5 + 0xd)" (( "(") (binary_expression "ppppbVar5 + 0xd" (identifier "ppppbVar5") (+ "+") (number_literal "0xd")) () ")")))) (= "=") (binary_expression "bVar3 & 0xfe | 1" (binary_expression "bVar3 & 0xfe" (identifier "bVar3") (& "&") (number_literal "0xfe")) (| "|") (number_literal "1"))) (; ";"))) (} "}")))) (} "}"))) (} "}")) (else_clause "else {\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }" (else "else") (compound_statement "{\n              bVar3 = *(byte *)(ppppbVar5 + 0xd);\n              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);\n              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;\n              if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }\n            }" ({ "{") (expression_statement "bVar3 = *(byte *)(ppppbVar5 + 0xd);" (assignment_expression "bVar3 = *(byte *)(ppppbVar5 + 0xd)" (identifier "bVar3") (= "=") (pointer_expression "*(byte *)(ppppbVar5 + 0xd)" (* "*") (cast_expression "(byte *)(ppppbVar5 + 0xd)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppppbVar5 + 0xd)" (( "(") (binary_expression "ppppbVar5 + 0xd" (identifier "ppppbVar5") (+ "+") (number_literal "0xd")) () ")"))))) (; ";")) (expression_statement "bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2);" (assignment_expression "bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2)" (identifier "bVar4") (= "=") (call_expression "(byte)(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2)" (( "(") (binary_expression "((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<\n                            2" (parenthesized_expression "((uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f)" (( "(") (binary_expression "(uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f" (call_expression "(uint)((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14)" (( "(") (binary_expression "(int)ppppbVar5[0xd] << 5 |\n                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14" (binary_expression "(int)ppppbVar5[0xd] << 5" (cast_expression "(int)ppppbVar5[0xd]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "ppppbVar5[0xd]" (identifier "ppppbVar5") ([ "[") (number_literal "0xd") (] "]"))) (<< "<<") (number_literal "5")) (| "|") (binary_expression "(int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14" (cast_expression "(int)ppppppbVar22[(int)ppppbVar10 * 2 + 1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "ppppppbVar22[(int)ppppbVar10 * 2 + 1]" (identifier "ppppppbVar22") ([ "[") (binary_expression "(int)ppppbVar10 * 2 + 1" (binary_expression "(int)ppppbVar10 * 2" (cast_expression "(int)ppppbVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppbVar10")) (* "*") (number_literal "2")) (+ "+") (number_literal "1")) (] "]"))) (<< "<<") (number_literal "0x14"))) () ")"))) (>> ">>") (number_literal "0x1f")) () ")")) (<< "<<") (number_literal "2")) () ")")))) (; ";")) (expression_statement "*(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;" (assignment_expression "*(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4" (pointer_expression "*(byte *)(ppppbVar5 + 0xd)" (* "*") (cast_expression "(byte *)(ppppbVar5 + 0xd)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppppbVar5 + 0xd)" (( "(") (binary_expression "ppppbVar5 + 0xd" (identifier "ppppbVar5") (+ "+") (number_literal "0xd")) () ")")))) (= "=") (binary_expression "bVar3 & 0xfb | bVar4" (binary_expression "bVar3 & 0xfb" (identifier "bVar3") (& "&") (number_literal "0xfb")) (| "|") (identifier "bVar4"))) (; ";")) (if_statement "if (cVar2 == '\x02') {\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }\n              else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }" (if "if") (parenthesized_expression "(cVar2 == '\x02')" (( "(") (binary_expression "cVar2 == '\x02'" (identifier "cVar2") (== "==") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (compound_statement "{\n                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;\n              }" ({ "{") (expression_statement "*(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;" (assignment_expression "*(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8" (pointer_expression "*(byte *)(ppppbVar5 + 0xd)" (* "*") (cast_expression "(byte *)(ppppbVar5 + 0xd)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppppbVar5 + 0xd)" (( "(") (binary_expression "ppppbVar5 + 0xd" (identifier "ppppbVar5") (+ "+") (number_literal "0xd")) () ")")))) (= "=") (binary_expression "bVar3 & 0xf3 | bVar4 | 8" (binary_expression "bVar3 & 0xf3 | bVar4" (binary_expression "bVar3 & 0xf3" (identifier "bVar3") (& "&") (number_literal "0xf3")) (| "|") (identifier "bVar4")) (| "|") (number_literal "8"))) (; ";")) (} "}")) (else_clause "else {\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }" (else "else") (compound_statement "{\n                if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }\n                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;\n              }" ({ "{") (if_statement "if (cVar2 != '\x04') {\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }" (if "if") (parenthesized_expression "(cVar2 != '\x04')" (( "(") (binary_expression "cVar2 != '\x04'" (identifier "cVar2") (!= "!=") (char_literal "'\x04'" (' "'") (escape_sequence "\x04") (' "'"))) () ")")) (compound_statement "{\n                  if (cVar2 != '\f') goto LAB_004922f0;\n                  bVar3 = *(byte *)(ppppbVar5 + 0xd);\n                  goto LAB_00492380;\n                }" ({ "{") (if_statement "if (cVar2 != '\f') goto LAB_004922f0;" (if "if") (parenthesized_expression "(cVar2 != '\f')" (( "(") (binary_expression "cVar2 != '\f'" (identifier "cVar2") (!= "!=") (char_literal "'\f'" (' "'") (escape_sequence "\f") (' "'"))) () ")")) (goto_statement "goto LAB_004922f0;" (goto "goto") (statement_identifier "LAB_004922f0") (; ";"))) (expression_statement "bVar3 = *(byte *)(ppppbVar5 + 0xd);" (assignment_expression "bVar3 = *(byte *)(ppppbVar5 + 0xd)" (identifier "bVar3") (= "=") (pointer_expression "*(byte *)(ppppbVar5 + 0xd)" (* "*") (cast_expression "(byte *)(ppppbVar5 + 0xd)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppppbVar5 + 0xd)" (( "(") (binary_expression "ppppbVar5 + 0xd" (identifier "ppppbVar5") (+ "+") (number_literal "0xd")) () ")"))))) (; ";")) (goto_statement "goto LAB_00492380;" (goto "goto") (statement_identifier "LAB_00492380") (; ";")) (} "}"))) (expression_statement "*(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;" (assignment_expression "*(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2" (pointer_expression "*(byte *)(ppppbVar5 + 0xd)" (* "*") (cast_expression "(byte *)(ppppbVar5 + 0xd)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppppbVar5 + 0xd)" (( "(") (binary_expression "ppppbVar5 + 0xd" (identifier "ppppbVar5") (+ "+") (number_literal "0xd")) () ")")))) (= "=") (binary_expression "*(byte *)(ppppbVar5 + 0xd) & 0xfd | 2" (binary_expression "*(byte *)(ppppbVar5 + 0xd) & 0xfd" (pointer_expression "*(byte *)(ppppbVar5 + 0xd)" (* "*") (cast_expression "(byte *)(ppppbVar5 + 0xd)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ppppbVar5 + 0xd)" (( "(") (binary_expression "ppppbVar5 + 0xd" (identifier "ppppbVar5") (+ "+") (number_literal "0xd")) () ")")))) (& "&") (number_literal "0xfd")) (| "|") (number_literal "2"))) (; ";")) (} "}")))) (} "}")))) (expression_statement "pppppbVar23 = pppppbVar23 + 1;" (assignment_expression "pppppbVar23 = pppppbVar23 + 1" (identifier "pppppbVar23") (= "=") (binary_expression "pppppbVar23 + 1" (identifier "pppppbVar23") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pppppbVar23 != pppppbVar26)" (( "(") (binary_expression "pppppbVar23 != pppppbVar26" (identifier "pppppbVar23") (!= "!=") (identifier "pppppbVar26")) () ")")) (; ";")) (} "}"))) (expression_statement "iVar11 = FUN_0048b6d0(pppppppbVar20,ppppbVar5,pppppbVar31);" (assignment_expression "iVar11 = FUN_0048b6d0(pppppppbVar20,ppppbVar5,pppppbVar31)" (identifier "iVar11") (= "=") (call_expression "FUN_0048b6d0(pppppppbVar20,ppppbVar5,pppppbVar31)" (identifier "FUN_0048b6d0") (argument_list "(pppppppbVar20,ppppbVar5,pppppbVar31)" (( "(") (identifier "pppppppbVar20") (, ",") (identifier "ppppbVar5") (, ",") (identifier "pppppbVar31") () ")")))) (; ";")) (if_statement "if (iVar11 == 0) {\n          return ppppbVar5;\n        }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          return ppppbVar5;\n        }" ({ "{") (return_statement "return ppppbVar5;" (return "return") (identifier "ppppbVar5") (; ";")) (} "}"))) (expression_statement "FUN_0048e3e8(ppppbVar5);" (call_expression "FUN_0048e3e8(ppppbVar5)" (identifier "FUN_0048e3e8") (argument_list "(ppppbVar5)" (( "(") (identifier "ppppbVar5") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        (*(code *)PTR_free_004bf39c)(ppppbVar5);\n      }" (else "else") (compound_statement "{\n        (*(code *)PTR_free_004bf39c)(ppppbVar5);\n      }" ({ "{") (expression_statement "(*(code *)PTR_free_004bf39c)(ppppbVar5);" (call_expression "(*(code *)PTR_free_004bf39c)(ppppbVar5)" (parenthesized_expression "(*(code *)PTR_free_004bf39c)" (( "(") (pointer_expression "*(code *)PTR_free_004bf39c" (* "*") (cast_expression "(code *)PTR_free_004bf39c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_004bf39c"))) () ")")) (argument_list "(ppppbVar5)" (( "(") (identifier "ppppbVar5") () ")"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "*ppppppbVar13 = (byte *****)0xc;" (assignment_expression "*ppppppbVar13 = (byte *****)0xc" (pointer_expression "*ppppppbVar13" (* "*") (identifier "ppppppbVar13")) (= "=") (cast_expression "(byte *****)0xc" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0xc"))) (; ";")) (} "}")))) (return_statement "return (byte ****)0x0;" (return "return") (cast_expression "(byte ****)0x0" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0")) (; ";")) (} "}")))

/* WARNING: Removing unreachable block (ram,0x00491a68) */
/* WARNING: Unknown calling convention */

type_1 function_1(type_2 *pstr,type_3 var_1,int var_2)

{
  bool bVar1;
  type_4 var_5;
  char var_49;
  type_5 var_17;
  type_5 var_50;
  type_6 extraout_var;
  type_7 *var_33;
  int var_6;
  type_1 var_31;
  type_8 *var_12;
  type_3 IVar10;
  type_3 *var_10;
  type_4 *var_22;
  type_7 *var_36;
  type_9 *var_20;
  int var_40;
  int *var_51;
  type_3 *var_3;
  type_10 _Var18;
  type_11 var_24;
  type_3 *pIVar20;
  type_4 *var_19;
  type_7 *var_18;
  type_9 *var_7;
  int *var_41;
  type_8 var_11;
  type_7 *var_15;
  type_5 *var_23;
  type_7 *dfa;
  type_12 **var_35;
  type_7 *var_14;
  type_7 *set2;
  type_13 *var_47;
  int var_16;
  type_13 **var_46;
  type_11 var_39;
  type_3 *var_8;
  type_3 *var_9;
  type_3 *var_13;
  type_7 *unaff_s7;
  type_11 var_25;
  type_14 *unaff_s8;
  type_15 *prVar36;
  type_16 *pcVar37;
  int var_38;
  int var_42;
  type_9 var_37 [8];
  size_t sStack_188;
  type_7 rStack_184;
  type_1 var_43;
  type_2 *prStack_80;
  int iStack_7c;
  type_3 IStack_78;
  int iStack_74;
  type_3 *pIStack_70;
  type_3 *pIStack_6c;
  type_3 *pIStack_68;
  type_7 *prStack_64;
  type_14 *pmStack_60;
  type_16 *pcStack_5c;
  type_17 var_26;
  type_14 cur_state;
  type_4 var_21 [6];
  type_9 *var_34;
  
  var_33 = *(type_7 **)PTR___stack_chk_guard_004bf38c;
  var_3 = (type_3 *)(var_1 - pstr->raw_mbs_idx);
  if (var_1 < pstr->raw_mbs_idx) {
    if (1 < pstr->mb_cur_max) {
      *(type_9 *)&(pstr->cur_state).__count = 0;
      *(type_9 *)((int)&(pstr->cur_state).__count + 1) = 0;
      *(type_9 *)((int)&(pstr->cur_state).__count + 2) = 0;
      *(type_9 *)((int)&(pstr->cur_state).__count + 3) = 0;
      (pstr->cur_state).__value.__wchb[0] = '\0';
      (pstr->cur_state).__value.__wchb[1] = '\0';
      (pstr->cur_state).__value.__wchb[2] = '\0';
      (pstr->cur_state).__value.__wchb[3] = '\0';
    }
    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';
    var_24 = 6;
    if ((var_2 & 1U) != 0) {
      var_24 = 4;
    }
    pstr->tip_context = var_24;
    var_3 = (type_3 *)var_1;
    if (pstr->mbs_allocated == '\0') {
      pstr->mbs = pstr->raw_mbs;
    }
  }
  var_15 = (type_7 *)var_1;
  var_14 = (type_7 *)var_2;
  if (var_3 != (type_3 *)0x0) {
    if ((int)var_3 < pstr->valid_raw_len) {
      if (pstr->offsets_needed == '\0') {
        var_24 = var_4(pstr,(type_3)((int)var_3 + -1),var_2);
        pstr->tip_context = var_24;
        var_15 = (type_7 *)((int)var_3 * 4);
        if (pstr->mb_cur_max < 2) {
          var_5 = pstr->mbs_allocated;
        }
        else {
          var_14 = (type_7 *)((pstr->valid_len - (int)var_3) * 4);
          var_15 = (type_7 *)(pstr->wcs + (int)var_3);
          (*(type_16 *)PTR_memmove_004bf3a4)();
          var_5 = pstr->mbs_allocated;
        }
        if (var_5 == '\0') {
          var_6 = pstr->valid_len;
        }
        else {
          var_14 = (type_7 *)(pstr->valid_len - (int)var_3);
          var_15 = (type_7 *)(pstr->mbs + (int)var_3);
          (*(type_16 *)PTR_memmove_004bf3a4)();
          var_6 = pstr->valid_len;
        }
        pstr->valid_len = var_6 - (int)var_3;
        pstr->valid_raw_len = pstr->valid_raw_len - (int)var_3;
        goto LAB_00491360;
      }
      var_13 = (type_3 *)pstr->valid_len;
      var_9 = pstr->offsets;
      var_7 = (type_9 *)0x0;
      var_10 = var_13;
      do {
        var_8 = (type_3 *)((int)(var_7 + (int)var_10) / 2);
        var_6 = var_9[(int)var_8];
        bVar1 = (int)var_7 < (int)var_8;
        pIVar20 = var_8;
        if (var_6 <= (int)var_3) {
          var_7 = (type_9 *)((int)var_8 + 1);
          if ((int)var_3 <= var_6) goto LAB_0049145c;
          bVar1 = (int)var_7 < (int)var_10;
          pIVar20 = var_10;
        }
        var_10 = pIVar20;
      } while (bVar1);
      if (var_6 < (int)var_3) {
        var_8 = (type_3 *)((int)var_8 + 1);
      }
LAB_0049145c:
      var_15 = (type_7 *)((int)var_8 + -1);
      var_24 = var_4(pstr,(type_3)var_15,var_2);
      pstr->tip_context = var_24;
      if ((((int)var_13 <= (int)var_3) || (var_3 != var_8)) ||
         (var_2 = (int)var_3 * 4, (type_3 *)var_9[(int)var_8] != var_3)) {
        pstr->len = (type_3)((int)var_3 + (pstr->raw_len - var_1));
        pstr->stop = (type_3)((int)var_3 + (pstr->raw_stop - var_1));
        pstr->offsets_needed = '\0';
        if ((0 < (int)var_8) && ((type_3 *)var_9[(int)((int)var_8 + 0x3fffffff)] == var_3))
        {
          var_10 = var_9 + (int)(var_8 + 0x10000000);
          do {
            var_8 = (type_3 *)((int)var_8 + -1);
            if (var_8 == (type_3 *)0x0) break;
            pIVar20 = var_10 + -2;
            var_10 = var_10 + -1;
          } while ((type_3 *)*pIVar20 == var_3);
        }
        if ((int)var_8 < (int)var_13) {
          var_12 = pstr->wcs + (int)var_8;
          var_11 = *var_12;
          while (var_11 == 0xffffffff) {
            var_8 = (type_3 *)((int)var_8 + 1);
            var_12 = var_12 + 1;
            if (var_13 == var_8) goto LAB_0049164c;
            var_11 = *var_12;
          }
LAB_00491534:
          var_8 = var_9 + (int)var_8;
          var_14 = (type_7 *)(*var_8 - (int)var_3);
          pstr->valid_len = (type_3)var_14;
          if (var_14 == (type_7 *)0x0) goto LAB_00491650;
          if (0 < (int)var_14) {
            var_6 = 0;
            do {
              pstr->wcs[var_6] = 0xffffffff;
              var_6 = var_6 + 1;
              var_14 = (type_7 *)pstr->valid_len;
            } while (var_6 < (int)var_14);
          }
          var_15 = (type_7 *)0xff;
          (*(type_16 *)PTR_memset_004bf260)(pstr->mbs);
          IVar10 = pstr->valid_len;
        }
        else {
          if (var_8 != var_13) goto LAB_00491534;
LAB_0049164c:
          pstr->valid_len = 0;
LAB_00491650:
          IVar10 = pstr->valid_len;
        }
        pstr->valid_raw_len = IVar10;
        goto LAB_00491360;
      }
      (*(type_16 *)PTR_memmove_004bf3a4)
                (pstr->wcs,pstr->wcs + (int)var_3,((int)var_13 - (int)var_3) * 4);
      var_14 = (type_7 *)(pstr->valid_len - (int)var_3);
      var_15 = (type_7 *)(pstr->mbs + (int)var_3);
      (*(type_16 *)PTR_memmove_004bf3a4)();
      var_6 = pstr->valid_len - (int)var_3;
      pstr->valid_len = var_6;
      pstr->valid_raw_len = pstr->valid_raw_len - (int)var_3;
      if (var_6 < 1) goto LAB_00491360;
      var_6 = 0;
      do {
        pstr->offsets[var_6] = *(int *)((int)pstr->offsets + var_2) - (int)var_3;
        var_6 = var_6 + 1;
        var_2 = var_2 + 4;
      } while (var_6 < pstr->valid_len);
      var_5 = pstr->mbs_allocated;
    }
    else {
      var_13 = (type_3 *)pstr->valid_len;
      if (pstr->offsets_needed != '\0') {
        pstr->len = (type_3)((int)var_3 + (pstr->raw_len - var_1));
        pstr->stop = (type_3)((int)var_3 + (pstr->raw_stop - var_1));
        pstr->offsets_needed = '\0';
      }
      pstr->valid_len = 0;
      if (pstr->mb_cur_max < 2) {
        var_15 = (type_7 *)
                  (type_11)*(type_5 *)((int)var_3 + (int)(pstr->raw_mbs + pstr->raw_mbs_idx + -1));
        pstr->valid_raw_len = 0;
        if (pstr->trans != (type_4 *)0x0) {
          var_15 = (type_7 *)(type_11)pstr->trans[(int)var_15];
        }
        var_24 = 1;
        if ((pstr->word_char[(int)var_15 >> 5] >> ((type_11)var_15 & 0x1f) & 1) == 0) {
          var_24 = 2;
          if (var_15 == (type_7 *)&DAT_0000000a) {
            if (pstr->newline_anchor == '\0') {
              var_24 = 0;
            }
          }
          else {
            var_24 = 0;
          }
        }
        pstr->tip_context = var_24;
        goto LAB_00491360;
      }
      if (pstr->is_utf8 == '\0') {
LAB_0049179c:
        var_6 = pstr->raw_mbs_idx;
LAB_004917a0:
        var_10 = (type_3 *)(var_6 + pstr->valid_raw_len);
        if ((int)var_10 < var_1) {
          unaff_s8 = &pstr->cur_state;
          unaff_s7 = (type_7 *)&var_26;
          do {
            var_9 = var_10;
            var_16 = pstr->raw_len - (int)var_9;
            cur_state.__count = (pstr->cur_state).__count;
            cur_state.__value = (pstr->cur_state).__value;
            var_15 = (type_7 *)((int)var_9 + (int)pstr->raw_mbs);
            var_6 = (*(type_16 *)PTR_mbrtowc_004bf2ec)(unaff_s7,var_15,var_16,unaff_s8);
            var_8 = (type_3 *)var_26;
            if (0xfffffffc < var_6 - 1U) {
              if (var_6 == 0) {
                var_8 = (type_3 *)0x0;
              }
              else if (var_16 == 0) {
                var_8 = (type_3 *)0x0;
              }
              else {
                var_8 = (type_3 *)(type_11)*(type_5 *)((int)var_9 + (int)pstr->raw_mbs);
              }
              (pstr->cur_state).__count = cur_state.__count;
              (pstr->cur_state).__value = cur_state.__value;
              var_6 = 1;
            }
            var_10 = (type_3 *)((int)var_9 + var_6);
          } while ((int)var_10 < var_1);
          pstr->valid_len = (int)var_10 - var_1;
          if (var_8 != (type_3 *)0xffffffff) goto LAB_00491834;
        }
        else {
          pstr->valid_len = (int)var_10 - var_1;
        }
        var_15 = (type_7 *)((int)var_13 + -1);
        var_24 = var_4(pstr,(type_3)var_15,var_2);
        pstr->tip_context = var_24;
      }
      else {
        var_14 = (type_7 *)pstr->raw_mbs;
        var_8 = (type_3 *)((int)var_14->word_char + pstr->raw_mbs_idx + -0x60);
        var_15 = (type_7 *)((int)var_8 + ((int)var_3 - pstr->mb_cur_max));
        if (var_15 <= var_14) {
          var_15 = var_14;
        }
        var_14 = (type_7 *)((int)var_8 + (int)((int)var_3 + -1));
        var_9 = var_3;
        if (var_14 < var_15) goto LAB_0049179c;
        var_17 = *(type_5 *)&var_14->nodes;
        unaff_s7 = var_14;
        while ((var_17 & 0xc0) == 0x80) {
          var_18 = (type_7 *)((int)&unaff_s7[-1].subexp_map + 3);
          unaff_s7 = var_14;
          if (var_18 < var_15) goto LAB_0049179c;
          unaff_s7 = var_18;
          var_17 = *(type_5 *)&var_18->nodes;
        }
        var_19 = pstr->trans;
        var_7 = (type_9 *)((int)var_8 + (pstr->len - (int)unaff_s7));
        var_15 = unaff_s7;
        if (var_19 != (type_4 *)0x0) {
          var_20 = (type_9 *)0x6;
          if ((int)var_7 < 7) {
            var_20 = var_7;
          }
          if ((int)(var_20 + -1) < 0) {
            var_15 = (type_7 *)var_21;
          }
          else {
            var_23 = (type_5 *)((int)unaff_s7->word_char + (int)(var_20 + -0x61));
            var_22 = var_21 + (int)var_20;
            do {
              var_22[-1] = var_19[*var_23];
              var_22 = var_22 + -1;
              var_23 = var_23 + -1;
            } while (var_22 != var_21);
            var_15 = (type_7 *)var_21;
          }
        }
        cur_state.__count = 0;
        cur_state.__value.__wch = 0;
        var_24 = (*(type_16 *)PTR_mbrtowc_004bf2ec)(&var_26);
        var_25 = (int)((int)var_8 + (int)var_3) - (int)unaff_s7;
        if ((var_24 < var_25) || (0xfffffffd < var_24)) goto LAB_0049179c;
        *(type_9 *)&(pstr->cur_state).__count = 0;
        *(type_9 *)((int)&(pstr->cur_state).__count + 1) = 0;
        *(type_9 *)((int)&(pstr->cur_state).__count + 2) = 0;
        *(type_9 *)((int)&(pstr->cur_state).__count + 3) = 0;
        (pstr->cur_state).__value.__wchb[0] = '\0';
        (pstr->cur_state).__value.__wchb[1] = '\0';
        (pstr->cur_state).__value.__wchb[2] = '\0';
        (pstr->cur_state).__value.__wchb[3] = '\0';
        pstr->valid_len = var_24 - var_25;
        var_8 = (type_3 *)var_26;
        if (var_26 == -1) {
          var_6 = pstr->raw_mbs_idx;
          goto LAB_004917a0;
        }
LAB_00491834:
        if (pstr->word_ops_used == '\0') {
LAB_00491840:
          var_24 = 2;
          if (var_8 == (type_3 *)&DAT_0000000a) {
            if (pstr->newline_anchor == '\0') {
              var_24 = 0;
            }
          }
          else {
            var_24 = 0;
          }
        }
        else {
          var_6 = (*(type_16 *)PTR_iswalnum_004bf25c)(var_8);
          var_24 = 1;
          if (var_6 == 0) {
            if (var_8 == (type_3 *)0x5f) {
              pstr->tip_context = 1;
              goto LAB_00491854;
            }
            goto LAB_00491840;
          }
        }
        pstr->tip_context = var_24;
      }
LAB_00491854:
      var_14 = (type_7 *)pstr->valid_len;
      if (var_14 == (type_7 *)0x0) {
LAB_00491860:
        IVar10 = pstr->valid_len;
      }
      else {
        var_6 = 0;
        if (0 < (int)var_14) {
          do {
            pstr->wcs[var_6] = 0xffffffff;
            var_6 = var_6 + 1;
            var_14 = (type_7 *)pstr->valid_len;
          } while (var_6 < (int)var_14);
        }
        var_15 = (type_7 *)0xff;
        if (pstr->mbs_allocated == '\0') goto LAB_00491860;
        (*(type_16 *)PTR_memset_004bf260)(pstr->mbs);
        IVar10 = pstr->valid_len;
      }
      pstr->valid_raw_len = IVar10;
LAB_00491360:
      var_5 = pstr->mbs_allocated;
    }
    if (var_5 == '\0') {
      pstr->mbs = pstr->mbs + (int)var_3;
    }
  }
  pstr->raw_mbs_idx = var_1;
  var_6 = pstr->len - (int)var_3;
  pstr->len = var_6;
  var_16 = pstr->stop - (int)var_3;
  pstr->stop = var_16;
  if (pstr->mb_cur_max < 2) {
    if (pstr->mbs_allocated == '\0') {
      pstr->valid_len = var_6;
      goto LAB_00491aa8;
    }
    if (pstr->icase == '\0') {
      if (pstr->trans == (type_4 *)0x0) goto LAB_00491aa8;
      var_27(pstr);
      pstr->cur_idx = 0;
    }
    else {
      var_28(pstr);
      pstr->cur_idx = 0;
    }
  }
  else {
    if (pstr->icase == '\0') {
      var_29(pstr);
      pstr->cur_idx = 0;
      goto LAB_00491aac;
    }
    var_31 = var_30(pstr);
    if (var_31 != var_32) goto LAB_00491ab0;
LAB_00491aa8:
    pstr->cur_idx = 0;
  }
LAB_00491aac:
  var_31 = var_32;
LAB_00491ab0:
  if (var_33 == *(type_7 **)PTR___stack_chk_guard_004bf38c) {
    return var_31;
  }
  pcVar37 = re_compile_fastmap_iter;
  (*(type_16 *)PTR___stack_chk_fail_004bf34c)();
  var_43 = *(type_1 *)PTR___stack_chk_guard_004bf38c;
  prVar36 = var_33->nodes;
  if (*(int *)&prVar36[0xb].field_0x4 == 1) {
    var_24 = (type_11)((int)var_33->nexts << 9) >> 0x1f;
  }
  else {
    var_24 = 0;
  }
  var_18 = var_33;
  dfa = var_15;
  set2 = var_14;
  prStack_80 = pstr;
  iStack_7c = var_16;
  IStack_78 = var_1;
  iStack_74 = var_2;
  pIStack_70 = var_8;
  pIStack_6c = var_9;
  pIStack_68 = var_13;
  prStack_64 = unaff_s7;
  pmStack_60 = unaff_s8;
  pcStack_5c = pcVar37;
  if (0 < (int)var_15->nodes_len) {
    var_42 = 0;
    do {
      var_6 = var_15->nexts[var_42];
      var_36 = (type_7 *)(var_6 * 8);
      var_23 = (type_5 *)((int)&var_36->nodes + (int)(prVar36->opr).sbcset);
      var_18 = (type_7 *)(type_11)var_23[4];
      dfa = (type_7 *)&DAT_00000001;
      if (var_18 == (type_7 *)&DAT_00000001) {
        var_25 = (type_11)*var_23;
        *(type_9 *)((int)&var_14->nodes + var_25) = 1;
        if (var_24 != 0) {
          if (var_25 + 0x80 < 0x180) {
            var_41 = (int *)(*(type_16 *)PTR___ctype_tolower_loc_004bf16c)();
            var_25 = *(type_11 *)(*var_41 + var_25 * 4);
          }
          *(type_9 *)((int)&var_14->nodes + var_25) = 1;
        }
        if (((int)var_33->nexts << 9 < 0) &&
           (var_18 = var_36, 1 < *(int *)&prVar36[0xb].field_0x4)) {
          rStack_184.nodes._0_1_ = *(type_5 *)((int)&var_36->nodes + (int)(prVar36->opr).sbcset);
          if ((re_bitset_ptr_t)(var_6 + 1U) < prVar36[1].opr.sbcset) {
            var_20 = (type_9 *)((int)&var_36->nodes_len + (int)(prVar36->opr).sbcset);
            var_35 = (type_12 **)&var_36->org_indices;
            if ((*(type_11 *)(var_20 + 4) & 0xff000400) == 0x1000400) {
              var_34 = (type_9 *)((int)&rStack_184.nodes + 1);
              do {
                var_7 = var_34 + 1;
                *var_34 = *var_20;
                if (prVar36[1].opr.sbcset <= var_7 + (var_6 - (int)&rStack_184)) break;
                var_20 = (type_9 *)((int)(prVar36->opr).sbcset + (int)var_35);
                var_35 = var_35 + 2;
                var_34 = var_7;
              } while ((*(type_11 *)(var_20 + 4) & 0xff000400) == 0x1000400);
            }
            else {
              var_7 = (type_9 *)((int)&rStack_184.nodes + 1);
            }
          }
          else {
            var_7 = (type_9 *)((int)&rStack_184.nodes + 1);
          }
          var_37._4_4_ = 0;
          sStack_188 = 0;
          dfa = &rStack_184;
          var_6 = -(int)dfa;
          var_18 = (type_7 *)var_37;
          set2 = (type_7 *)(var_7 + var_6);
          var_36 = (type_7 *)(*(type_16 *)PTR_mbrtowc_004bf2ec)();
          if ((type_7 *)(var_7 + var_6) == var_36) {
            dfa = (type_7 *)(*(type_16 *)PTR_towlower_004bf37c)(var_37._0_4_);
            set2 = (type_7 *)(var_37 + 4);
            var_18 = &rStack_184;
            var_6 = (*(type_16 *)PTR_wcrtomb_004bf3dc)();
            if (var_6 != -1) {
              *(type_9 *)((int)&var_14->nodes + (type_11)rStack_184.nodes._0_1_) = 1;
            }
          }
        }
      }
      else {
        dfa = (type_7 *)&DAT_00000006;
        if (var_18 == (type_7 *)0x3) {
          var_38 = 0;
          var_6 = 0;
          do {
            var_39 = *(type_11 *)(*(int *)((int)&var_36->nodes + (int)(prVar36->opr).sbcset) +
                              var_38);
            var_25 = 0;
            var_16 = var_6;
            do {
              if (((var_39 >> (var_25 & 0x1f) & 1) != 0) &&
                 (*(type_9 *)((int)&var_14->nodes + var_16) = 1, var_24 != 0)) {
                var_40 = var_16;
                if (var_16 + 0x80U < 0x180) {
                  var_41 = (int *)(*(type_16 *)PTR___ctype_tolower_loc_004bf16c)();
                  var_40 = *(int *)(*var_41 + (var_25 + var_6) * 4);
                }
                *(type_9 *)((int)&var_14->nodes + var_40) = 1;
              }
              var_25 = var_25 + 1;
              var_16 = var_16 + 1;
            } while (var_25 != 0x20);
            var_6 = var_6 + 0x20;
            var_38 = var_38 + 4;
          } while (var_6 != 0x100);
        }
        else if (var_18 == (type_7 *)&DAT_00000006) {
          var_41 = *(int **)var_23;
          if ((*(int *)&prVar36[0xb].field_0x4 < 2) ||
             (((var_41[9] == 0 && (-1 < *(char *)(var_41 + 4))) && (var_41[8] == 0)))) {
            var_6 = 0;
            if (0 < var_41[5]) {
              do {
                var_37._4_4_ = 0;
                sStack_188 = 0;
                dfa = *(type_7 **)(*var_41 + var_6 * 4);
                var_18 = &rStack_184;
                set2 = (type_7 *)(var_37 + 4);
                var_16 = (*(type_16 *)PTR_wcrtomb_004bf3dc)();
                var_25 = (type_11)rStack_184.nodes._0_1_;
                if ((var_16 != -1) &&
                   (*(type_9 *)((int)&var_14->nodes + var_25) = 1, var_24 != 0)) {
                  if (var_25 + 0x80 < 0x180) {
                    var_51 = (int *)(*(type_16 *)PTR___ctype_tolower_loc_004bf16c)();
                    var_25 = *(type_11 *)(*var_51 + var_25 * 4);
                  }
                  *(type_9 *)((int)&var_14->nodes + var_25) = 1;
                }
                if ((((type_11)var_33->nexts & 0x400000) != 0) && (1 < *(int *)&prVar36[0xb].field_0x4)
                   ) {
                  dfa = (type_7 *)
                        (*(type_16 *)PTR_towlower_004bf37c)(*(type_18 *)(*var_41 + var_6 * 4));
                  var_18 = &rStack_184;
                  set2 = (type_7 *)(var_37 + 4);
                  var_16 = (*(type_16 *)PTR_wcrtomb_004bf3dc)();
                  if (var_16 != -1) {
                    *(type_9 *)((int)&var_14->nodes + (type_11)rStack_184.nodes._0_1_) = 1;
                  }
                }
                var_6 = var_6 + 1;
              } while (var_6 < var_41[5]);
            }
          }
          else {
            var_37._0_4_ = var_37._0_4_ & 0xffffff;
            do {
              var_37._4_4_ = 0;
              sStack_188 = 0;
              set2 = (type_7 *)&DAT_00000001;
              var_18 = (type_7 *)0x0;
              dfa = (type_7 *)var_37;
              var_6 = (*(type_16 *)PTR_mbrtowc_004bf2ec)();
              if (var_6 == -2) {
                *(type_9 *)((int)&var_14->nodes + (type_11)var_37[0]) = 1;
              }
              bVar1 = var_37[0] != 0xff;
              var_37[0] = var_37[0] + 1;
            } while (bVar1);
          }
        }
        else {
          if (((type_11)var_18 & 0xfd) == 5) {
            set2 = (type_7 *)0x100;
            dfa = (type_7 *)&DAT_00000001;
            (*(type_16 *)PTR_memset_004bf260)();
            var_18 = var_14;
            break;
          }
          if (var_18 == (type_7 *)0x2) {
            set2 = (type_7 *)0x100;
            dfa = (type_7 *)&DAT_00000001;
            (*(type_16 *)PTR_memset_004bf260)(var_14);
            *(type_5 *)&var_33->inveclosures = *(type_5 *)&var_33->inveclosures & 0x7f | 0x80;
            var_18 = var_33;
            break;
          }
        }
      }
      var_42 = var_42 + 1;
    } while (var_42 < (int)var_15->nodes_len);
  }
  if (var_43 == *(type_1 *)PTR___stack_chk_guard_004bf38c) {
    return *(type_1 *)PTR___stack_chk_guard_004bf38c;
  }
  (*(type_16 *)PTR___stack_chk_fail_004bf34c)();
  var_24 = set2->nodes_alloc;
  if (var_24 == 0) {
    var_18->nodes = (type_15 *)0x0;
  }
  else {
    if (0 < (int)var_24) {
      var_3 = (type_3 *)set2->nodes_len;
      var_10 = var_3 + var_24;
      do {
        var_6 = *var_3;
        var_3 = var_3 + 1;
        var_24 = var_24 + var_6;
      } while (var_3 != var_10);
    }
    var_6 = dfa->state_table[var_24 & dfa->state_hash_mask].num;
    if (0 < var_6) {
      var_46 = dfa->state_table[var_24 & dfa->state_hash_mask].array;
      var_16 = 0;
      do {
        var_47 = *var_46;
        if ((var_24 == var_47->hash) &&
           (_Var18 = var_44(&var_47->nodes,(type_12 *)set2),
           var_45(extraout_var,_Var18) != 0)) {
          return (type_1)var_47;
        }
        var_16 = var_16 + 1;
        var_46 = var_46 + 1;
      } while (var_6 != var_16);
    }
    var_47 = (type_13 *)(*(type_16 *)PTR_calloc_004bf160)(0x38,1);
    if (var_47 != (type_13 *)0x0) {
      var_31 = var_48(&var_47->nodes,(type_12 *)set2);
      if (var_31 == var_32) {
        var_47->entrance_nodes = &var_47->nodes;
        if (0 < (int)set2->nodes_alloc) {
          prVar36 = dfa->nodes;
          var_41 = (int *)set2->nodes_len;
          var_51 = var_41 + set2->nodes_alloc;
          do {
            var_6 = *var_41;
            var_49 = prVar36[var_6].field_0x4;
            if (var_49 == '\x01') {
              if ((*(type_11 *)&prVar36[var_6].field_0x4 & 0xffc000) != 0) {
                var_47->field_0x34 =
                     var_47->field_0x34 & 0xfb |
                     (type_5)(((type_11)(*(int *)&prVar36[var_6].field_0x4 << 0x14 |
                                   *(int *)&var_47->field_0x34 << 5) >> 0x1f) << 2);
LAB_004922f0:
                if ((*(type_11 *)&prVar36[var_6].field_0x4 & 0xffc000) != 0) {
                  var_17 = var_47->field_0x34;
LAB_00492380:
                  var_47->field_0x34 = var_17 & 0xfe | 1;
                }
              }
            }
            else {
              var_17 = var_47->field_0x34;
              var_50 = (type_5)(((type_11)(*(int *)&var_47->field_0x34 << 5 |
                                    *(int *)&prVar36[var_6].field_0x4 << 0x14) >> 0x1f) << 2);
              var_47->field_0x34 = var_17 & 0xfb | var_50;
              if (var_49 == '\x02') {
                var_47->field_0x34 = var_17 & 0xf3 | var_50 | 8;
              }
              else {
                if (var_49 != '\x04') {
                  if (var_49 != '\f') goto LAB_004922f0;
                  var_17 = var_47->field_0x34;
                  goto LAB_00492380;
                }
                var_47->field_0x34 = var_47->field_0x34 & 0xfd | 2;
              }
            }
            var_41 = var_41 + 1;
          } while (var_41 != var_51);
        }
        var_31 = var_52(dfa,var_47,var_24);
        if (var_31 == var_32) {
          return (type_1)var_47;
        }
        var_53(var_47);
      }
      else {
        (*(type_16 *)PTR_free_004bf39c)(var_47);
      }
    }
    var_18->nodes = (type_15 *)0xc;
  }
  return var_32;
}


(translation_unit (function_definition type: (type_identifier) 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: (identifier)))))))))))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) 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: (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: (identifier)))))))) (declaration type: (primitive_type) 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: (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: (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: (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: (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: (identifier))))))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) 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: (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: (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: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (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: (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: (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: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (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: (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: (primitive_type) 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: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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)))))))) 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: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))))) (expression_statement (assignment_expression left: (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: (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: (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: (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)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (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: (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: (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)))))))) (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: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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: (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: (subscript_expression argument: (identifier) index: (number_literal)) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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))) (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 (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (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: (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: (primitive_type)) value: (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))) (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))))) (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: (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: (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))) (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)) 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: (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: (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)))) condition: (parenthesized_expression (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: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (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))))) (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 (binary_expression left: (identifier) right: (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))))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (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 (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: (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: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) right: (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (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)))))) (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: (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)))) (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: (pointer_expression argument: (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (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: (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))))))) value: (number_literal)))) consequence: (goto_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: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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: (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: (subscript_expression argument: (identifier) index: (number_literal)))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (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 (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) 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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (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))))))) 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: (primitive_type)) value: (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))) (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: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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: (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 (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 (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: (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: (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: (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: (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: (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: (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: (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 (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (pointer_expression argument: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (parenthesized_expression (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: (subscript_expression argument: (identifier) index: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (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 (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)))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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: (subscript_expression argument: (identifier) index: (number_literal))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (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: (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: (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: (pointer_expression argument: (identifier))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) (identifier))))) (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: (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))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (parenthesized_expression (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: (pointer_expression argument: (identifier))))))))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (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: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (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)))) 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: (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: (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: (identifier) right: (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: (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: (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))))) (expression_statement (assignment_expression left: (identifier) right: (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)))))) (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: (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)) 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)) 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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (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: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (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)))))))) (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: (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: (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: (identifier)) right: (identifier)))) (expression_statement (assignment_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: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (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: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (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: (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: (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: (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: (pointer_expression argument: (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: (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: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_identifier)))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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))))))) 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))))))) value: (number_literal)))) consequence: (compound_statement (labeled_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: (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 (do_statement body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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: (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: (subscript_expression argument: (identifier) index: (number_literal)))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (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: (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: (goto_statement label: (statement_identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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))))))))))) (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: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (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: (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: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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 (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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))))) 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))))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator 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: (subscript_expression argument: (identifier) index: (number_literal)) 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)))))))) value: (identifier))))) consequence: (compound_statement (return_statement (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_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))))) value: (number_literal)))) consequence: (compound_statement (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))))) alternative: (else_clause (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))) (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: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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 (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: (identifier) right: (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))))))) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (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: (pointer_expression argument: (identifier))))) 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: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))))) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))))) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (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))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (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: (type_identifier) 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: (subscript_expression argument: (identifier) index: (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))))) 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: (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: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (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: (pointer_expression argument: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (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: (pointer_expression argument: (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))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (number_literal))))) alternative: (else_clause (compound_statement (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: (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)))) (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: (unary_expression argument: (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))))))) 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))))))) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (if_statement 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))))))) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) 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: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (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))))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))) right: (number_literal)))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))))) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (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: (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))))) alternative: (else_clause (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: (pointer_expression argument: (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_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))) value: (number_literal))) right: (parenthesized_expression (binary_expression left: (number_literal) 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))))))))) right: (parenthesized_expression (binary_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))) value: (number_literal))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (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)))))) 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 declarator: (abstract_pointer_declarator)))))))) value: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (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: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))))) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))))) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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))) 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: (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 (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (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: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) 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)) value: (subscript_expression argument: (identifier) index: (number_literal))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (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: (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)))))) 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: (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))))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (field_expression argument: (identifier) field: (field_identifier))))))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (field_expression argument: (identifier) field: (field_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: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal)) (field_expression argument: (identifier) field: (field_identifier)))))))) condition: (parenthesized_expression (identifier))))))) alternative: (else_clause (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: (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: (pointer_expression argument: (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (break_statement))) (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))))))) 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))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (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: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (break_statement))))))))))) (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: (subscript_expression argument: (identifier) index: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) 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 (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)))))) 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))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (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: (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: (number_literal))))) alternative: (else_clause (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: (subscript_expression argument: (identifier) index: (number_literal)))) (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: (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)))))) 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)))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (binary_expression left: (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: (subscript_expression argument: (identifier) index: (number_literal))))) 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: (subscript_expression argument: (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: (type_identifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) right: (number_literal)))) 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)))))) value: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (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)))))) value: (pointer_expression argument: (identifier))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (return_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)))))) 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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (number_literal) (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))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) 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: (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: (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: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_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: (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))) right: (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: (subscript_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: (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))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))))))))))) alternative: (else_clause (compound_statement (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: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_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))) 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: (identifier) right: (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: (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: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)) right: (number_literal))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (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: (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))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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: (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: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (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: (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))))) value: (number_literal))))))

/* WARNING: Removing unreachable block (ram,0x00491a68) */
/* WARNING: Type propagation algorithm not settling */

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

{
  bool bVar1;
  char cVar2;
  byte bVar3;
  byte bVar4;
  byte ****ppppbVar5;
  byte ******ppppppbVar6;
  byte ******ppppppbVar7;
  int iVar8;
  int *piVar9;
  byte ****ppppbVar10;
  int iVar11;
  byte *******pppppppbVar12;
  byte ******ppppppbVar13;
  undefined1 *puVar14;
  byte *pbVar16;
  byte *pbVar17;
  byte *******pppppppbVar18;
  byte *******pppppppbVar19;
  byte *******pppppppbVar20;
  byte ******ppppppbVar21;
  byte ******ppppppbVar22;
  byte *****pppppbVar23;
  int iVar24;
  byte ***pppbVar25;
  byte *****pppppbVar26;
  uint uVar27;
  byte *****pppppbVar28;
  byte *******unaff_s4;
  byte *******unaff_s5;
  byte *******unaff_s6;
  uint uVar29;
  byte *******unaff_s7;
  uint uVar30;
  int *unaff_s8;
  byte *****pppppbVar31;
  code *pcVar32;
  int iStack_1ac;
  int iStack_1a8;
  byte ******ppppppbStack_190;
  byte *****pppppbStack_18c;
  undefined4 uStack_188;
  byte bStack_184;
  undefined1 auStack_183 [255];
  byte ****ppppbStack_84;
  int *piStack_80;
  int iStack_7c;
  byte *******pppppppbStack_78;
  byte ******ppppppbStack_74;
  byte *******pppppppbStack_70;
  byte *******pppppppbStack_6c;
  byte *******pppppppbStack_68;
  byte *******pppppppbStack_64;
  int *piStack_60;
  code *pcStack_5c;
  byte *******local_40;
  int local_3c;
  int local_38;
  byte ******appppppbStack_34 [3];
  undefined1 *puVar15;
  
  appppppbStack_34[2] = *(byte *******)PTR___stack_chk_guard_004bf38c;
  pppppppbVar20 = (byte *******)((int)param_2 - param_1[6]);
  if ((int)param_2 < param_1[6]) {
    if (1 < param_1[0x14]) {
      *(undefined1 *)(param_1 + 4) = 0;
      *(undefined1 *)((int)param_1 + 0x11) = 0;
      *(undefined1 *)((int)param_1 + 0x12) = 0;
      *(undefined1 *)((int)param_1 + 0x13) = 0;
      *(undefined1 *)(param_1 + 5) = 0;
      *(undefined1 *)((int)param_1 + 0x15) = 0;
      *(undefined1 *)((int)param_1 + 0x16) = 0;
      *(undefined1 *)((int)param_1 + 0x17) = 0;
    }
    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;
    iVar11 = 6;
    if (((uint)param_3 & 1) != 0) {
      iVar11 = 4;
    }
    param_1[0xf] = iVar11;
    pppppppbVar20 = param_2;
    if (*(char *)((int)param_1 + 0x4b) == '\0') {
      param_1[1] = *param_1;
    }
  }
  pppppppbVar18 = param_2;
  ppppppbVar22 = param_3;
  if (pppppppbVar20 != (byte *******)0x0) {
    if ((int)pppppppbVar20 < param_1[8]) {
      if (*(char *)(param_1 + 0x13) == '\0') {
        iVar11 = FUN_0048efec(param_1,(byte *)((int)pppppppbVar20 + -1));
        param_1[0xf] = iVar11;
        pppppppbVar18 = (byte *******)((int)pppppppbVar20 * 4);
        if (param_1[0x14] < 2) {
          cVar2 = *(char *)((int)param_1 + 0x4b);
        }
        else {
          ppppppbVar22 = (byte ******)((param_1[7] - (int)pppppppbVar20) * 4);
          pppppppbVar18 = (byte *******)((int)pppppppbVar18 + param_1[2]);
          (*(code *)PTR_memmove_004bf3a4)();
          cVar2 = *(char *)((int)param_1 + 0x4b);
        }
        if (cVar2 == '\0') {
          iVar11 = param_1[7];
        }
        else {
          ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);
          pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);
          (*(code *)PTR_memmove_004bf3a4)();
          iVar11 = param_1[7];
        }
        param_1[7] = iVar11 - (int)pppppppbVar20;
        param_1[8] = param_1[8] - (int)pppppppbVar20;
        goto LAB_00491360;
      }
      unaff_s6 = (byte *******)param_1[7];
      unaff_s5 = (byte *******)param_1[3];
      pbVar16 = (byte *)0x0;
      pppppppbVar18 = unaff_s6;
      do {
        unaff_s4 = (byte *******)((int)(pbVar16 + (int)pppppppbVar18) / 2);
        ppppppbVar6 = unaff_s5[(int)unaff_s4];
        bVar1 = (int)pbVar16 < (int)unaff_s4;
        pppppppbVar12 = unaff_s4;
        if ((int)ppppppbVar6 <= (int)pppppppbVar20) {
          pbVar16 = (byte *)((int)unaff_s4 + 1);
          if ((int)pppppppbVar20 <= (int)ppppppbVar6) goto LAB_0049145c;
          bVar1 = (int)pbVar16 < (int)pppppppbVar18;
          pppppppbVar12 = pppppppbVar18;
        }
        pppppppbVar18 = pppppppbVar12;
      } while (bVar1);
      if ((int)ppppppbVar6 < (int)pppppppbVar20) {
        unaff_s4 = (byte *******)((int)unaff_s4 + 1);
      }
LAB_0049145c:
      pppppppbVar18 = (byte *******)((int)unaff_s4 + -1);
      iVar11 = FUN_0048efec(param_1);
      param_1[0xf] = iVar11;
      if ((((int)unaff_s6 <= (int)pppppppbVar20) || (pppppppbVar20 != unaff_s4)) ||
         (param_3 = (byte ******)((int)pppppppbVar20 * 4),
         (byte *******)unaff_s5[(int)unaff_s4] != pppppppbVar20)) {
        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));
        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));
        *(undefined1 *)(param_1 + 0x13) = 0;
        if ((0 < (int)unaff_s4) &&
           ((byte *******)unaff_s5[(int)((int)unaff_s4 + 0x3fffffff)] == pppppppbVar20)) {
          pppppppbVar12 = unaff_s5 + (int)(unaff_s4 + 0x10000000);
          do {
            unaff_s4 = (byte *******)((int)unaff_s4 + -1);
            if (unaff_s4 == (byte *******)0x0) break;
            pppppppbVar19 = pppppppbVar12 + -2;
            pppppppbVar12 = pppppppbVar12 + -1;
          } while ((byte *******)*pppppppbVar19 == pppppppbVar20);
        }
        if ((int)unaff_s4 < (int)unaff_s6) {
          piVar9 = (int *)(param_1[2] + (int)unaff_s4 * 4);
          iVar11 = *piVar9;
          while (iVar11 == -1) {
            unaff_s4 = (byte *******)((int)unaff_s4 + 1);
            piVar9 = piVar9 + 1;
            if (unaff_s6 == unaff_s4) goto LAB_0049164c;
            iVar11 = *piVar9;
          }
LAB_00491534:
          unaff_s4 = unaff_s5 + (int)unaff_s4;
          ppppppbVar22 = (byte ******)((int)*unaff_s4 - (int)pppppppbVar20);
          param_1[7] = (int)ppppppbVar22;
          if (ppppppbVar22 == (byte ******)0x0) goto LAB_00491650;
          if (0 < (int)ppppppbVar22) {
            iVar11 = 0;
            do {
              *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;
              iVar11 = iVar11 + 1;
              ppppppbVar22 = (byte ******)param_1[7];
            } while (iVar11 < (int)ppppppbVar22);
          }
          pppppppbVar18 = (byte *******)0xff;
          (*(code *)PTR_memset_004bf260)(param_1[1]);
          iVar11 = param_1[7];
        }
        else {
          if (unaff_s4 != unaff_s6) goto LAB_00491534;
LAB_0049164c:
          param_1[7] = 0;
LAB_00491650:
          iVar11 = param_1[7];
        }
        param_1[8] = iVar11;
        goto LAB_00491360;
      }
      (*(code *)PTR_memmove_004bf3a4)
                (param_1[2],param_1[2] + (int)param_3,((int)unaff_s6 - (int)pppppppbVar20) * 4);
      ppppppbVar22 = (byte ******)(param_1[7] - (int)pppppppbVar20);
      pppppppbVar18 = (byte *******)((int)pppppppbVar20 + param_1[1]);
      (*(code *)PTR_memmove_004bf3a4)();
      iVar11 = param_1[7];
      param_1[7] = iVar11 - (int)pppppppbVar20;
      param_1[8] = param_1[8] - (int)pppppppbVar20;
      if (iVar11 - (int)pppppppbVar20 < 1) goto LAB_00491360;
      iVar11 = 0;
      do {
        *(int *)(param_1[3] + iVar11 * 4) = *(int *)(param_1[3] + (int)param_3) - (int)pppppppbVar20
        ;
        iVar11 = iVar11 + 1;
        param_3 = param_3 + 1;
      } while (iVar11 < param_1[7]);
      cVar2 = *(char *)((int)param_1 + 0x4b);
    }
    else {
      unaff_s6 = (byte *******)param_1[7];
      if (*(char *)(param_1 + 0x13) != '\0') {
        param_1[0xc] = (int)((int)pppppppbVar20 + (param_1[0xb] - (int)param_2));
        param_1[0xe] = (int)((int)pppppppbVar20 + (param_1[0xd] - (int)param_2));
        *(undefined1 *)(param_1 + 0x13) = 0;
      }
      param_1[7] = 0;
      if (param_1[0x14] < 2) {
        pppppppbVar18 =
             (byte *******)(uint)*(byte *)((int)pppppppbVar20 + param_1[6] + *param_1 + -1);
        param_1[8] = 0;
        if (param_1[0x10] != 0) {
          pppppppbVar18 = (byte *******)(uint)*(byte *)((int)pppppppbVar18 + param_1[0x10]);
        }
        iVar11 = 1;
        if ((*(uint *)(param_1[0x11] + ((int)pppppppbVar18 >> 5) * 4) >>
             ((uint)pppppppbVar18 & 0x1f) & 1) == 0) {
          iVar11 = 2;
          if (pppppppbVar18 == (byte *******)&DAT_0000000a) {
            if (*(char *)((int)param_1 + 0x4d) == '\0') {
              iVar11 = 0;
            }
          }
          else {
            iVar11 = 0;
          }
        }
        param_1[0xf] = iVar11;
        goto LAB_00491360;
      }
      if (*(char *)((int)param_1 + 0x49) == '\0') {
LAB_0049179c:
        iVar11 = param_1[6];
LAB_004917a0:
        pppppppbVar12 = (byte *******)(iVar11 + param_1[8]);
        if ((int)pppppppbVar12 < (int)param_2) {
          unaff_s8 = param_1 + 4;
          unaff_s7 = (byte *******)&local_40;
          do {
            unaff_s5 = pppppppbVar12;
            iVar24 = param_1[0xb];
            local_3c = param_1[4];
            local_38 = param_1[5];
            pppppppbVar18 = (byte *******)((int)unaff_s5 + *param_1);
            iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)
                               (unaff_s7,pppppppbVar18,iVar24 - (int)unaff_s5,unaff_s8);
            unaff_s4 = local_40;
            if (0xfffffffc < iVar11 - 1U) {
              if (iVar11 == 0) {
                unaff_s4 = (byte *******)0x0;
              }
              else if (iVar24 - (int)unaff_s5 == 0) {
                unaff_s4 = (byte *******)0x0;
              }
              else {
                unaff_s4 = (byte *******)(uint)*(byte *)((int)unaff_s5 + *param_1);
              }
              param_1[4] = local_3c;
              param_1[5] = local_38;
              iVar11 = 1;
            }
            pppppppbVar12 = (byte *******)((int)unaff_s5 + iVar11);
          } while ((int)pppppppbVar12 < (int)param_2);
          param_1[7] = (int)pppppppbVar12 - (int)param_2;
          if (unaff_s4 != (byte *******)0xffffffff) goto LAB_00491834;
        }
        else {
          param_1[7] = (int)pppppppbVar12 - (int)param_2;
        }
        pppppppbVar18 = (byte *******)((int)unaff_s6 + -1);
        iVar11 = FUN_0048efec(param_1,pppppppbVar18,param_3);
        param_1[0xf] = iVar11;
      }
      else {
        pppppppbVar12 = (byte *******)*param_1;
        unaff_s4 = (byte *******)((int)pppppppbVar12 + param_1[6]);
        pppppppbVar18 = (byte *******)((int)unaff_s4 + ((int)pppppppbVar20 - param_1[0x14]));
        if (pppppppbVar18 <= pppppppbVar12) {
          pppppppbVar18 = pppppppbVar12;
        }
        pppppppbVar12 = (byte *******)((int)unaff_s4 + (int)((int)pppppppbVar20 + -1));
        unaff_s5 = pppppppbVar20;
        if (pppppppbVar12 < pppppppbVar18) goto LAB_0049179c;
        bVar3 = *(byte *)pppppppbVar12;
        unaff_s7 = pppppppbVar12;
        while ((bVar3 & 0xc0) == 0x80) {
          pppppppbVar19 = (byte *******)((int)unaff_s7 + -1);
          unaff_s7 = pppppppbVar12;
          if (pppppppbVar19 < pppppppbVar18) goto LAB_0049179c;
          unaff_s7 = pppppppbVar19;
          bVar3 = *(byte *)pppppppbVar19;
        }
        iVar11 = param_1[0x10];
        pbVar16 = (byte *)((int)unaff_s4 + (param_1[0xc] - (int)unaff_s7));
        pppppppbVar18 = unaff_s7;
        if (iVar11 != 0) {
          pbVar17 = (byte *)0x6;
          if ((int)pbVar16 < 7) {
            pbVar17 = pbVar16;
          }
          if ((int)(pbVar17 + -1) < 0) {
            pppppppbVar18 = appppppbStack_34;
          }
          else {
            pbVar16 = (byte *)((int)unaff_s7 + (int)(pbVar17 + -1));
            ppppppbVar22 = (byte ******)((int)appppppbStack_34 + (int)pbVar17);
            do {
              *(byte *)((int)ppppppbVar22 + -1) = *(byte *)(iVar11 + (uint)*pbVar16);
              ppppppbVar22 = (byte ******)((int)ppppppbVar22 + -1);
              pbVar16 = pbVar16 + -1;
            } while ((byte *******)ppppppbVar22 != appppppbStack_34);
            pppppppbVar18 = appppppbStack_34;
          }
        }
        local_3c = 0;
        local_38 = 0;
        uVar29 = (*(code *)PTR_mbrtowc_004bf2ec)(&local_40);
        uVar30 = (int)((int)unaff_s4 + (int)pppppppbVar20) - (int)unaff_s7;
        if ((uVar29 < uVar30) || (0xfffffffd < uVar29)) goto LAB_0049179c;
        *(undefined1 *)(param_1 + 4) = 0;
        *(undefined1 *)((int)param_1 + 0x11) = 0;
        *(undefined1 *)((int)param_1 + 0x12) = 0;
        *(undefined1 *)((int)param_1 + 0x13) = 0;
        *(undefined1 *)(param_1 + 5) = 0;
        *(undefined1 *)((int)param_1 + 0x15) = 0;
        *(undefined1 *)((int)param_1 + 0x16) = 0;
        *(undefined1 *)((int)param_1 + 0x17) = 0;
        param_1[7] = uVar29 - uVar30;
        unaff_s4 = local_40;
        if (local_40 == (byte *******)0xffffffff) {
          iVar11 = param_1[6];
          goto LAB_004917a0;
        }
LAB_00491834:
        if (*(char *)((int)param_1 + 0x4e) == '\0') {
LAB_00491840:
          iVar11 = 2;
          if (unaff_s4 == (byte *******)&DAT_0000000a) {
            if (*(char *)((int)param_1 + 0x4d) == '\0') {
              iVar11 = 0;
            }
          }
          else {
            iVar11 = 0;
          }
        }
        else {
          iVar24 = (*(code *)PTR_iswalnum_004bf25c)(unaff_s4);
          iVar11 = 1;
          if (iVar24 == 0) {
            if (unaff_s4 == (byte *******)0x5f) {
              param_1[0xf] = 1;
              goto LAB_00491854;
            }
            goto LAB_00491840;
          }
        }
        param_1[0xf] = iVar11;
      }
LAB_00491854:
      ppppppbVar22 = (byte ******)param_1[7];
      if (ppppppbVar22 == (byte ******)0x0) {
LAB_00491860:
        iVar11 = param_1[7];
      }
      else {
        iVar11 = 0;
        if (0 < (int)ppppppbVar22) {
          do {
            *(undefined4 *)(param_1[2] + iVar11 * 4) = 0xffffffff;
            iVar11 = iVar11 + 1;
            ppppppbVar22 = (byte ******)param_1[7];
          } while (iVar11 < (int)ppppppbVar22);
        }
        pppppppbVar18 = (byte *******)0xff;
        if (*(char *)((int)param_1 + 0x4b) == '\0') goto LAB_00491860;
        (*(code *)PTR_memset_004bf260)(param_1[1]);
        iVar11 = param_1[7];
      }
      param_1[8] = iVar11;
LAB_00491360:
      cVar2 = *(char *)((int)param_1 + 0x4b);
    }
    if (cVar2 == '\0') {
      param_1[1] = (int)((int)pppppppbVar20 + param_1[1]);
    }
  }
  param_1[6] = (int)param_2;
  iVar11 = param_1[0xc];
  param_1[0xc] = iVar11 - (int)pppppppbVar20;
  iVar24 = param_1[0xe] - (int)pppppppbVar20;
  param_1[0xe] = iVar24;
  if (param_1[0x14] < 2) {
    if (*(char *)((int)param_1 + 0x4b) == '\0') {
      param_1[7] = iVar11 - (int)pppppppbVar20;
      goto LAB_00491aa8;
    }
    if (*(char *)(param_1 + 0x12) == '\0') {
      if (param_1[0x10] == 0) goto LAB_00491aa8;
      FUN_00489d80();
      param_1[10] = 0;
    }
    else {
      FUN_0048b84c(param_1);
      param_1[10] = 0;
    }
  }
  else {
    if (*(char *)(param_1 + 0x12) == '\0') {
      FUN_0048b928(param_1);
      param_1[10] = 0;
      goto LAB_00491aac;
    }
    ppppbVar5 = (byte ****)FUN_0048c3a4();
    if (ppppbVar5 != (byte ****)0x0) goto LAB_00491ab0;
LAB_00491aa8:
    param_1[10] = 0;
  }
LAB_00491aac:
  ppppbVar5 = (byte ****)0x0;
LAB_00491ab0:
  if (appppppbStack_34[2] == *(byte *******)PTR___stack_chk_guard_004bf38c) {
    return ppppbVar5;
  }
  pcVar32 = FUN_00491b60;
  ppppppbVar6 = appppppbStack_34[2];
  (*(code *)PTR___stack_chk_fail_004bf34c)();
  ppppbStack_84 = *(byte *****)PTR___stack_chk_guard_004bf38c;
  pppppbVar31 = *ppppppbVar6;
  if (pppppbVar31[0x17] == (byte ****)0x1) {
    uVar29 = (uint)((int)ppppppbVar6[3] << 9) >> 0x1f;
  }
  else {
    uVar29 = 0;
  }
  ppppppbVar13 = ppppppbVar6;
  pppppppbVar20 = pppppppbVar18;
  ppppppbVar21 = ppppppbVar22;
  piStack_80 = param_1;
  iStack_7c = iVar24;
  pppppppbStack_78 = param_2;
  ppppppbStack_74 = param_3;
  pppppppbStack_70 = unaff_s4;
  pppppppbStack_6c = unaff_s5;
  pppppppbStack_68 = unaff_s6;
  pppppppbStack_64 = unaff_s7;
  piStack_60 = unaff_s8;
  pcStack_5c = pcVar32;
  if (0 < (int)pppppppbVar18[2]) {
    iStack_1a8 = 0;
    do {
      pppppbVar23 = pppppppbVar18[3][iStack_1a8];
      ppppppbVar7 = (byte ******)((int)pppppbVar23 * 8);
      ppppbVar5 = *pppppbVar31 + (int)pppppbVar23 * 2;
      ppppppbVar13 = (byte ******)(uint)*(byte *)(ppppbVar5 + 1);
      pppppppbVar20 = (byte *******)&DAT_00000001;
      if (ppppppbVar13 == (byte ******)&DAT_00000001) {
        uVar30 = (uint)*(byte *)ppppbVar5;
        *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;
        if (uVar29 != 0) {
          if (uVar30 + 0x80 < 0x180) {
            piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();
            uVar30 = *(uint *)(*piVar9 + uVar30 * 4);
          }
          *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;
        }
        if (((int)ppppppbVar6[3] << 9 < 0) &&
           (ppppppbVar13 = ppppppbVar7, 1 < (int)pppppbVar31[0x17])) {
          bStack_184 = *(byte *)(*pppppbVar31 + (int)pppppbVar23 * 2);
          if ((byte ****)((int)pppppbVar23 + 1U) < pppppbVar31[2]) {
            ppppbVar5 = (byte ****)((int)ppppppbVar7 + (int)(*pppppbVar31 + 2));
            ppppppbVar7 = ppppppbVar7 + 4;
            if (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400) {
              puVar15 = auStack_183;
              do {
                puVar14 = puVar15 + 1;
                *puVar15 = *(undefined1 *)ppppbVar5;
                if (pppppbVar31[2] <= puVar14 + ((int)pppppbVar23 - (int)&bStack_184)) break;
                ppppbVar5 = (byte ****)((int)*pppppbVar31 + (int)ppppppbVar7);
                ppppppbVar7 = ppppppbVar7 + 2;
                puVar15 = puVar14;
              } while (((uint)ppppbVar5[1] & 0xff000400) == 0x1000400);
            }
            else {
              puVar14 = auStack_183;
            }
          }
          else {
            puVar14 = auStack_183;
          }
          pppppbStack_18c = (byte *****)0x0;
          uStack_188 = 0;
          pppppppbVar20 = (byte *******)&bStack_184;
          iVar11 = -(int)pppppppbVar20;
          ppppppbVar13 = (byte ******)&ppppppbStack_190;
          ppppppbVar21 = (byte ******)(puVar14 + iVar11);
          ppppppbVar7 = (byte ******)(*(code *)PTR_mbrtowc_004bf2ec)();
          if ((byte ******)(puVar14 + iVar11) == ppppppbVar7) {
            pppppppbVar20 = (byte *******)(*(code *)PTR_towlower_004bf37c)(ppppppbStack_190);
            ppppppbVar21 = &pppppbStack_18c;
            ppppppbVar13 = (byte ******)&bStack_184;
            iVar11 = (*(code *)PTR_wcrtomb_004bf3dc)();
            if (iVar11 != -1) {
              *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;
            }
          }
        }
      }
      else {
        pppppppbVar20 = (byte *******)&DAT_00000006;
        if (ppppppbVar13 == (byte ******)0x3) {
          iStack_1ac = 0;
          iVar11 = 0;
          do {
            uVar27 = *(uint *)((int)(*pppppbVar31)[(int)pppppbVar23 * 2] + iStack_1ac);
            uVar30 = 0;
            iVar24 = iVar11;
            do {
              if (((uVar27 >> (uVar30 & 0x1f) & 1) != 0) &&
                 (*(undefined1 *)((int)ppppppbVar22 + iVar24) = 1, uVar29 != 0)) {
                iVar8 = iVar24;
                if (iVar24 + 0x80U < 0x180) {
                  piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();
                  iVar8 = *(int *)(*piVar9 + (uVar30 + iVar11) * 4);
                }
                *(undefined1 *)((int)ppppppbVar22 + iVar8) = 1;
              }
              uVar30 = uVar30 + 1;
              iVar24 = iVar24 + 1;
            } while (uVar30 != 0x20);
            iVar11 = iVar11 + 0x20;
            iStack_1ac = iStack_1ac + 4;
          } while (iVar11 != 0x100);
        }
        else if (ppppppbVar13 == (byte ******)&DAT_00000006) {
          pppbVar25 = *ppppbVar5;
          if (((int)pppppbVar31[0x17] < 2) ||
             (((pppbVar25[9] == (byte **)0x0 && (-1 < *(char *)(pppbVar25 + 4))) &&
              (pppbVar25[8] == (byte **)0x0)))) {
            iVar11 = 0;
            if (0 < (int)pppbVar25[5]) {
              do {
                pppppbStack_18c = (byte *****)0x0;
                uStack_188 = 0;
                pppppppbVar20 = (byte *******)(*pppbVar25)[iVar11];
                ppppppbVar13 = (byte ******)&bStack_184;
                ppppppbVar21 = &pppppbStack_18c;
                iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();
                uVar30 = (uint)bStack_184;
                if ((iVar24 != -1) && (*(undefined1 *)((int)ppppppbVar22 + uVar30) = 1, uVar29 != 0)
                   ) {
                  if (uVar30 + 0x80 < 0x180) {
                    piVar9 = (int *)(*(code *)PTR___ctype_tolower_loc_004bf16c)();
                    uVar30 = *(uint *)(*piVar9 + uVar30 * 4);
                  }
                  *(undefined1 *)((int)ppppppbVar22 + uVar30) = 1;
                }
                if ((((uint)ppppppbVar6[3] & 0x400000) != 0) && (1 < (int)pppppbVar31[0x17])) {
                  pppppppbVar20 =
                       (byte *******)(*(code *)PTR_towlower_004bf37c)((*pppbVar25)[iVar11]);
                  ppppppbVar13 = (byte ******)&bStack_184;
                  ppppppbVar21 = &pppppbStack_18c;
                  iVar24 = (*(code *)PTR_wcrtomb_004bf3dc)();
                  if (iVar24 != -1) {
                    *(undefined1 *)((int)ppppppbVar22 + (uint)bStack_184) = 1;
                  }
                }
                iVar11 = iVar11 + 1;
              } while (iVar11 < (int)pppbVar25[5]);
            }
          }
          else {
            ppppppbStack_190 = (byte ******)((uint)ppppppbStack_190 & 0xffffff);
            do {
              pppppbStack_18c = (byte *****)0x0;
              uStack_188 = 0;
              ppppppbVar21 = (byte ******)&DAT_00000001;
              ppppppbVar13 = (byte ******)0x0;
              pppppppbVar20 = &ppppppbStack_190;
              iVar11 = (*(code *)PTR_mbrtowc_004bf2ec)();
              if (iVar11 == -2) {
                *(undefined1 *)((int)ppppppbVar22 + (uint)ppppppbStack_190._0_1_) = 1;
              }
              bVar1 = ppppppbStack_190._0_1_ != 0xff;
              ppppppbStack_190 =
                   (byte ******)CONCAT13(ppppppbStack_190._0_1_ + 1,ppppppbStack_190._1_3_);
            } while (bVar1);
          }
        }
        else {
          if (((uint)ppppppbVar13 & 0xfd) == 5) {
            ppppppbVar21 = (byte ******)0x100;
            pppppppbVar20 = (byte *******)&DAT_00000001;
            (*(code *)PTR_memset_004bf260)();
            ppppppbVar13 = ppppppbVar22;
            break;
          }
          if (ppppppbVar13 == (byte ******)0x2) {
            ppppppbVar21 = (byte ******)0x100;
            pppppppbVar20 = (byte *******)&DAT_00000001;
            (*(code *)PTR_memset_004bf260)(ppppppbVar22);
            *(byte *)(ppppppbVar6 + 7) = *(byte *)(ppppppbVar6 + 7) & 0x7f | 0x80;
            ppppppbVar13 = ppppppbVar6;
            break;
          }
        }
      }
      iStack_1a8 = iStack_1a8 + 1;
    } while (iStack_1a8 < (int)pppppppbVar18[2]);
  }
  if (ppppbStack_84 == *(byte *****)PTR___stack_chk_guard_004bf38c) {
    return *(byte *****)PTR___stack_chk_guard_004bf38c;
  }
  (*(code *)PTR___stack_chk_fail_004bf34c)();
  pppppbVar31 = ppppppbVar21[1];
  if (pppppbVar31 == (byte *****)0x0) {
    *ppppppbVar13 = (byte *****)0x0;
  }
  else {
    if (0 < (int)pppppbVar31) {
      pppppbVar23 = ppppppbVar21[2];
      pppppbVar26 = pppppbVar23 + (int)pppppbVar31;
      do {
        ppppbVar5 = *pppppbVar23;
        pppppbVar23 = pppppbVar23 + 1;
        pppppbVar31 = (byte *****)((int)pppppbVar31 + (int)ppppbVar5);
      } while (pppppbVar23 != pppppbVar26);
    }
    pppppbVar23 = pppppppbVar20[8][((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3];
    if (0 < (int)pppppbVar23) {
      pppppbVar26 = (pppppppbVar20[8] + ((uint)pppppbVar31 & (uint)pppppppbVar20[0x11]) * 3)[2];
      pppppbVar28 = (byte *****)0x0;
      do {
        ppppbVar5 = *pppppbVar26;
        if ((pppppbVar31 == (byte *****)*ppppbVar5) &&
           (iVar11 = FUN_00489de4(ppppbVar5 + 1,ppppppbVar21), iVar11 != 0)) {
          return ppppbVar5;
        }
        pppppbVar28 = (byte *****)((int)pppppbVar28 + 1);
        pppppbVar26 = pppppbVar26 + 1;
      } while (pppppbVar23 != pppppbVar28);
    }
    ppppbVar5 = (byte ****)(*(code *)PTR_calloc_004bf160)(0x38,1);
    if (ppppbVar5 != (byte ****)0x0) {
      iVar11 = FUN_0048c08c(ppppbVar5 + 1,ppppppbVar21);
      if (iVar11 == 0) {
        ppppbVar5[10] = (byte ***)(ppppbVar5 + 1);
        if (0 < (int)ppppppbVar21[1]) {
          ppppppbVar22 = *pppppppbVar20;
          pppppbVar23 = ppppppbVar21[2];
          pppppbVar26 = pppppbVar23 + (int)ppppppbVar21[1];
          do {
            ppppbVar10 = *pppppbVar23;
            cVar2 = *(char *)(ppppppbVar22 + (int)ppppbVar10 * 2 + 1);
            if (cVar2 == '\x01') {
              if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {
                *(byte *)(ppppbVar5 + 0xd) =
                     *(byte *)(ppppbVar5 + 0xd) & 0xfb |
                     (byte)(((uint)((int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14 |
                                   (int)ppppbVar5[0xd] << 5) >> 0x1f) << 2);
LAB_004922f0:
                if (((uint)ppppppbVar22[(int)ppppbVar10 * 2 + 1] & 0xffc000) != 0) {
                  bVar3 = *(byte *)(ppppbVar5 + 0xd);
LAB_00492380:
                  *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfe | 1;
                }
              }
            }
            else {
              bVar3 = *(byte *)(ppppbVar5 + 0xd);
              bVar4 = (byte)(((uint)((int)ppppbVar5[0xd] << 5 |
                                    (int)ppppppbVar22[(int)ppppbVar10 * 2 + 1] << 0x14) >> 0x1f) <<
                            2);
              *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xfb | bVar4;
              if (cVar2 == '\x02') {
                *(byte *)(ppppbVar5 + 0xd) = bVar3 & 0xf3 | bVar4 | 8;
              }
              else {
                if (cVar2 != '\x04') {
                  if (cVar2 != '\f') goto LAB_004922f0;
                  bVar3 = *(byte *)(ppppbVar5 + 0xd);
                  goto LAB_00492380;
                }
                *(byte *)(ppppbVar5 + 0xd) = *(byte *)(ppppbVar5 + 0xd) & 0xfd | 2;
              }
            }
            pppppbVar23 = pppppbVar23 + 1;
          } while (pppppbVar23 != pppppbVar26);
        }
        iVar11 = FUN_0048b6d0(pppppppbVar20,ppppbVar5,pppppbVar31);
        if (iVar11 == 0) {
          return ppppbVar5;
        }
        FUN_0048e3e8(ppppbVar5);
      }
      else {
        (*(code *)PTR_free_004bf39c)(ppppbVar5);
      }
    }
    *ppppppbVar13 = (byte *****)0xc;
  }
  return (byte ****)0x0;
}

