
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Type propagation algorithm not settling */

token __regparm3 lex(dfa *dfa)

{
  byte *pbVar1;
  size_t *psVar2;
  int iVar3;
  wint_t wVar4;
  ushort *puVar5;
  bool bVar6;
  byte *pbVar7;
  uint uVar8;
  ushort **ppuVar9;
  size_t sVar10;
  size_t sVar11;
  ptrdiff_t pVar12;
  char *pcVar13;
  int iVar14;
  byte *pbVar15;
  char cVar16;
  byte *pbVar17;
  uint uVar18;
  int iVar19;
  mbstate_t *pmVar20;
  int in_GS_OFFSET;
  byte bVar21;
  byte *local_60;
  byte *local_5c;
  byte local_51;
  wchar_t wch;
  charclass ccl;
  
  bVar21 = 0;
  local_60 = (byte *)(dfa->lex).left;
  iVar3 = *(int *)(in_GS_OFFSET + 0x14);
  if (local_60 == (byte *)0x0) {
    (dfa->lex).lasttok = -1;
    uVar18 = 0xffffffff;
    goto LAB_0002318d;
  }
  local_5c = (byte *)(dfa->lex).ptr;
  wVar4 = (dfa->localeinfo).sbctowc[*local_5c];
  if (wVar4 == 0xffffffff) {
    sVar10 = rpl_mbrtowc(&wch,(char *)local_5c,(size_t)local_60,&dfa->mbs);
    if (0xfffffffc < sVar10 - 1) {
      (dfa->mbs).__count = 0;
      local_5c = (byte *)(dfa->lex).ptr;
      (dfa->mbs).__value.__wch = 0;
      local_60 = (byte *)(dfa->lex).left;
      goto LAB_00023107;
    }
    local_60 = (byte *)(dfa->lex).left;
    (dfa->lex).cur_mb_len = sVar10;
    (dfa->lex).wctok = wch;
    local_5c = (byte *)(dfa->lex).ptr;
    if (sVar10 == 1) goto LAB_00023117;
LAB_00023235:
    uVar18 = 0xffffffff;
    (dfa->lex).ptr = (char *)(local_5c + sVar10);
    cVar16 = (dfa->localeinfo).multibyte;
    (dfa->lex).left = (int)local_60 - sVar10;
    goto LAB_00023160;
  }
LAB_00023107:
  (dfa->lex).wctok = wVar4;
  (dfa->lex).cur_mb_len = 1;
LAB_00023117:
  uVar18 = (uint)*local_5c;
  pbVar1 = local_5c + 1;
  (dfa->lex).ptr = (char *)pbVar1;
  pbVar15 = local_60 + -1;
  (dfa->lex).left = (size_t)pbVar15;
  if (0x72 < (byte)(uVar18 - 10)) goto _L1538;
  uVar8 = uVar18 - 10 & 0xff;
  pbVar17 = (byte *)((int)&_GLOBAL_OFFSET_TABLE_ + (&switchD_00023149::switchdataD_0002ef08)[uVar8])
  ;
  switch(uVar8) {
  case 0:
    uVar18 = (dfa->syntax).syntax_bits;
    if (((uVar18 & 0x400) != 0) || ((uVar18 & 0x800) == 0)) {
_L1503:
      cVar16 = (dfa->localeinfo).multibyte;
      uVar18 = 10;
      break;
    }
    goto LAB_000238f1;
  default:
    goto _L1538;
  case 0x1a:
    uVar18 = (dfa->syntax).syntax_bits;
    if ((((((uVar18 & 8) != 0) || (pbVar15 == (byte *)0x0)) ||
         ((pbVar17 = (byte *)((uVar18 >> 0xd ^ 1) & 1), pbVar17 < pbVar15 &&
          (pbVar1[(uint)(local_5c[1] == 0x5c) & (uint)pbVar17] == 0x29)))) ||
        ((pbVar17 = (byte *)((uVar18 >> 0xf ^ 1) & 1), pbVar17 < pbVar15 &&
         (pbVar1[(uint)pbVar17 & (uint)(local_5c[1] == 0x5c)] == 0x7c)))) ||
       (((uVar18 & 0x800) != 0 && (local_5c[1] == 10)))) {
LAB_00023868:
      (dfa->lex).lasttok = 0x10d;
      uVar18 = 0x10d;
      goto LAB_0002318d;
    }
_L1438:
    cVar16 = (dfa->localeinfo).multibyte;
    uVar18 = 0x24;
    break;
  case 0x1d:
_L1449:
    cVar16 = (dfa->localeinfo).multibyte;
    uVar18 = 0x27;
    break;
  case 0x1e:
    bVar21 = 0;
LAB_00023262:
    if ((((byte)((dfa->syntax).syntax_bits >> 0xd) ^ 1) & 1) == bVar21) {
      psVar2 = &(dfa->lex).parens;
      *psVar2 = *psVar2 + 1;
      uVar18 = 0x107;
      (dfa->lex).laststart = true;
      (dfa->lex).lasttok = 0x107;
      goto LAB_0002318d;
    }
    cVar16 = (dfa->localeinfo).multibyte;
    uVar18 = 0x28;
    break;
  case 0x1f:
    bVar21 = 0;
LAB_0002351a:
    uVar18 = (dfa->syntax).syntax_bits;
    if (((((byte)(uVar18 >> 0xd) ^ 1) & 1) == bVar21) &&
       ((sVar10 = (dfa->lex).parens, sVar10 != 0 || ((uVar18 & 0x20000) == 0)))) {
      (dfa->lex).laststart = false;
      uVar18 = 0x108;
      (dfa->lex).parens = sVar10 - 1;
      (dfa->lex).lasttok = 0x108;
      goto LAB_0002318d;
    }
    cVar16 = (dfa->localeinfo).multibyte;
    uVar18 = 0x29;
    break;
  case 0x20:
    if ((((dfa->syntax).syntax_bits & 0x10) != 0) || ((dfa->lex).laststart == false)) {
      (dfa->lex).lasttok = 0x102;
      uVar18 = 0x102;
      goto LAB_0002318d;
    }
_L1469:
    cVar16 = (dfa->localeinfo).multibyte;
    uVar18 = 0x2a;
    break;
  case 0x21:
    bVar21 = 0;
LAB_000234d2:
    uVar18 = (dfa->syntax).syntax_bits;
    if ((((uVar18 & 0x400) == 0) && (((byte)(uVar18 >> 1) & 1) == bVar21)) &&
       (((uVar18 & 0x10) != 0 || ((dfa->lex).laststart == false)))) {
      (dfa->lex).lasttok = 0x103;
      uVar18 = 0x103;
      goto LAB_0002318d;
    }
    cVar16 = (dfa->localeinfo).multibyte;
    uVar18 = 0x2b;
    break;
  case 0x24:
    bVar6 = false;
LAB_0002336a:
    cVar16 = (dfa->localeinfo).multibyte;
    if (!bVar6) {
      sVar10 = dfa->canychar;
      if (sVar10 == 0xffffffff) {
        uVar18 = (dfa->syntax).syntax_bits;
        ccl.w[0] = 0xffffffff;
        ccl.w[1] = 0xffffffff;
        ccl.w[2] = 0xffffffff;
        ccl.w[3] = 0xffffffff;
        ccl.w[4] = 0xffffffff;
        ccl.w[5] = 0xffffffff;
        ccl.w[6] = 0xffffffff;
        ccl.w[7] = 0xffffffff;
        if ((uVar18 & 0x40) == 0) {
          ccl.w[0] = 0xfffffbff;
        }
        if ((uVar18 & 0x80) != 0) {
          ccl.w[0] = ccl.w[0] & 0xfffffffe;
        }
        if ((_Bool)cVar16 != false) {
          uVar18 = 0;
          do {
            if ((dfa->localeinfo).sbctowc[uVar18] == 0xffffffff) {
              ccl.w[uVar18 >> 5] = ccl.w[uVar18 >> 5] & ~(1 << ((byte)uVar18 & 0x1f));
            }
            uVar18 = uVar18 + 1;
          } while (uVar18 != 0x100);
        }
        sVar10 = charclass_index(dfa,&ccl);
        cVar16 = (dfa->localeinfo).multibyte;
        dfa->canychar = sVar10;
      }
      (dfa->lex).laststart = false;
      uVar18 = 0x10a;
      if (cVar16 == '\0') {
        uVar18 = sVar10 + 0x114;
      }
      (dfa->lex).lasttok = uVar18;
      goto LAB_0002318d;
    }
    uVar18 = 0x2e;
    break;
  case 0x32:
_L1452:
    cVar16 = (dfa->localeinfo).multibyte;
    uVar18 = 0x3c;
    break;
  case 0x34:
_L1455:
    cVar16 = (dfa->localeinfo).multibyte;
    uVar18 = 0x3e;
    break;
  case 0x35:
    bVar21 = 0;
LAB_000233b2:
    uVar18 = (dfa->syntax).syntax_bits;
    if ((((uVar18 & 0x400) == 0) && (((byte)(uVar18 >> 1) & 1) == bVar21)) &&
       (((uVar18 & 0x10) != 0 || ((dfa->lex).laststart == false)))) {
      (dfa->lex).lasttok = 0x101;
      uVar18 = 0x101;
      goto LAB_0002318d;
    }
    cVar16 = (dfa->localeinfo).multibyte;
    uVar18 = 0x3f;
    break;
  case 0x38:
_L1461:
    cVar16 = (dfa->localeinfo).multibyte;
    uVar18 = 0x42;
    break;
  case 0x49:
  case 0x69:
    bVar6 = false;
    local_60 = pbVar15;
    local_5c = pbVar1;
LAB_0002342a:
    cVar16 = (dfa->localeinfo).multibyte;
    if ((!bVar6) || (((dfa->syntax).syntax_bits & 0x80000) != 0)) break;
    if ((_Bool)cVar16 != false) {
      pcVar13 = &UNK_0002f468 + (uVar18 == 0x73);
LAB_0002345c:
      (dfa->lex).ptr = pcVar13;
      sVar11 = strlen(pcVar13);
      (dfa->lex).left = sVar11;
      uVar18 = parse_bracket_exp(dfa);
      (dfa->lex).laststart = false;
      (dfa->lex).lasttok = uVar18;
      (dfa->lex).ptr = (char *)local_5c;
      (dfa->lex).left = (size_t)local_60;
      goto LAB_0002318d;
    }
    uVar8 = 0;
    do {
      *(undefined4 *)((int)ccl.w + uVar8) = 0;
      uVar8 = uVar8 + 4;
    } while (uVar8 < 0x20);
    ppuVar9 = __ctype_b_loc();
    uVar8 = 0;
    puVar5 = *ppuVar9;
    do {
      if ((*(byte *)((int)puVar5 + uVar8 * 2 + 1) & 0x20) != 0) {
        ccl.w[uVar8 >> 5] = ccl.w[uVar8 >> 5] | 1 << ((byte)uVar8 & 0x1f);
      }
      uVar8 = uVar8 + 1;
    } while (uVar8 != 0x100);
    if (uVar18 == 0x53) {
LAB_00023b34:
      ccl.w[0] = ~ccl.w[0];
      ccl.w[1] = ~ccl.w[1];
      ccl.w[2] = ~ccl.w[2];
      ccl.w[3] = ~ccl.w[3];
      ccl.w[4] = ~ccl.w[4];
      ccl.w[5] = ~ccl.w[5];
      ccl.w[6] = ~ccl.w[6];
      ccl.w[7] = ~ccl.w[7];
    }
LAB_00023ae7:
    (dfa->lex).laststart = false;
    goto LAB_000237bd;
  case 0x51:
    (dfa->lex).laststart = false;
    uVar18 = parse_bracket_exp(dfa);
    (dfa->lex).lasttok = uVar18;
    goto LAB_0002318d;
  case 0x52:
    if (pbVar15 == (byte *)0x0) {
      pcVar13 = "unfinished \\ escape";
      goto LAB_00023a1b;
    }
    wVar4 = (dfa->localeinfo).sbctowc[local_5c[1]];
    local_60 = pbVar15;
    local_5c = pbVar1;
    if (wVar4 == 0xffffffff) {
      sVar10 = rpl_mbrtowc(&wch,(char *)pbVar1,(size_t)pbVar15,&dfa->mbs);
      if (0xfffffffc < sVar10 - 1) {
        pmVar20 = &dfa->mbs;
        for (iVar14 = 2; iVar14 != 0; iVar14 = iVar14 + -1) {
          pmVar20->__count = 0;
          pmVar20 = (mbstate_t *)((int)(pmVar20 + -(uint)bVar21) + 4);
        }
        local_5c = (byte *)(dfa->lex).ptr;
        local_60 = (byte *)(dfa->lex).left;
        goto LAB_00023748;
      }
      local_60 = (byte *)(dfa->lex).left;
      (dfa->lex).cur_mb_len = sVar10;
      (dfa->lex).wctok = wch;
      local_5c = (byte *)(dfa->lex).ptr;
      if (sVar10 != 1) goto LAB_00023235;
    }
    else {
LAB_00023748:
      (dfa->lex).cur_mb_len = 1;
      (dfa->lex).wctok = wVar4;
    }
    uVar18 = (uint)*local_5c;
    pbVar1 = local_5c + 1;
    (dfa->lex).ptr = (char *)pbVar1;
    pbVar15 = local_60 + -1;
    (dfa->lex).left = (size_t)pbVar15;
    switch(uVar18 - 10 & 0xff) {
    case 0:
      goto _L1503;
    case 0x1a:
      goto _L1438;
    case 0x1d:
      if (((dfa->syntax).syntax_bits & 0x80000) == 0) goto LAB_00023868;
      goto _L1449;
    case 0x1e:
      bVar21 = 1;
      goto LAB_00023262;
    case 0x1f:
      bVar21 = 1;
      goto LAB_0002351a;
    case 0x20:
      goto _L1469;
    case 0x21:
      bVar21 = 1;
      goto LAB_000234d2;
    case 0x24:
      bVar6 = true;
      goto LAB_0002336a;
    case 0x27:
    case 0x28:
    case 0x29:
    case 0x2a:
    case 0x2b:
    case 0x2c:
    case 0x2d:
    case 0x2e:
    case 0x2f:
      if (((dfa->syntax).syntax_bits & 0x4000) == 0) {
        (dfa->lex).laststart = false;
        uVar18 = 0x112;
        (dfa->lex).lasttok = 0x112;
        goto LAB_0002318d;
      }
    default:
_L1538:
      cVar16 = (dfa->localeinfo).multibyte;
      break;
    case 0x32:
      if (((dfa->syntax).syntax_bits & 0x80000) == 0) {
        (dfa->lex).lasttok = 0x10e;
        uVar18 = 0x10e;
        goto LAB_0002318d;
      }
      goto _L1452;
    case 0x34:
      if (((dfa->syntax).syntax_bits & 0x80000) == 0) {
        (dfa->lex).lasttok = 0x10f;
        uVar18 = 0x10f;
        goto LAB_0002318d;
      }
      goto _L1455;
    case 0x35:
      bVar21 = 1;
      goto LAB_000233b2;
    case 0x38:
      if (((dfa->syntax).syntax_bits & 0x80000) == 0) {
        (dfa->lex).lasttok = 0x111;
        uVar18 = 0x111;
        goto LAB_0002318d;
      }
      goto _L1461;
    case 0x49:
    case 0x69:
      bVar6 = true;
      local_60 = pbVar15;
      local_5c = pbVar1;
      goto LAB_0002342a;
    case 0x4d:
    case 0x6d:
      cVar16 = (dfa->localeinfo).multibyte;
      if (((dfa->syntax).syntax_bits & 0x80000) != 0) break;
      if ((_Bool)cVar16 != false) {
        pcVar13 = &UNK_0002f474 + (uVar18 == 0x77);
        local_60 = pbVar15;
        local_5c = pbVar1;
        goto LAB_0002345c;
      }
      uVar8 = 0;
      do {
        *(undefined4 *)((int)ccl.w + uVar8) = 0;
        uVar8 = uVar8 + 4;
      } while (uVar8 < 0x20);
      uVar8 = 0;
      do {
        if ((dfa->syntax).sbit[uVar8] == '\x02') {
          ccl.w[uVar8 >> 5] = ccl.w[uVar8 >> 5] | 1 << ((byte)uVar8 & 0x1f);
        }
        uVar8 = uVar8 + 1;
      } while (uVar8 != 0x100);
      if (uVar18 == 0x57) goto LAB_00023b34;
      goto LAB_00023ae7;
    case 0x51:
      cVar16 = (dfa->localeinfo).multibyte;
      uVar18 = 0x5b;
      break;
    case 0x52:
      cVar16 = (dfa->localeinfo).multibyte;
      uVar18 = 0x5c;
      break;
    case 0x54:
      goto _L1433;
    case 0x56:
      if (((dfa->syntax).syntax_bits & 0x80000) == 0) goto LAB_00023880;
      goto _L1446;
    case 0x58:
      if (((dfa->syntax).syntax_bits & 0x80000) == 0) {
        (dfa->lex).lasttok = 0x110;
        uVar18 = 0x110;
        goto LAB_0002318d;
      }
      goto _L1458;
    case 0x71:
      local_51 = 1;
      pbVar15 = local_60;
      pbVar17 = local_5c;
      local_5c = pbVar1;
      goto LAB_00023295;
    case 0x72:
      bVar21 = 1;
      goto LAB_000233fa;
    }
    break;
  case 0x54:
    if (((((dfa->syntax).syntax_bits & 8) != 0) ||
        (iVar14 = (dfa->lex).lasttok, iVar14 - 0x106U < 2)) || (iVar14 == -1)) {
LAB_00023880:
      (dfa->lex).lasttok = 0x10c;
      uVar18 = 0x10c;
      goto LAB_0002318d;
    }
_L1433:
    cVar16 = (dfa->localeinfo).multibyte;
    uVar18 = 0x5e;
    break;
  case 0x56:
_L1446:
    cVar16 = (dfa->localeinfo).multibyte;
    uVar18 = 0x60;
    break;
  case 0x58:
_L1458:
    cVar16 = (dfa->localeinfo).multibyte;
    uVar18 = 0x62;
    break;
  case 0x71:
    local_51 = 0;
    pbVar15 = local_60;
    pbVar17 = local_5c;
    local_5c = pbVar1;
LAB_00023295:
    uVar18 = (dfa->syntax).syntax_bits;
    if ((((uVar18 & 0x200) != 0) && ((((byte)(uVar18 >> 0xc) ^ 1) & 1) == local_51)) &&
       (((uVar18 & 0x10) != 0 || ((dfa->lex).laststart == false)))) {
      pbVar1 = pbVar17 + (int)pbVar15;
      (dfa->lex).maxrep = -1;
      (dfa->lex).minrep = -1;
      pbVar7 = local_5c;
      if (pbVar1 == local_5c) {
LAB_00023b5a:
        local_5c = pbVar7;
        if (local_51 == 0) {
LAB_00023a30:
          if (pbVar1 != local_5c) goto LAB_00023a3a;
        }
      }
      else {
        bVar21 = pbVar17[1];
        pbVar15 = (byte *)(int)(char)bVar21;
        if ((byte)(bVar21 - 0x30) < 10) {
          pbVar17 = (byte *)0xffffffff;
          local_60 = pbVar15;
          do {
            if ((-1 < (int)pbVar17) &&
               (local_60 = local_60 + (int)pbVar17 * 10, 0x8030 < (int)local_60)) {
              local_60 = (byte *)0x8030;
            }
            pbVar17 = local_60 + -0x30;
            (dfa->lex).minrep = (int)pbVar17;
            local_5c = local_5c + 1;
            pbVar7 = local_5c;
            if (pbVar1 == local_5c) goto LAB_00023b5a;
            local_60 = (byte *)(int)(char)*local_5c;
            pbVar15 = local_60 + -0x30;
          } while ((byte)pbVar15 < 10);
          if (*local_5c == 0x2c) {
            if ((int)pbVar17 < 0) goto LAB_00023bed;
LAB_00023b6e:
            pbVar15 = local_5c + 1;
            pbVar7 = pbVar1;
            if (pbVar1 == pbVar15) goto LAB_00023b5a;
            bVar21 = local_5c[1];
            local_5c = pbVar15;
            if ((byte)(bVar21 - 0x30) < 10) {
              iVar14 = -1;
              do {
                iVar19 = (int)(char)bVar21;
                if ((-1 < iVar14) && (iVar19 = iVar19 + iVar14 * 10, 0x8030 < iVar19)) {
                  iVar19 = 0x8030;
                }
                iVar14 = iVar19 + -0x30;
                (dfa->lex).maxrep = iVar14;
                pbVar15 = pbVar15 + 1;
                if (pbVar1 == pbVar15) goto LAB_00023b5a;
                bVar21 = *pbVar15;
                local_5c = pbVar15;
              } while ((byte)(bVar21 - 0x30) < 10);
            }
            goto LAB_00023bd8;
          }
          (dfa->lex).maxrep = (int)pbVar17;
          if (local_51 == 0) goto LAB_00023a30;
LAB_000239fb:
          if (*local_5c == 0x5c) {
            local_5c = local_5c + 1;
            goto LAB_00023a30;
          }
        }
        else {
          if (bVar21 == 0x2c) {
LAB_00023bed:
            (dfa->lex).minrep = 0;
            goto LAB_00023b6e;
          }
LAB_00023bd8:
          if (local_51 != 0) goto LAB_000239fb;
LAB_00023a3a:
          if ((*local_5c == 0x7d) && (pbVar17 = (byte *)(dfa->lex).minrep, -1 < (int)pbVar17)) {
            iVar14 = (dfa->lex).maxrep;
            if (-1 < iVar14) {
              if (iVar14 < (int)pbVar17) goto LAB_00023a04;
              if (0x7fff < iVar14) {
                pcVar13 = "regular expression too big";
                goto LAB_00023a1b;
              }
            }
            (dfa->lex).laststart = false;
            uVar18 = 0x104;
            (dfa->lex).lasttok = 0x104;
            (dfa->lex).ptr = (char *)(local_5c + 1);
            (dfa->lex).left = (int)pbVar1 - (int)(local_5c + 1);
            goto LAB_0002318d;
          }
        }
      }
LAB_00023a04:
      if ((uVar18 & 0x200000) == 0) {
        pcVar13 = "invalid content of \\{\\}";
        pbVar17 = pbVar15;
LAB_00023a1b:
        pcVar13 = (char *)dcgettext(0,pcVar13,5,pbVar17);
                    /* WARNING: Subroutine does not return */
        dfaerror(pcVar13);
      }
    }
    cVar16 = (dfa->localeinfo).multibyte;
    uVar18 = 0x7b;
    break;
  case 0x72:
    bVar21 = 0;
LAB_000233fa:
    uVar18 = (dfa->syntax).syntax_bits;
    if (((uVar18 & 0x400) != 0) || ((((byte)(uVar18 >> 0xf) ^ 1) & 1) != bVar21)) {
      cVar16 = (dfa->localeinfo).multibyte;
      uVar18 = 0x7c;
      break;
    }
LAB_000238f1:
    (dfa->lex).laststart = true;
    uVar18 = 0x106;
    (dfa->lex).lasttok = 0x106;
    goto LAB_0002318d;
  }
LAB_00023160:
  (dfa->lex).laststart = false;
  if (cVar16 == '\0') {
    if (((dfa->syntax).case_fold != false) &&
       (ppuVar9 = __ctype_b_loc(), (*(byte *)((int)*ppuVar9 + uVar18 * 2 + 1) & 4) != 0)) {
      uVar8 = 0;
      do {
        *(undefined4 *)((int)ccl.w + uVar8) = 0;
        uVar8 = uVar8 + 4;
      } while (uVar8 < 0x20);
      setbit_case_fold_c(uVar18,&ccl);
LAB_000237bd:
      pVar12 = charclass_index(dfa,&ccl);
      uVar18 = pVar12 + 0x114;
    }
    (dfa->lex).lasttok = uVar18;
  }
  else {
    (dfa->lex).lasttok = 0x109;
    uVar18 = 0x109;
  }
LAB_0002318d:
  if (iVar3 == *(int *)(in_GS_OFFSET + 0x14)) {
    return uVar18;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail_local();
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

uint __regparm3 FUN_000230c0(uint *param_1)

{
  int iVar1;
  ushort *puVar2;
  byte *pbVar3;
  bool bVar4;
  uint uVar5;
  ushort **ppuVar6;
  byte *pbVar7;
  char *pcVar8;
  size_t sVar9;
  int iVar10;
  undefined4 uVar11;
  byte *pbVar12;
  byte *extraout_ECX;
  undefined1 *puVar13;
  undefined1 *puVar14;
  byte **ppbVar15;
  undefined1 *puVar16;
  undefined1 *puVar17;
  undefined1 *puVar18;
  uint uVar19;
  uint *puVar20;
  int in_GS_OFFSET;
  byte bVar21;
  undefined4 uStackY_80;
  byte *pbStack_74;
  uint *puStack_70;
  undefined1 auStack_6c [12];
  byte *local_60;
  byte *local_5c [2];
  byte bStack_51;
  uint auStack_50 [4];
  uint local_40 [11];
  undefined4 uStack_14;
  
  bVar21 = 0;
  uStack_14 = 0x230cb;
  pbVar12 = (byte *)param_1[0x97];
  local_40[8] = *(undefined4 *)(in_GS_OFFSET + 0x14);
  if (pbVar12 == (byte *)0x0) {
    param_1[0x98] = 0xffffffff;
    uVar19 = 0xffffffff;
    puVar13 = auStack_6c;
    goto LAB_0002318d;
  }
  pbVar7 = (byte *)param_1[0x96];
  uVar19 = param_1[*pbVar7 + 0x10d];
  if (uVar19 == 0xffffffff) {
    puStack_70 = param_1 + 0xb2;
    pbStack_74 = pbVar12;
    uVar5 = FUN_0002b6f0(auStack_50 + 3,pbVar7);
    if (0xfffffffc < uVar5 - 1) {
      param_1[0xb2] = 0;
      pbVar7 = (byte *)param_1[0x96];
      param_1[0xb3] = 0;
      pbVar12 = (byte *)param_1[0x97];
      goto LAB_00023107;
    }
    pbVar12 = (byte *)param_1[0x97];
    param_1[0x9d] = uVar5;
    param_1[0x9c] = auStack_50[3];
    pbVar7 = (byte *)param_1[0x96];
    if (uVar5 == 1) goto LAB_00023117;
code_r0x00023235:
    uVar19 = 0xffffffff;
    param_1[0x96] = (uint)(pbVar7 + uVar5);
    bVar21 = (byte)param_1[0xcc];
    param_1[0x97] = (int)pbVar12 - uVar5;
    puVar13 = auStack_6c;
    goto LAB_00023160;
  }
LAB_00023107:
  param_1[0x9c] = uVar19;
  param_1[0x9d] = 1;
LAB_00023117:
  puVar14 = auStack_6c;
  puVar18 = auStack_6c;
  puVar16 = auStack_6c;
  puVar17 = auStack_6c;
  puVar13 = auStack_6c;
  uVar19 = (uint)*pbVar7;
  local_5c[0] = pbVar7 + 1;
  param_1[0x96] = (uint)local_5c[0];
  local_60 = pbVar12 + -1;
  param_1[0x97] = (uint)local_60;
  if (0x72 < (byte)(uVar19 - 10)) goto LAB_00023150;
  uVar5 = uVar19 - 10 & 0xff;
  switch(uVar5) {
  case 0:
    if (((*param_1 & 0x400) != 0) || ((*param_1 & 0x800) == 0)) {
code_r0x0002359b:
      bVar21 = (byte)param_1[0xcc];
      uVar19 = 10;
      puVar13 = auStack_6c;
      break;
    }
    goto code_r0x000238f1;
  default:
    goto LAB_00023150;
  case 0x1a:
    uVar19 = *param_1;
    if ((((((uVar19 & 8) != 0) || (local_60 == (byte *)0x0)) ||
         ((pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&
          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)))) ||
        ((pbVar12 = (byte *)((uVar19 >> 0xf ^ 1) & 1), pbVar12 < local_60 &&
         (local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c)))) ||
       (((uVar19 & 0x800) != 0 && (pbVar7[1] == 10)))) {
code_r0x00023868:
      param_1[0x98] = 0x10d;
      uVar19 = 0x10d;
      puVar13 = auStack_6c;
      goto LAB_0002318d;
    }
code_r0x00023673:
    bVar21 = (byte)param_1[0xcc];
    uVar19 = 0x24;
    puVar13 = auStack_6c;
    break;
  case 0x1d:
code_r0x00023690:
    bVar21 = (byte)param_1[0xcc];
    uVar19 = 0x27;
    puVar13 = auStack_6c;
    break;
  case 0x1e:
    bVar21 = 0;
code_r0x00023262:
    if ((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) {
      param_1[0x99] = param_1[0x99] + 1;
      uVar19 = 0x107;
      *(byte *)(param_1 + 0xa3) = 1;
      param_1[0x98] = 0x107;
      puVar13 = auStack_6c;
      goto LAB_0002318d;
    }
    bVar21 = (byte)param_1[0xcc];
    uVar19 = 0x28;
    puVar13 = auStack_6c;
    break;
  case 0x1f:
    bVar21 = 0;
code_r0x0002351a:
    if (((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) &&
       ((param_1[0x99] != 0 || ((*param_1 & 0x20000) == 0)))) {
      *(byte *)(param_1 + 0xa3) = 0;
      uVar19 = 0x108;
      param_1[0x99] = param_1[0x99] - 1;
      param_1[0x98] = 0x108;
      puVar13 = auStack_6c;
      goto LAB_0002318d;
    }
    bVar21 = (byte)param_1[0xcc];
    uVar19 = 0x29;
    puVar13 = auStack_6c;
    break;
  case 0x20:
    if (((*param_1 & 0x10) != 0) || ((byte)param_1[0xa3] == 0)) {
      param_1[0x98] = 0x102;
      uVar19 = 0x102;
      puVar13 = auStack_6c;
      goto LAB_0002318d;
    }
code_r0x00023894:
    bVar21 = (byte)param_1[0xcc];
    uVar19 = 0x2a;
    puVar13 = auStack_6c;
    break;
  case 0x21:
    bVar21 = 0;
code_r0x000234d2:
    uVar19 = *param_1;
    if ((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&
       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))) {
      param_1[0x98] = 0x103;
      uVar19 = 0x103;
      puVar13 = auStack_6c;
      goto LAB_0002318d;
    }
    bVar21 = (byte)param_1[0xcc];
    uVar19 = 0x2b;
    puVar13 = auStack_6c;
    break;
  case 0x24:
    bVar4 = false;
code_r0x0002336a:
    bVar21 = (byte)param_1[0xcc];
    if (!bVar4) {
      uVar5 = param_1[0x95];
      if (uVar5 == 0xffffffff) {
        local_40[0] = 0xffffffff;
        local_40[1] = 0xffffffff;
        local_40[2] = 0xffffffff;
        local_40[3] = 0xffffffff;
        local_40[4] = 0xffffffff;
        local_40[5] = 0xffffffff;
        local_40[6] = 0xffffffff;
        local_40[7] = 0xffffffff;
        if ((*param_1 & 0x40) == 0) {
          local_40[0] = 0xfffffbff;
        }
        if ((*param_1 & 0x80) != 0) {
          local_40[0] = local_40[0] & 0xfffffffe;
        }
        if (bVar21 != 0) {
          uVar19 = 0;
          do {
            if (param_1[uVar19 + 0x10d] == 0xffffffff) {
              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));
            }
            uVar19 = uVar19 + 1;
          } while (uVar19 != 0x100);
        }
        puStack_70 = (uint *)&UNK_000239cf;
        uVar5 = FUN_0001e6a0();
        bVar21 = (byte)param_1[0xcc];
        param_1[0x95] = uVar5;
      }
      *(byte *)(param_1 + 0xa3) = 0;
      uVar19 = 0x10a;
      if (bVar21 == 0) {
        uVar19 = uVar5 + 0x114;
      }
      param_1[0x98] = uVar19;
      puVar13 = auStack_6c;
      goto LAB_0002318d;
    }
    uVar19 = 0x2e;
    puVar13 = auStack_6c;
    break;
  case 0x32:
code_r0x000236f8:
    bVar21 = (byte)param_1[0xcc];
    uVar19 = 0x3c;
    puVar13 = auStack_6c;
    break;
  case 0x34:
code_r0x000236e0:
    bVar21 = (byte)param_1[0xcc];
    uVar19 = 0x3e;
    puVar13 = auStack_6c;
    break;
  case 0x35:
    bVar21 = 0;
code_r0x000233b2:
    uVar19 = *param_1;
    if ((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&
       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))) {
      param_1[0x98] = 0x101;
      uVar19 = 0x101;
      puVar13 = auStack_6c;
      goto LAB_0002318d;
    }
    bVar21 = (byte)param_1[0xcc];
    uVar19 = 0x3f;
    puVar13 = auStack_6c;
    break;
  case 0x38:
code_r0x00023710:
    bVar21 = (byte)param_1[0xcc];
    uVar19 = 0x42;
    puVar13 = auStack_6c;
    break;
  case 0x49:
  case 0x69:
    bVar4 = false;
code_r0x0002342a:
    bVar21 = (byte)param_1[0xcc];
    puVar13 = auStack_6c;
    if ((!bVar4) || (puVar13 = auStack_6c, (*param_1 & 0x80000) != 0)) break;
    if (bVar21 != 0) {
      pcVar8 = &UNK_0002f468 + (uVar19 == 0x73);
code_r0x0002345c:
      param_1[0x96] = (uint)pcVar8;
      sVar9 = strlen(pcVar8);
      param_1[0x97] = sVar9;
      puStack_70 = (uint *)&UNK_0002347b;
      uVar19 = FUN_00021f80();
      *(byte *)(param_1 + 0xa3) = 0;
      param_1[0x98] = uVar19;
      param_1[0x96] = (uint)local_5c[0];
      param_1[0x97] = (uint)local_60;
      puVar13 = auStack_6c;
      goto LAB_0002318d;
    }
    uVar5 = 0;
    do {
      *(undefined4 *)((int)local_40 + uVar5) = 0;
      uVar5 = uVar5 + 4;
    } while (uVar5 < 0x20);
    puStack_70 = (uint *)&UNK_00023ab3;
    ppuVar6 = __ctype_b_loc();
    uVar5 = 0;
    puVar2 = *ppuVar6;
    do {
      if ((*(byte *)((int)puVar2 + uVar5 * 2 + 1) & 0x20) != 0) {
        local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);
      }
      uVar5 = uVar5 + 1;
    } while (uVar5 != 0x100);
    if (uVar19 == 0x53) {
code_r0x00023b34:
      local_40[0] = ~local_40[0];
      local_40[1] = ~local_40[1];
      local_40[2] = ~local_40[2];
      local_40[3] = ~local_40[3];
      local_40[4] = ~local_40[4];
      local_40[5] = ~local_40[5];
      local_40[6] = ~local_40[6];
      local_40[7] = ~local_40[7];
    }
code_r0x00023ae7:
    *(byte *)(param_1 + 0xa3) = 0;
    goto code_r0x000237bd;
  case 0x51:
    *(byte *)(param_1 + 0xa3) = 0;
    puStack_70 = (uint *)&UNK_0002357e;
    uVar19 = FUN_00021f80();
    param_1[0x98] = uVar19;
    puVar13 = auStack_6c;
    goto LAB_0002318d;
  case 0x52:
    if (local_60 == (byte *)0x0) {
      pcVar8 = "unfinished \\ escape";
      ppbVar15 = &pbStack_74;
      pbStack_74 = (byte *)0x5;
      puStack_70 = (uint *)((int)&__DT_PLTGOT + *(int *)(&DAT_0002ef08 + uVar5 * 4));
      goto code_r0x00023a1b;
    }
    pbVar12 = (byte *)param_1[pbVar7[1] + 0x10d];
    if (pbVar12 == (byte *)0xffffffff) {
      pbStack_74 = local_60;
      puStack_70 = param_1 + 0xb2;
      local_5c[1] = pbVar12;
      uVar5 = FUN_0002b6f0(auStack_50 + 3,local_5c[0]);
      if (0xfffffffc < uVar5 - 1) {
        puVar20 = param_1 + 0xb2;
        for (iVar10 = 2; iVar10 != 0; iVar10 = iVar10 + -1) {
          *puVar20 = 0;
          puVar20 = puVar20 + (uint)bVar21 * -2 + 1;
        }
        local_5c[0] = (byte *)param_1[0x96];
        local_60 = (byte *)param_1[0x97];
        pbVar12 = local_5c[1];
        goto code_r0x00023748;
      }
      pbVar12 = (byte *)param_1[0x97];
      param_1[0x9d] = uVar5;
      param_1[0x9c] = auStack_50[3];
      pbVar7 = (byte *)param_1[0x96];
      if (uVar5 != 1) goto code_r0x00023235;
    }
    else {
code_r0x00023748:
      param_1[0x9d] = 1;
      param_1[0x9c] = (uint)pbVar12;
      pbVar12 = local_60;
      pbVar7 = local_5c[0];
    }
    uVar19 = (uint)*pbVar7;
    local_5c[0] = pbVar7 + 1;
    param_1[0x96] = (uint)(pbVar7 + 1);
    local_60 = pbVar12 + -1;
    param_1[0x97] = (uint)(pbVar12 + -1);
    switch(uVar19 - 10 & 0xff) {
    case 0:
      goto code_r0x0002359b;
    case 0x1a:
      goto code_r0x00023673;
    case 0x1d:
      if ((*param_1 & 0x80000) == 0) goto code_r0x00023868;
      goto code_r0x00023690;
    case 0x1e:
      bVar21 = 1;
      goto code_r0x00023262;
    case 0x1f:
      bVar21 = 1;
      goto code_r0x0002351a;
    case 0x20:
      goto code_r0x00023894;
    case 0x21:
      bVar21 = 1;
      goto code_r0x000234d2;
    case 0x24:
      bVar4 = true;
      goto code_r0x0002336a;
    case 0x27:
    case 0x28:
    case 0x29:
    case 0x2a:
    case 0x2b:
    case 0x2c:
    case 0x2d:
    case 0x2e:
    case 0x2f:
      if ((*param_1 & 0x4000) == 0) {
        *(byte *)(param_1 + 0xa3) = 0;
        uVar19 = 0x112;
        param_1[0x98] = 0x112;
        goto LAB_0002318d;
      }
    default:
LAB_00023150:
      bVar21 = (byte)param_1[0xcc];
      puVar13 = auStack_6c;
      break;
    case 0x32:
      if ((*param_1 & 0x80000) == 0) {
        param_1[0x98] = 0x10e;
        uVar19 = 0x10e;
        puVar13 = auStack_6c;
        goto LAB_0002318d;
      }
      goto code_r0x000236f8;
    case 0x34:
      if ((*param_1 & 0x80000) == 0) {
        param_1[0x98] = 0x10f;
        uVar19 = 0x10f;
        puVar13 = auStack_6c;
        goto LAB_0002318d;
      }
      goto code_r0x000236e0;
    case 0x35:
      bVar21 = 1;
      goto code_r0x000233b2;
    case 0x38:
      if ((*param_1 & 0x80000) == 0) {
        param_1[0x98] = 0x111;
        uVar19 = 0x111;
        puVar13 = auStack_6c;
        goto LAB_0002318d;
      }
      goto code_r0x00023710;
    case 0x49:
    case 0x69:
      bVar4 = true;
      goto code_r0x0002342a;
    case 0x4d:
    case 0x6d:
      bVar21 = (byte)param_1[0xcc];
      puVar13 = auStack_6c;
      if ((*param_1 & 0x80000) != 0) break;
      if (bVar21 != 0) {
        pcVar8 = &UNK_0002f474 + (uVar19 == 0x77);
        goto code_r0x0002345c;
      }
      uVar5 = 0;
      do {
        *(undefined4 *)((int)local_40 + uVar5) = 0;
        uVar5 = uVar5 + 4;
      } while (uVar5 < 0x20);
      uVar5 = 0;
      do {
        if (*(byte *)((int)param_1 + uVar5 + 8) == 2) {
          local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);
        }
        uVar5 = uVar5 + 1;
      } while (uVar5 != 0x100);
      if (uVar19 == 0x57) goto code_r0x00023b34;
      goto code_r0x00023ae7;
    case 0x51:
      bVar21 = (byte)param_1[0xcc];
      uVar19 = 0x5b;
      puVar13 = auStack_6c;
      break;
    case 0x52:
      bVar21 = (byte)param_1[0xcc];
      uVar19 = 0x5c;
      puVar13 = auStack_6c;
      break;
    case 0x54:
      goto code_r0x000235d7;
    case 0x56:
      if ((*param_1 & 0x80000) == 0) goto code_r0x00023880;
      goto code_r0x000236c8;
    case 0x58:
      if ((*param_1 & 0x80000) == 0) {
        param_1[0x98] = 0x110;
        uVar19 = 0x110;
        puVar13 = auStack_6c;
        goto LAB_0002318d;
      }
      goto code_r0x000236a8;
    case 0x71:
      bStack_51 = 1;
      goto code_r0x00023295;
    case 0x72:
      bVar21 = 1;
      goto code_r0x000233fa;
    }
    break;
  case 0x54:
    if ((((*param_1 & 8) != 0) || (param_1[0x98] - 0x106 < 2)) || (param_1[0x98] == 0xffffffff)) {
code_r0x00023880:
      param_1[0x98] = 0x10c;
      uVar19 = 0x10c;
      puVar13 = auStack_6c;
      goto LAB_0002318d;
    }
code_r0x000235d7:
    bVar21 = (byte)param_1[0xcc];
    uVar19 = 0x5e;
    puVar13 = auStack_6c;
    break;
  case 0x56:
code_r0x000236c8:
    bVar21 = (byte)param_1[0xcc];
    uVar19 = 0x60;
    puVar13 = auStack_6c;
    break;
  case 0x58:
code_r0x000236a8:
    bVar21 = (byte)param_1[0xcc];
    uVar19 = 0x62;
    puVar13 = auStack_6c;
    break;
  case 0x71:
    bStack_51 = 0;
code_r0x00023295:
    auStack_50[0] = *param_1;
    puVar13 = auStack_6c;
    if ((((auStack_50[0] & 0x200) != 0) &&
        (puVar13 = auStack_6c, (((byte)(auStack_50[0] >> 0xc) ^ 1) & 1) == bStack_51)) &&
       (((auStack_50[0] & 0x10) != 0 || (puVar13 = auStack_6c, (byte)param_1[0xa3] == 0)))) {
      local_5c[1] = pbVar7 + (int)pbVar12;
      param_1[0x9b] = 0xffffffff;
      param_1[0x9a] = 0xffffffff;
      if (local_5c[1] == local_5c[0]) {
code_r0x00023b5a:
        puVar13 = auStack_6c;
        if (bStack_51 == 0) goto code_r0x00023a30;
      }
      else {
        bVar21 = pbVar7[1];
        pbVar12 = (byte *)(int)(char)bVar21;
        if ((byte)(bVar21 - 0x30) < 10) {
          pbVar7 = (byte *)0xffffffff;
          local_60 = pbVar12;
          do {
            pbVar3 = local_60;
            if ((-1 < (int)pbVar7) &&
               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))
            {
              pbVar3 = (byte *)0x8030;
            }
            pbVar7 = pbVar3 + -0x30;
            param_1[0x9a] = (uint)pbVar7;
            local_5c[0] = local_5c[0] + 1;
            if (local_5c[1] == local_5c[0]) {
              goto code_r0x00023b5a;
            }
            bVar21 = *local_5c[0];
            local_60 = (byte *)(int)(char)bVar21;
            pbVar12 = (byte *)(int)(char)bVar21 + -0x30;
          } while ((byte)pbVar12 < 10);
          if (bVar21 == 0x2c) {
            if ((int)pbVar7 < 0) goto code_r0x00023bed;
code_r0x00023b6e:
            pbVar12 = local_5c[0] + 1;
            if (local_5c[1] == pbVar12) {
code_r0x00023bca:
              local_5c[0] = local_5c[1];
              goto code_r0x00023b5a;
            }
            bVar21 = local_5c[0][1];
            if ((byte)(bVar21 - 0x30) < 10) {
              uVar19 = 0xffffffff;
              do {
                iVar10 = (int)(char)bVar21;
                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {
                  iVar10 = 0x8030;
                }
                uVar19 = iVar10 - 0x30;
                param_1[0x9b] = uVar19;
                pbVar12 = pbVar12 + 1;
                if (local_5c[1] == pbVar12) goto code_r0x00023bca;
                bVar21 = *pbVar12;
              } while ((byte)(bVar21 - 0x30) < 10);
            }
            local_5c[0] = pbVar12;
            goto code_r0x00023bd8;
          }
          param_1[0x9b] = (uint)pbVar7;
          puVar17 = auStack_6c;
          if (bStack_51 == 0) goto code_r0x00023a30;
        }
        else {
          if (bVar21 == 0x2c) {
code_r0x00023bed:
            param_1[0x9a] = 0;
            goto code_r0x00023b6e;
          }
code_r0x00023bd8:
          if (bStack_51 == 0) goto code_r0x00023a3a;
        }
        puVar13 = auStack_6c;
        if (*local_5c[0] == 0x5c) goto code_r0x00023a2b;
      }
code_r0x00023a04:
      if ((*(uint *)(puVar13 + 0x1c) & 0x200000) == 0) {
        *(byte **)(puVar13 + -4) = pbVar12;
        pcVar8 = "invalid content of \\{\\}";
        ppbVar15 = (byte **)(puVar13 + -8);
        *(undefined4 *)(puVar13 + -8) = 5;
code_r0x00023a1b:
        while( true ) {
          *(char **)((int)ppbVar15 + -4) = pcVar8;
          puVar16 = (undefined1 *)((int)ppbVar15 + -8);
          *(undefined4 *)((int)ppbVar15 + -8) = 0;
          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23;
          uVar11 = dcgettext();
          *(undefined4 *)((int)ppbVar15 + -8) = uVar11;
          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b;
          FUN_0001be40();
          pbVar12 = extraout_ECX;
code_r0x00023a2b:
          *(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;
          puVar17 = puVar16;
code_r0x00023a30:
          puVar13 = puVar17;
          puVar18 = puVar17;
          if (*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)) break;
code_r0x00023a3a:
          puVar13 = puVar18;
          if ((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))
          break;
          uVar5 = param_1[0x9b];
          if ((int)uVar5 < 0) {
code_r0x00023a66:
            iVar10 = *(int *)(puVar18 + 0x10);
            iVar1 = *(int *)(puVar18 + 0x14);
            *(byte *)(param_1 + 0xa3) = 0;
            uVar19 = 0x104;
            param_1[0x98] = 0x104;
            param_1[0x96] = iVar10 + 1U;
            param_1[0x97] = iVar1 - (iVar10 + 1U);
            goto LAB_0002318d;
          }
          if ((int)uVar5 < (int)uVar19) break;
          if ((int)uVar5 < 0x8000) goto code_r0x00023a66;
          pcVar8 = "regular expression too big";
          *(uint *)(puVar18 + -4) = uVar19;
          ppbVar15 = (byte **)(puVar18 + -8);
          *(undefined4 *)(puVar18 + -8) = 5;
        }
        goto code_r0x00023a04;
      }
    }
    bVar21 = (byte)param_1[0xcc];
    uVar19 = 0x7b;
    break;
  case 0x72:
    bVar21 = 0;
code_r0x000233fa:
    if (((*param_1 & 0x400) != 0) || ((((byte)(*param_1 >> 0xf) ^ 1) & 1) != bVar21)) {
      bVar21 = (byte)param_1[0xcc];
      uVar19 = 0x7c;
      puVar13 = auStack_6c;
      break;
    }
code_r0x000238f1:
    *(byte *)(param_1 + 0xa3) = 1;
    uVar19 = 0x106;
    param_1[0x98] = 0x106;
    puVar13 = auStack_6c;
    goto LAB_0002318d;
  }
LAB_00023160:
  puVar14 = puVar13;
  *(byte *)(param_1 + 0xa3) = 0;
  if (bVar21 == 0) {
    if (*(byte *)((int)param_1 + 5) != 0) {
      *(undefined4 *)(puVar14 + -4) = 0x2317a;
      ppuVar6 = __ctype_b_loc();
      if ((*(byte *)((int)*ppuVar6 + uVar19 * 2 + 1) & 4) != 0) {
        uVar19 = 0;
        do {
          *(undefined4 *)(puVar14 + uVar19 + 0x2c) = 0;
          uVar19 = uVar19 + 4;
        } while (uVar19 < 0x20);
        *(undefined4 *)(puVar14 + -4) = 0x237bd;
        FUN_0001da50();
code_r0x000237bd:
        *(undefined4 *)(puVar14 + -4) = 0x237c6;
        iVar10 = FUN_0001e6a0();
        uVar19 = iVar10 + 0x114;
      }
    }
    param_1[0x98] = uVar19;
    puVar13 = puVar14;
  }
  else {
    param_1[0x98] = 0x109;
    uVar19 = 0x109;
    puVar13 = puVar14;
  }
LAB_0002318d:
  if (*(int *)(puVar13 + 0x4c) == *(int *)(in_GS_OFFSET + 0x14)) {
    return uVar19;
  }
                    /* WARNING: Subroutine does not return */
  *(undefined **)(puVar13 + -4) = &UNK_00023c01;
  FUN_0002c430();
}


PUSH EBP
PUSH EDI
PUSH ESI
MOV ESI,EAX
PUSH EBX
CALL 0x00012c30
ADD EBX,0x15f35
SUB ESP,0x5c
MOV ECX,dword ptr [ESI + 0x25c]
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0x4c],EAX
XOR EAX,EAX
TEST ECX,ECX
JZ 0x000238d0
MOV EDX,dword ptr [ESI + 0x258]
MOVZX EAX,byte ptr [EDX]
MOV EDI,dword ptr [ESI + EAX*0x4 + 0x434]
CMP EDI,-0x1
JZ 0x000231b0
MOV dword ptr [ESI + 0x270],EDI
MOV dword ptr [ESI + 0x274],0x1
MOVZX EDI,byte ptr [EDX]
LEA EBP,[EDX + 0x1]
MOV dword ptr [ESP + 0x10],EBP
MOV EAX,EDI
MOV dword ptr [ESI + 0x258],EBP
LEA EBP,[ECX + -0x1]
SUB EAX,0xa
MOV dword ptr [ESP + 0xc],EBP
MOV dword ptr [ESI + 0x25c],EBP
CMP AL,0x72
JA 0x00023150
MOVZX EAX,AL
MOV EBP,dword ptr [EBX + EAX*0x4 + 0xffff5f08]
ADD EBP,EBX
JMP EBP
MOVZX EDX,byte ptr [ESI + 0x330]
LEA ESI,[ESI]
NOP
MOV byte ptr [ESI + 0x28c],0x0
TEST DL,DL
JNZ 0x000231f8
CMP byte ptr [ESI + 0x5],0x0
JZ 0x00023187
CALL 0x000126b0
MOV EAX,dword ptr [EAX]
TEST byte ptr [EAX + EDI*0x2 + 0x1],0x4
JNZ 0x000237a0
MOV dword ptr [ESI + 0x260],EDI
MOV EBX,dword ptr [ESP + 0x4c]
XOR EBX,dword ptr GS:[0x14]
MOV EAX,EDI
JNZ 0x00023bfc
ADD ESP,0x5c
POP EBX
POP ESI
POP EDI
POP EBP
RET
LEA EBP,[ESI + 0x2c8]
PUSH EBP
PUSH ECX
PUSH EDX
LEA EAX,[ESP + 0x34]
PUSH EAX
CALL 0x0002b6f0
ADD ESP,0x10
LEA EDX,[EAX + -0x1]
CMP EDX,-0x4
JBE 0x00023210
MOV dword ptr [ESI + 0x2c8],0x0
MOV EDX,dword ptr [ESI + 0x258]
MOV dword ptr [ESI + 0x2cc],0x0
MOV ECX,dword ptr [ESI + 0x25c]
JMP 0x00023107
MOV dword ptr [ESI + 0x260],0x109
MOV EDI,0x109
JMP 0x0002318d
MOV EDX,dword ptr [ESP + 0x28]
MOV ECX,dword ptr [ESI + 0x25c]
MOV dword ptr [ESI + 0x274],EAX
MOV dword ptr [ESI + 0x270],EDX
MOV EDX,dword ptr [ESI + 0x258]
CMP EAX,0x1
JZ 0x00023117
ADD EDX,EAX
SUB ECX,EAX
MOV EDI,0xffffffff
MOV dword ptr [ESI + 0x258],EDX
MOVZX EDX,byte ptr [ESI + 0x330]
MOV dword ptr [ESI + 0x25c],ECX
JMP 0x00023160
LEA EBP,[ESP + 0x2c]
XOR EDX,EDX
XOR EAX,EAX
MOV dword ptr [EBP + EAX*0x1],EDX
ADD EAX,0x4
CMP EAX,0x20
JC 0x000237a8
MOV EDX,EBP
MOV EAX,EDI
CALL 0x0001da50
MOV EDX,EBP
MOV EAX,ESI
CALL 0x0001e6a0
LEA EDI,[EAX + 0x114]
JMP 0x00023187
MOV dword ptr [ESI + 0x260],0xffffffff
MOV EDI,0xffffffff
JMP 0x0002318d
CALL 0x0002c430
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nuint __regparm3 FUN_000230c0(uint *param_1)\n\n{\n  int iVar1;\n  ushort *puVar2;\n  byte *pbVar3;\n  bool bVar4;\n  uint uVar5;\n  ushort **ppuVar6;\n  byte *pbVar7;\n  char *pcVar8;\n  size_t sVar9;\n  int iVar10;\n  undefined4 uVar11;\n  byte *pbVar12;\n  byte *extraout_ECX;\n  undefined1 *puVar13;\n  undefined1 *puVar14;\n  byte **ppbVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  undefined1 *puVar18;\n  uint uVar19;\n  uint *puVar20;\n  int in_GS_OFFSET;\n  byte bVar21;\n  undefined4 uStackY_80;\n  byte *pbStack_74;\n  uint *puStack_70;\n  undefined1 auStack_6c [12];\n  byte *local_60;\n  byte *local_5c [2];\n  byte bStack_51;\n  uint auStack_50 [4];\n  uint local_40 [11];\n  undefined4 uStack_14;\n  \n  bVar21 = 0;\n  uStack_14 = 0x230cb;\n  pbVar12 = (byte *)param_1[0x97];\n  local_40[8] = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  if (pbVar12 == (byte *)0x0) {\n    param_1[0x98] = 0xffffffff;\n    uVar19 = 0xffffffff;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;\n  }\n  pbVar7 = (byte *)param_1[0x96];\n  uVar19 = param_1[*pbVar7 + 0x10d];\n  if (uVar19 == 0xffffffff) {\n    puStack_70 = param_1 + 0xb2;\n    pbStack_74 = pbVar12;\n    uVar5 = FUN_0002b6f0(auStack_50 + 3,pbVar7);\n    if (0xfffffffc < uVar5 - 1) {\n      param_1[0xb2] = 0;\n      pbVar7 = (byte *)param_1[0x96];\n      param_1[0xb3] = 0;\n      pbVar12 = (byte *)param_1[0x97];\n      goto LAB_00023107;\n    }\n    pbVar12 = (byte *)param_1[0x97];\n    param_1[0x9d] = uVar5;\n    param_1[0x9c] = auStack_50[3];\n    pbVar7 = (byte *)param_1[0x96];\n    if (uVar5 == 1) goto LAB_00023117;\ncode_r0x00023235:\n    uVar19 = 0xffffffff;\n    param_1[0x96] = (uint)(pbVar7 + uVar5);\n    bVar21 = (byte)param_1[0xcc];\n    param_1[0x97] = (int)pbVar12 - uVar5;\n    puVar13 = auStack_6c;\n    goto LAB_00023160;\n  }\nLAB_00023107:\n  param_1[0x9c] = uVar19;\n  param_1[0x9d] = 1;\nLAB_00023117:\n  puVar14 = auStack_6c;\n  puVar18 = auStack_6c;\n  puVar16 = auStack_6c;\n  puVar17 = auStack_6c;\n  puVar13 = auStack_6c;\n  uVar19 = (uint)*pbVar7;\n  local_5c[0] = pbVar7 + 1;\n  param_1[0x96] = (uint)local_5c[0];\n  local_60 = pbVar12 + -1;\n  param_1[0x97] = (uint)local_60;\n  if (0x72 < (byte)(uVar19 - 10)) goto LAB_00023150;\n  uVar5 = uVar19 - 10 & 0xff;\n  switch(uVar5) {\n  case 0:\n    if (((*param_1 & 0x400) != 0) || ((*param_1 & 0x800) == 0)) {\ncode_r0x0002359b:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 10;\n      puVar13 = auStack_6c;\n      break;\n    }\n    goto code_r0x000238f1;\n  default:\n    goto LAB_00023150;\n  case 0x1a:\n    uVar19 = *param_1;\n    if ((((((uVar19 & 8) != 0) || (local_60 == (byte *)0x0)) ||\n         ((pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)))) ||\n        ((pbVar12 = (byte *)((uVar19 >> 0xf ^ 1) & 1), pbVar12 < local_60 &&\n         (local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c)))) ||\n       (((uVar19 & 0x800) != 0 && (pbVar7[1] == 10)))) {\ncode_r0x00023868:\n      param_1[0x98] = 0x10d;\n      uVar19 = 0x10d;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x00023673:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x24;\n    puVar13 = auStack_6c;\n    break;\n  case 0x1d:\ncode_r0x00023690:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x27;\n    puVar13 = auStack_6c;\n    break;\n  case 0x1e:\n    bVar21 = 0;\ncode_r0x00023262:\n    if ((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) {\n      param_1[0x99] = param_1[0x99] + 1;\n      uVar19 = 0x107;\n      *(byte *)(param_1 + 0xa3) = 1;\n      param_1[0x98] = 0x107;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x28;\n    puVar13 = auStack_6c;\n    break;\n  case 0x1f:\n    bVar21 = 0;\ncode_r0x0002351a:\n    if (((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) &&\n       ((param_1[0x99] != 0 || ((*param_1 & 0x20000) == 0)))) {\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x108;\n      param_1[0x99] = param_1[0x99] - 1;\n      param_1[0x98] = 0x108;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x29;\n    puVar13 = auStack_6c;\n    break;\n  case 0x20:\n    if (((*param_1 & 0x10) != 0) || ((byte)param_1[0xa3] == 0)) {\n      param_1[0x98] = 0x102;\n      uVar19 = 0x102;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x00023894:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x2a;\n    puVar13 = auStack_6c;\n    break;\n  case 0x21:\n    bVar21 = 0;\ncode_r0x000234d2:\n    uVar19 = *param_1;\n    if ((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))) {\n      param_1[0x98] = 0x103;\n      uVar19 = 0x103;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x2b;\n    puVar13 = auStack_6c;\n    break;\n  case 0x24:\n    bVar4 = false;\ncode_r0x0002336a:\n    bVar21 = (byte)param_1[0xcc];\n    if (!bVar4) {\n      uVar5 = param_1[0x95];\n      if (uVar5 == 0xffffffff) {\n        local_40[0] = 0xffffffff;\n        local_40[1] = 0xffffffff;\n        local_40[2] = 0xffffffff;\n        local_40[3] = 0xffffffff;\n        local_40[4] = 0xffffffff;\n        local_40[5] = 0xffffffff;\n        local_40[6] = 0xffffffff;\n        local_40[7] = 0xffffffff;\n        if ((*param_1 & 0x40) == 0) {\n          local_40[0] = 0xfffffbff;\n        }\n        if ((*param_1 & 0x80) != 0) {\n          local_40[0] = local_40[0] & 0xfffffffe;\n        }\n        if (bVar21 != 0) {\n          uVar19 = 0;\n          do {\n            if (param_1[uVar19 + 0x10d] == 0xffffffff) {\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }\n            uVar19 = uVar19 + 1;\n          } while (uVar19 != 0x100);\n        }\n        puStack_70 = (uint *)&UNK_000239cf;\n        uVar5 = FUN_0001e6a0();\n        bVar21 = (byte)param_1[0xcc];\n        param_1[0x95] = uVar5;\n      }\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x10a;\n      if (bVar21 == 0) {\n        uVar19 = uVar5 + 0x114;\n      }\n      param_1[0x98] = uVar19;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    uVar19 = 0x2e;\n    puVar13 = auStack_6c;\n    break;\n  case 0x32:\ncode_r0x000236f8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3c;\n    puVar13 = auStack_6c;\n    break;\n  case 0x34:\ncode_r0x000236e0:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3e;\n    puVar13 = auStack_6c;\n    break;\n  case 0x35:\n    bVar21 = 0;\ncode_r0x000233b2:\n    uVar19 = *param_1;\n    if ((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))) {\n      param_1[0x98] = 0x101;\n      uVar19 = 0x101;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3f;\n    puVar13 = auStack_6c;\n    break;\n  case 0x38:\ncode_r0x00023710:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x42;\n    puVar13 = auStack_6c;\n    break;\n  case 0x49:\n  case 0x69:\n    bVar4 = false;\ncode_r0x0002342a:\n    bVar21 = (byte)param_1[0xcc];\n    puVar13 = auStack_6c;\n    if ((!bVar4) || (puVar13 = auStack_6c, (*param_1 & 0x80000) != 0)) break;\n    if (bVar21 != 0) {\n      pcVar8 = &UNK_0002f468 + (uVar19 == 0x73);\ncode_r0x0002345c:\n      param_1[0x96] = (uint)pcVar8;\n      sVar9 = strlen(pcVar8);\n      param_1[0x97] = sVar9;\n      puStack_70 = (uint *)&UNK_0002347b;\n      uVar19 = FUN_00021f80();\n      *(byte *)(param_1 + 0xa3) = 0;\n      param_1[0x98] = uVar19;\n      param_1[0x96] = (uint)local_5c[0];\n      param_1[0x97] = (uint)local_60;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    uVar5 = 0;\n    do {\n      *(undefined4 *)((int)local_40 + uVar5) = 0;\n      uVar5 = uVar5 + 4;\n    } while (uVar5 < 0x20);\n    puStack_70 = (uint *)&UNK_00023ab3;\n    ppuVar6 = __ctype_b_loc();\n    uVar5 = 0;\n    puVar2 = *ppuVar6;\n    do {\n      if ((*(byte *)((int)puVar2 + uVar5 * 2 + 1) & 0x20) != 0) {\n        local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n      }\n      uVar5 = uVar5 + 1;\n    } while (uVar5 != 0x100);\n    if (uVar19 == 0x53) {\ncode_r0x00023b34:\n      local_40[0] = ~local_40[0];\n      local_40[1] = ~local_40[1];\n      local_40[2] = ~local_40[2];\n      local_40[3] = ~local_40[3];\n      local_40[4] = ~local_40[4];\n      local_40[5] = ~local_40[5];\n      local_40[6] = ~local_40[6];\n      local_40[7] = ~local_40[7];\n    }\ncode_r0x00023ae7:\n    *(byte *)(param_1 + 0xa3) = 0;\n    goto code_r0x000237bd;\n  case 0x51:\n    *(byte *)(param_1 + 0xa3) = 0;\n    puStack_70 = (uint *)&UNK_0002357e;\n    uVar19 = FUN_00021f80();\n    param_1[0x98] = uVar19;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;\n  case 0x52:\n    if (local_60 == (byte *)0x0) {\n      pcVar8 = "unfinished \\ escape";\n      ppbVar15 = &pbStack_74;\n      pbStack_74 = (byte *)0x5;\n      puStack_70 = (uint *)((int)&__DT_PLTGOT + *(int *)(&DAT_0002ef08 + uVar5 * 4));\n      goto code_r0x00023a1b;\n    }\n    pbVar12 = (byte *)param_1[pbVar7[1] + 0x10d];\n    if (pbVar12 == (byte *)0xffffffff) {\n      pbStack_74 = local_60;\n      puStack_70 = param_1 + 0xb2;\n      local_5c[1] = pbVar12;\n      uVar5 = FUN_0002b6f0(auStack_50 + 3,local_5c[0]);\n      if (0xfffffffc < uVar5 - 1) {\n        puVar20 = param_1 + 0xb2;\n        for (iVar10 = 2; iVar10 != 0; iVar10 = iVar10 + -1) {\n          *puVar20 = 0;\n          puVar20 = puVar20 + (uint)bVar21 * -2 + 1;\n        }\n        local_5c[0] = (byte *)param_1[0x96];\n        local_60 = (byte *)param_1[0x97];\n        pbVar12 = local_5c[1];\n        goto code_r0x00023748;\n      }\n      pbVar12 = (byte *)param_1[0x97];\n      param_1[0x9d] = uVar5;\n      param_1[0x9c] = auStack_50[3];\n      pbVar7 = (byte *)param_1[0x96];\n      if (uVar5 != 1) goto code_r0x00023235;\n    }\n    else {\ncode_r0x00023748:\n      param_1[0x9d] = 1;\n      param_1[0x9c] = (uint)pbVar12;\n      pbVar12 = local_60;\n      pbVar7 = local_5c[0];\n    }\n    uVar19 = (uint)*pbVar7;\n    local_5c[0] = pbVar7 + 1;\n    param_1[0x96] = (uint)(pbVar7 + 1);\n    local_60 = pbVar12 + -1;\n    param_1[0x97] = (uint)(pbVar12 + -1);\n    switch(uVar19 - 10 & 0xff) {\n    case 0:\n      goto code_r0x0002359b;\n    case 0x1a:\n      goto code_r0x00023673;\n    case 0x1d:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023868;\n      goto code_r0x00023690;\n    case 0x1e:\n      bVar21 = 1;\n      goto code_r0x00023262;\n    case 0x1f:\n      bVar21 = 1;\n      goto code_r0x0002351a;\n    case 0x20:\n      goto code_r0x00023894;\n    case 0x21:\n      bVar21 = 1;\n      goto code_r0x000234d2;\n    case 0x24:\n      bVar4 = true;\n      goto code_r0x0002336a;\n    case 0x27:\n    case 0x28:\n    case 0x29:\n    case 0x2a:\n    case 0x2b:\n    case 0x2c:\n    case 0x2d:\n    case 0x2e:\n    case 0x2f:\n      if ((*param_1 & 0x4000) == 0) {\n        *(byte *)(param_1 + 0xa3) = 0;\n        uVar19 = 0x112;\n        param_1[0x98] = 0x112;\n        goto LAB_0002318d;\n      }\n    default:\nLAB_00023150:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      break;\n    case 0x32:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10e;\n        uVar19 = 0x10e;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236f8;\n    case 0x34:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10f;\n        uVar19 = 0x10f;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236e0;\n    case 0x35:\n      bVar21 = 1;\n      goto code_r0x000233b2;\n    case 0x38:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x111;\n        uVar19 = 0x111;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x00023710;\n    case 0x49:\n    case 0x69:\n      bVar4 = true;\n      goto code_r0x0002342a;\n    case 0x4d:\n    case 0x6d:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      if ((*param_1 & 0x80000) != 0) break;\n      if (bVar21 != 0) {\n        pcVar8 = &UNK_0002f474 + (uVar19 == 0x77);\n        goto code_r0x0002345c;\n      }\n      uVar5 = 0;\n      do {\n        *(undefined4 *)((int)local_40 + uVar5) = 0;\n        uVar5 = uVar5 + 4;\n      } while (uVar5 < 0x20);\n      uVar5 = 0;\n      do {\n        if (*(byte *)((int)param_1 + uVar5 + 8) == 2) {\n          local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 != 0x100);\n      if (uVar19 == 0x57) goto code_r0x00023b34;\n      goto code_r0x00023ae7;\n    case 0x51:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5b;\n      puVar13 = auStack_6c;\n      break;\n    case 0x52:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5c;\n      puVar13 = auStack_6c;\n      break;\n    case 0x54:\n      goto code_r0x000235d7;\n    case 0x56:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023880;\n      goto code_r0x000236c8;\n    case 0x58:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x110;\n        uVar19 = 0x110;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236a8;\n    case 0x71:\n      bStack_51 = 1;\n      goto code_r0x00023295;\n    case 0x72:\n      bVar21 = 1;\n      goto code_r0x000233fa;\n    }\n    break;\n  case 0x54:\n    if ((((*param_1 & 8) != 0) || (param_1[0x98] - 0x106 < 2)) || (param_1[0x98] == 0xffffffff)) {\ncode_r0x00023880:\n      param_1[0x98] = 0x10c;\n      uVar19 = 0x10c;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x000235d7:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x5e;\n    puVar13 = auStack_6c;\n    break;\n  case 0x56:\ncode_r0x000236c8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x60;\n    puVar13 = auStack_6c;\n    break;\n  case 0x58:\ncode_r0x000236a8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x62;\n    puVar13 = auStack_6c;\n    break;\n  case 0x71:\n    bStack_51 = 0;\ncode_r0x00023295:\n    auStack_50[0] = *param_1;\n    puVar13 = auStack_6c;\n    if ((((auStack_50[0] & 0x200) != 0) &&\n        (puVar13 = auStack_6c, (((byte)(auStack_50[0] >> 0xc) ^ 1) & 1) == bStack_51)) &&\n       (((auStack_50[0] & 0x10) != 0 || (puVar13 = auStack_6c, (byte)param_1[0xa3] == 0)))) {\n      local_5c[1] = pbVar7 + (int)pbVar12;\n      param_1[0x9b] = 0xffffffff;\n      param_1[0x9a] = 0xffffffff;\n      if (local_5c[1] == local_5c[0]) {\ncode_r0x00023b5a:\n        puVar13 = auStack_6c;\n        if (bStack_51 == 0) goto code_r0x00023a30;\n      }\n      else {\n        bVar21 = pbVar7[1];\n        pbVar12 = (byte *)(int)(char)bVar21;\n        if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar7 = (byte *)0xffffffff;\n          local_60 = pbVar12;\n          do {\n            pbVar3 = local_60;\n            if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }\n            pbVar7 = pbVar3 + -0x30;\n            param_1[0x9a] = (uint)pbVar7;\n            local_5c[0] = local_5c[0] + 1;\n            if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }\n            bVar21 = *local_5c[0];\n            local_60 = (byte *)(int)(char)bVar21;\n            pbVar12 = (byte *)(int)(char)bVar21 + -0x30;\n          } while ((byte)pbVar12 < 10);\n          if (bVar21 == 0x2c) {\n            if ((int)pbVar7 < 0) goto code_r0x00023bed;\ncode_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;\n            if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }\n            bVar21 = local_5c[0][1];\n            if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            local_5c[0] = pbVar12;\n            goto code_r0x00023bd8;\n          }\n          param_1[0x9b] = (uint)pbVar7;\n          puVar17 = auStack_6c;\n          if (bStack_51 == 0) goto code_r0x00023a30;\n        }\n        else {\n          if (bVar21 == 0x2c) {\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }\ncode_r0x00023bd8:\n          if (bStack_51 == 0) goto code_r0x00023a3a;\n        }\n        puVar13 = auStack_6c;\n        if (*local_5c[0] == 0x5c) goto code_r0x00023a2b;\n      }\ncode_r0x00023a04:\n      if ((*(uint *)(puVar13 + 0x1c) & 0x200000) == 0) {\n        *(byte **)(puVar13 + -4) = pbVar12;\n        pcVar8 = "invalid content of \\{\\}";\n        ppbVar15 = (byte **)(puVar13 + -8);\n        *(undefined4 *)(puVar13 + -8) = 5;\ncode_r0x00023a1b:\n        while( true ) {\n          *(char **)((int)ppbVar15 + -4) = pcVar8;\n          puVar16 = (undefined1 *)((int)ppbVar15 + -8);\n          *(undefined4 *)((int)ppbVar15 + -8) = 0;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23;\n          uVar11 = dcgettext();\n          *(undefined4 *)((int)ppbVar15 + -8) = uVar11;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b;\n          FUN_0001be40();\n          pbVar12 = extraout_ECX;\ncode_r0x00023a2b:\n          *(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;\n          puVar17 = puVar16;\ncode_r0x00023a30:\n          puVar13 = puVar17;\n          puVar18 = puVar17;\n          if (*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)) break;\ncode_r0x00023a3a:\n          puVar13 = puVar18;\n          if ((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))\n          break;\n          uVar5 = param_1[0x9b];\n          if ((int)uVar5 < 0) {\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }\n          if ((int)uVar5 < (int)uVar19) break;\n          if ((int)uVar5 < 0x8000) goto code_r0x00023a66;\n          pcVar8 = "regular expression too big";\n          *(uint *)(puVar18 + -4) = uVar19;\n          ppbVar15 = (byte **)(puVar18 + -8);\n          *(undefined4 *)(puVar18 + -8) = 5;\n        }\n        goto code_r0x00023a04;\n      }\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x7b;\n    break;\n  case 0x72:\n    bVar21 = 0;\ncode_r0x000233fa:\n    if (((*param_1 & 0x400) != 0) || ((((byte)(*param_1 >> 0xf) ^ 1) & 1) != bVar21)) {\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x7c;\n      puVar13 = auStack_6c;\n      break;\n    }\ncode_r0x000238f1:\n    *(byte *)(param_1 + 0xa3) = 1;\n    uVar19 = 0x106;\n    param_1[0x98] = 0x106;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;\n  }\nLAB_00023160:\n  puVar14 = puVar13;\n  *(byte *)(param_1 + 0xa3) = 0;\n  if (bVar21 == 0) {\n    if (*(byte *)((int)param_1 + 5) != 0) {\n      *(undefined4 *)(puVar14 + -4) = 0x2317a;\n      ppuVar6 = __ctype_b_loc();\n      if ((*(byte *)((int)*ppuVar6 + uVar19 * 2 + 1) & 4) != 0) {\n        uVar19 = 0;\n        do {\n          *(undefined4 *)(puVar14 + uVar19 + 0x2c) = 0;\n          uVar19 = uVar19 + 4;\n        } while (uVar19 < 0x20);\n        *(undefined4 *)(puVar14 + -4) = 0x237bd;\n        FUN_0001da50();\ncode_r0x000237bd:\n        *(undefined4 *)(puVar14 + -4) = 0x237c6;\n        iVar10 = FUN_0001e6a0();\n        uVar19 = iVar10 + 0x114;\n      }\n    }\n    param_1[0x98] = uVar19;\n    puVar13 = puVar14;\n  }\n  else {\n    param_1[0x98] = 0x109;\n    uVar19 = 0x109;\n    puVar13 = puVar14;\n  }\nLAB_0002318d:\n  if (*(int *)(puVar13 + 0x4c) == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar19;\n  }\n                    /* WARNING: Subroutine does not return */\n  *(undefined **)(puVar13 + -4) = &UNK_00023c01;\n  FUN_0002c430();\n}\n\n" comment (function_definition "uint __regparm3 FUN_000230c0(uint *param_1)\n\n{\n  int iVar1;\n  ushort *puVar2;\n  byte *pbVar3;\n  bool bVar4;\n  uint uVar5;\n  ushort **ppuVar6;\n  byte *pbVar7;\n  char *pcVar8;\n  size_t sVar9;\n  int iVar10;\n  undefined4 uVar11;\n  byte *pbVar12;\n  byte *extraout_ECX;\n  undefined1 *puVar13;\n  undefined1 *puVar14;\n  byte **ppbVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  undefined1 *puVar18;\n  uint uVar19;\n  uint *puVar20;\n  int in_GS_OFFSET;\n  byte bVar21;\n  undefined4 uStackY_80;\n  byte *pbStack_74;\n  uint *puStack_70;\n  undefined1 auStack_6c [12];\n  byte *local_60;\n  byte *local_5c [2];\n  byte bStack_51;\n  uint auStack_50 [4];\n  uint local_40 [11];\n  undefined4 uStack_14;\n  \n  bVar21 = 0;\n  uStack_14 = 0x230cb;\n  pbVar12 = (byte *)param_1[0x97];\n  local_40[8] = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  if (pbVar12 == (byte *)0x0) {\n    param_1[0x98] = 0xffffffff;\n    uVar19 = 0xffffffff;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;\n  }\n  pbVar7 = (byte *)param_1[0x96];\n  uVar19 = param_1[*pbVar7 + 0x10d];\n  if (uVar19 == 0xffffffff) {\n    puStack_70 = param_1 + 0xb2;\n    pbStack_74 = pbVar12;\n    uVar5 = FUN_0002b6f0(auStack_50 + 3,pbVar7);\n    if (0xfffffffc < uVar5 - 1) {\n      param_1[0xb2] = 0;\n      pbVar7 = (byte *)param_1[0x96];\n      param_1[0xb3] = 0;\n      pbVar12 = (byte *)param_1[0x97];\n      goto LAB_00023107;\n    }\n    pbVar12 = (byte *)param_1[0x97];\n    param_1[0x9d] = uVar5;\n    param_1[0x9c] = auStack_50[3];\n    pbVar7 = (byte *)param_1[0x96];\n    if (uVar5 == 1) goto LAB_00023117;\ncode_r0x00023235:\n    uVar19 = 0xffffffff;\n    param_1[0x96] = (uint)(pbVar7 + uVar5);\n    bVar21 = (byte)param_1[0xcc];\n    param_1[0x97] = (int)pbVar12 - uVar5;\n    puVar13 = auStack_6c;\n    goto LAB_00023160;\n  }\nLAB_00023107:\n  param_1[0x9c] = uVar19;\n  param_1[0x9d] = 1;\nLAB_00023117:\n  puVar14 = auStack_6c;\n  puVar18 = auStack_6c;\n  puVar16 = auStack_6c;\n  puVar17 = auStack_6c;\n  puVar13 = auStack_6c;\n  uVar19 = (uint)*pbVar7;\n  local_5c[0] = pbVar7 + 1;\n  param_1[0x96] = (uint)local_5c[0];\n  local_60 = pbVar12 + -1;\n  param_1[0x97] = (uint)local_60;\n  if (0x72 < (byte)(uVar19 - 10)) goto LAB_00023150;\n  uVar5 = uVar19 - 10 & 0xff;\n  switch(uVar5) {\n  case 0:\n    if (((*param_1 & 0x400) != 0) || ((*param_1 & 0x800) == 0)) {\ncode_r0x0002359b:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 10;\n      puVar13 = auStack_6c;\n      break;\n    }\n    goto code_r0x000238f1;\n  default:\n    goto LAB_00023150;\n  case 0x1a:\n    uVar19 = *param_1;\n    if ((((((uVar19 & 8) != 0) || (local_60 == (byte *)0x0)) ||\n         ((pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)))) ||\n        ((pbVar12 = (byte *)((uVar19 >> 0xf ^ 1) & 1), pbVar12 < local_60 &&\n         (local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c)))) ||\n       (((uVar19 & 0x800) != 0 && (pbVar7[1] == 10)))) {\ncode_r0x00023868:\n      param_1[0x98] = 0x10d;\n      uVar19 = 0x10d;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x00023673:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x24;\n    puVar13 = auStack_6c;\n    break;\n  case 0x1d:\ncode_r0x00023690:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x27;\n    puVar13 = auStack_6c;\n    break;\n  case 0x1e:\n    bVar21 = 0;\ncode_r0x00023262:\n    if ((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) {\n      param_1[0x99] = param_1[0x99] + 1;\n      uVar19 = 0x107;\n      *(byte *)(param_1 + 0xa3) = 1;\n      param_1[0x98] = 0x107;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x28;\n    puVar13 = auStack_6c;\n    break;\n  case 0x1f:\n    bVar21 = 0;\ncode_r0x0002351a:\n    if (((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) &&\n       ((param_1[0x99] != 0 || ((*param_1 & 0x20000) == 0)))) {\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x108;\n      param_1[0x99] = param_1[0x99] - 1;\n      param_1[0x98] = 0x108;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x29;\n    puVar13 = auStack_6c;\n    break;\n  case 0x20:\n    if (((*param_1 & 0x10) != 0) || ((byte)param_1[0xa3] == 0)) {\n      param_1[0x98] = 0x102;\n      uVar19 = 0x102;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x00023894:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x2a;\n    puVar13 = auStack_6c;\n    break;\n  case 0x21:\n    bVar21 = 0;\ncode_r0x000234d2:\n    uVar19 = *param_1;\n    if ((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))) {\n      param_1[0x98] = 0x103;\n      uVar19 = 0x103;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x2b;\n    puVar13 = auStack_6c;\n    break;\n  case 0x24:\n    bVar4 = false;\ncode_r0x0002336a:\n    bVar21 = (byte)param_1[0xcc];\n    if (!bVar4) {\n      uVar5 = param_1[0x95];\n      if (uVar5 == 0xffffffff) {\n        local_40[0] = 0xffffffff;\n        local_40[1] = 0xffffffff;\n        local_40[2] = 0xffffffff;\n        local_40[3] = 0xffffffff;\n        local_40[4] = 0xffffffff;\n        local_40[5] = 0xffffffff;\n        local_40[6] = 0xffffffff;\n        local_40[7] = 0xffffffff;\n        if ((*param_1 & 0x40) == 0) {\n          local_40[0] = 0xfffffbff;\n        }\n        if ((*param_1 & 0x80) != 0) {\n          local_40[0] = local_40[0] & 0xfffffffe;\n        }\n        if (bVar21 != 0) {\n          uVar19 = 0;\n          do {\n            if (param_1[uVar19 + 0x10d] == 0xffffffff) {\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }\n            uVar19 = uVar19 + 1;\n          } while (uVar19 != 0x100);\n        }\n        puStack_70 = (uint *)&UNK_000239cf;\n        uVar5 = FUN_0001e6a0();\n        bVar21 = (byte)param_1[0xcc];\n        param_1[0x95] = uVar5;\n      }\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x10a;\n      if (bVar21 == 0) {\n        uVar19 = uVar5 + 0x114;\n      }\n      param_1[0x98] = uVar19;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    uVar19 = 0x2e;\n    puVar13 = auStack_6c;\n    break;\n  case 0x32:\ncode_r0x000236f8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3c;\n    puVar13 = auStack_6c;\n    break;\n  case 0x34:\ncode_r0x000236e0:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3e;\n    puVar13 = auStack_6c;\n    break;\n  case 0x35:\n    bVar21 = 0;\ncode_r0x000233b2:\n    uVar19 = *param_1;\n    if ((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))) {\n      param_1[0x98] = 0x101;\n      uVar19 = 0x101;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3f;\n    puVar13 = auStack_6c;\n    break;\n  case 0x38:\ncode_r0x00023710:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x42;\n    puVar13 = auStack_6c;\n    break;\n  case 0x49:\n  case 0x69:\n    bVar4 = false;\ncode_r0x0002342a:\n    bVar21 = (byte)param_1[0xcc];\n    puVar13 = auStack_6c;\n    if ((!bVar4) || (puVar13 = auStack_6c, (*param_1 & 0x80000) != 0)) break;\n    if (bVar21 != 0) {\n      pcVar8 = &UNK_0002f468 + (uVar19 == 0x73);\ncode_r0x0002345c:\n      param_1[0x96] = (uint)pcVar8;\n      sVar9 = strlen(pcVar8);\n      param_1[0x97] = sVar9;\n      puStack_70 = (uint *)&UNK_0002347b;\n      uVar19 = FUN_00021f80();\n      *(byte *)(param_1 + 0xa3) = 0;\n      param_1[0x98] = uVar19;\n      param_1[0x96] = (uint)local_5c[0];\n      param_1[0x97] = (uint)local_60;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    uVar5 = 0;\n    do {\n      *(undefined4 *)((int)local_40 + uVar5) = 0;\n      uVar5 = uVar5 + 4;\n    } while (uVar5 < 0x20);\n    puStack_70 = (uint *)&UNK_00023ab3;\n    ppuVar6 = __ctype_b_loc();\n    uVar5 = 0;\n    puVar2 = *ppuVar6;\n    do {\n      if ((*(byte *)((int)puVar2 + uVar5 * 2 + 1) & 0x20) != 0) {\n        local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n      }\n      uVar5 = uVar5 + 1;\n    } while (uVar5 != 0x100);\n    if (uVar19 == 0x53) {\ncode_r0x00023b34:\n      local_40[0] = ~local_40[0];\n      local_40[1] = ~local_40[1];\n      local_40[2] = ~local_40[2];\n      local_40[3] = ~local_40[3];\n      local_40[4] = ~local_40[4];\n      local_40[5] = ~local_40[5];\n      local_40[6] = ~local_40[6];\n      local_40[7] = ~local_40[7];\n    }\ncode_r0x00023ae7:\n    *(byte *)(param_1 + 0xa3) = 0;\n    goto code_r0x000237bd;\n  case 0x51:\n    *(byte *)(param_1 + 0xa3) = 0;\n    puStack_70 = (uint *)&UNK_0002357e;\n    uVar19 = FUN_00021f80();\n    param_1[0x98] = uVar19;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;\n  case 0x52:\n    if (local_60 == (byte *)0x0) {\n      pcVar8 = "unfinished \\ escape";\n      ppbVar15 = &pbStack_74;\n      pbStack_74 = (byte *)0x5;\n      puStack_70 = (uint *)((int)&__DT_PLTGOT + *(int *)(&DAT_0002ef08 + uVar5 * 4));\n      goto code_r0x00023a1b;\n    }\n    pbVar12 = (byte *)param_1[pbVar7[1] + 0x10d];\n    if (pbVar12 == (byte *)0xffffffff) {\n      pbStack_74 = local_60;\n      puStack_70 = param_1 + 0xb2;\n      local_5c[1] = pbVar12;\n      uVar5 = FUN_0002b6f0(auStack_50 + 3,local_5c[0]);\n      if (0xfffffffc < uVar5 - 1) {\n        puVar20 = param_1 + 0xb2;\n        for (iVar10 = 2; iVar10 != 0; iVar10 = iVar10 + -1) {\n          *puVar20 = 0;\n          puVar20 = puVar20 + (uint)bVar21 * -2 + 1;\n        }\n        local_5c[0] = (byte *)param_1[0x96];\n        local_60 = (byte *)param_1[0x97];\n        pbVar12 = local_5c[1];\n        goto code_r0x00023748;\n      }\n      pbVar12 = (byte *)param_1[0x97];\n      param_1[0x9d] = uVar5;\n      param_1[0x9c] = auStack_50[3];\n      pbVar7 = (byte *)param_1[0x96];\n      if (uVar5 != 1) goto code_r0x00023235;\n    }\n    else {\ncode_r0x00023748:\n      param_1[0x9d] = 1;\n      param_1[0x9c] = (uint)pbVar12;\n      pbVar12 = local_60;\n      pbVar7 = local_5c[0];\n    }\n    uVar19 = (uint)*pbVar7;\n    local_5c[0] = pbVar7 + 1;\n    param_1[0x96] = (uint)(pbVar7 + 1);\n    local_60 = pbVar12 + -1;\n    param_1[0x97] = (uint)(pbVar12 + -1);\n    switch(uVar19 - 10 & 0xff) {\n    case 0:\n      goto code_r0x0002359b;\n    case 0x1a:\n      goto code_r0x00023673;\n    case 0x1d:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023868;\n      goto code_r0x00023690;\n    case 0x1e:\n      bVar21 = 1;\n      goto code_r0x00023262;\n    case 0x1f:\n      bVar21 = 1;\n      goto code_r0x0002351a;\n    case 0x20:\n      goto code_r0x00023894;\n    case 0x21:\n      bVar21 = 1;\n      goto code_r0x000234d2;\n    case 0x24:\n      bVar4 = true;\n      goto code_r0x0002336a;\n    case 0x27:\n    case 0x28:\n    case 0x29:\n    case 0x2a:\n    case 0x2b:\n    case 0x2c:\n    case 0x2d:\n    case 0x2e:\n    case 0x2f:\n      if ((*param_1 & 0x4000) == 0) {\n        *(byte *)(param_1 + 0xa3) = 0;\n        uVar19 = 0x112;\n        param_1[0x98] = 0x112;\n        goto LAB_0002318d;\n      }\n    default:\nLAB_00023150:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      break;\n    case 0x32:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10e;\n        uVar19 = 0x10e;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236f8;\n    case 0x34:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10f;\n        uVar19 = 0x10f;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236e0;\n    case 0x35:\n      bVar21 = 1;\n      goto code_r0x000233b2;\n    case 0x38:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x111;\n        uVar19 = 0x111;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x00023710;\n    case 0x49:\n    case 0x69:\n      bVar4 = true;\n      goto code_r0x0002342a;\n    case 0x4d:\n    case 0x6d:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      if ((*param_1 & 0x80000) != 0) break;\n      if (bVar21 != 0) {\n        pcVar8 = &UNK_0002f474 + (uVar19 == 0x77);\n        goto code_r0x0002345c;\n      }\n      uVar5 = 0;\n      do {\n        *(undefined4 *)((int)local_40 + uVar5) = 0;\n        uVar5 = uVar5 + 4;\n      } while (uVar5 < 0x20);\n      uVar5 = 0;\n      do {\n        if (*(byte *)((int)param_1 + uVar5 + 8) == 2) {\n          local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 != 0x100);\n      if (uVar19 == 0x57) goto code_r0x00023b34;\n      goto code_r0x00023ae7;\n    case 0x51:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5b;\n      puVar13 = auStack_6c;\n      break;\n    case 0x52:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5c;\n      puVar13 = auStack_6c;\n      break;\n    case 0x54:\n      goto code_r0x000235d7;\n    case 0x56:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023880;\n      goto code_r0x000236c8;\n    case 0x58:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x110;\n        uVar19 = 0x110;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236a8;\n    case 0x71:\n      bStack_51 = 1;\n      goto code_r0x00023295;\n    case 0x72:\n      bVar21 = 1;\n      goto code_r0x000233fa;\n    }\n    break;\n  case 0x54:\n    if ((((*param_1 & 8) != 0) || (param_1[0x98] - 0x106 < 2)) || (param_1[0x98] == 0xffffffff)) {\ncode_r0x00023880:\n      param_1[0x98] = 0x10c;\n      uVar19 = 0x10c;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x000235d7:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x5e;\n    puVar13 = auStack_6c;\n    break;\n  case 0x56:\ncode_r0x000236c8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x60;\n    puVar13 = auStack_6c;\n    break;\n  case 0x58:\ncode_r0x000236a8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x62;\n    puVar13 = auStack_6c;\n    break;\n  case 0x71:\n    bStack_51 = 0;\ncode_r0x00023295:\n    auStack_50[0] = *param_1;\n    puVar13 = auStack_6c;\n    if ((((auStack_50[0] & 0x200) != 0) &&\n        (puVar13 = auStack_6c, (((byte)(auStack_50[0] >> 0xc) ^ 1) & 1) == bStack_51)) &&\n       (((auStack_50[0] & 0x10) != 0 || (puVar13 = auStack_6c, (byte)param_1[0xa3] == 0)))) {\n      local_5c[1] = pbVar7 + (int)pbVar12;\n      param_1[0x9b] = 0xffffffff;\n      param_1[0x9a] = 0xffffffff;\n      if (local_5c[1] == local_5c[0]) {\ncode_r0x00023b5a:\n        puVar13 = auStack_6c;\n        if (bStack_51 == 0) goto code_r0x00023a30;\n      }\n      else {\n        bVar21 = pbVar7[1];\n        pbVar12 = (byte *)(int)(char)bVar21;\n        if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar7 = (byte *)0xffffffff;\n          local_60 = pbVar12;\n          do {\n            pbVar3 = local_60;\n            if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }\n            pbVar7 = pbVar3 + -0x30;\n            param_1[0x9a] = (uint)pbVar7;\n            local_5c[0] = local_5c[0] + 1;\n            if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }\n            bVar21 = *local_5c[0];\n            local_60 = (byte *)(int)(char)bVar21;\n            pbVar12 = (byte *)(int)(char)bVar21 + -0x30;\n          } while ((byte)pbVar12 < 10);\n          if (bVar21 == 0x2c) {\n            if ((int)pbVar7 < 0) goto code_r0x00023bed;\ncode_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;\n            if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }\n            bVar21 = local_5c[0][1];\n            if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            local_5c[0] = pbVar12;\n            goto code_r0x00023bd8;\n          }\n          param_1[0x9b] = (uint)pbVar7;\n          puVar17 = auStack_6c;\n          if (bStack_51 == 0) goto code_r0x00023a30;\n        }\n        else {\n          if (bVar21 == 0x2c) {\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }\ncode_r0x00023bd8:\n          if (bStack_51 == 0) goto code_r0x00023a3a;\n        }\n        puVar13 = auStack_6c;\n        if (*local_5c[0] == 0x5c) goto code_r0x00023a2b;\n      }\ncode_r0x00023a04:\n      if ((*(uint *)(puVar13 + 0x1c) & 0x200000) == 0) {\n        *(byte **)(puVar13 + -4) = pbVar12;\n        pcVar8 = "invalid content of \\{\\}";\n        ppbVar15 = (byte **)(puVar13 + -8);\n        *(undefined4 *)(puVar13 + -8) = 5;\ncode_r0x00023a1b:\n        while( true ) {\n          *(char **)((int)ppbVar15 + -4) = pcVar8;\n          puVar16 = (undefined1 *)((int)ppbVar15 + -8);\n          *(undefined4 *)((int)ppbVar15 + -8) = 0;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23;\n          uVar11 = dcgettext();\n          *(undefined4 *)((int)ppbVar15 + -8) = uVar11;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b;\n          FUN_0001be40();\n          pbVar12 = extraout_ECX;\ncode_r0x00023a2b:\n          *(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;\n          puVar17 = puVar16;\ncode_r0x00023a30:\n          puVar13 = puVar17;\n          puVar18 = puVar17;\n          if (*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)) break;\ncode_r0x00023a3a:\n          puVar13 = puVar18;\n          if ((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))\n          break;\n          uVar5 = param_1[0x9b];\n          if ((int)uVar5 < 0) {\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }\n          if ((int)uVar5 < (int)uVar19) break;\n          if ((int)uVar5 < 0x8000) goto code_r0x00023a66;\n          pcVar8 = "regular expression too big";\n          *(uint *)(puVar18 + -4) = uVar19;\n          ppbVar15 = (byte **)(puVar18 + -8);\n          *(undefined4 *)(puVar18 + -8) = 5;\n        }\n        goto code_r0x00023a04;\n      }\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x7b;\n    break;\n  case 0x72:\n    bVar21 = 0;\ncode_r0x000233fa:\n    if (((*param_1 & 0x400) != 0) || ((((byte)(*param_1 >> 0xf) ^ 1) & 1) != bVar21)) {\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x7c;\n      puVar13 = auStack_6c;\n      break;\n    }\ncode_r0x000238f1:\n    *(byte *)(param_1 + 0xa3) = 1;\n    uVar19 = 0x106;\n    param_1[0x98] = 0x106;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;\n  }\nLAB_00023160:\n  puVar14 = puVar13;\n  *(byte *)(param_1 + 0xa3) = 0;\n  if (bVar21 == 0) {\n    if (*(byte *)((int)param_1 + 5) != 0) {\n      *(undefined4 *)(puVar14 + -4) = 0x2317a;\n      ppuVar6 = __ctype_b_loc();\n      if ((*(byte *)((int)*ppuVar6 + uVar19 * 2 + 1) & 4) != 0) {\n        uVar19 = 0;\n        do {\n          *(undefined4 *)(puVar14 + uVar19 + 0x2c) = 0;\n          uVar19 = uVar19 + 4;\n        } while (uVar19 < 0x20);\n        *(undefined4 *)(puVar14 + -4) = 0x237bd;\n        FUN_0001da50();\ncode_r0x000237bd:\n        *(undefined4 *)(puVar14 + -4) = 0x237c6;\n        iVar10 = FUN_0001e6a0();\n        uVar19 = iVar10 + 0x114;\n      }\n    }\n    param_1[0x98] = uVar19;\n    puVar13 = puVar14;\n  }\n  else {\n    param_1[0x98] = 0x109;\n    uVar19 = 0x109;\n    puVar13 = puVar14;\n  }\nLAB_0002318d:\n  if (*(int *)(puVar13 + 0x4c) == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar19;\n  }\n                    /* WARNING: Subroutine does not return */\n  *(undefined **)(puVar13 + -4) = &UNK_00023c01;\n  FUN_0002c430();\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_000230c0(uint *param_1)" identifier (parameter_list "(uint *param_1)" ( (parameter_declaration "uint *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  ushort *puVar2;\n  byte *pbVar3;\n  bool bVar4;\n  uint uVar5;\n  ushort **ppuVar6;\n  byte *pbVar7;\n  char *pcVar8;\n  size_t sVar9;\n  int iVar10;\n  undefined4 uVar11;\n  byte *pbVar12;\n  byte *extraout_ECX;\n  undefined1 *puVar13;\n  undefined1 *puVar14;\n  byte **ppbVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  undefined1 *puVar18;\n  uint uVar19;\n  uint *puVar20;\n  int in_GS_OFFSET;\n  byte bVar21;\n  undefined4 uStackY_80;\n  byte *pbStack_74;\n  uint *puStack_70;\n  undefined1 auStack_6c [12];\n  byte *local_60;\n  byte *local_5c [2];\n  byte bStack_51;\n  uint auStack_50 [4];\n  uint local_40 [11];\n  undefined4 uStack_14;\n  \n  bVar21 = 0;\n  uStack_14 = 0x230cb;\n  pbVar12 = (byte *)param_1[0x97];\n  local_40[8] = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  if (pbVar12 == (byte *)0x0) {\n    param_1[0x98] = 0xffffffff;\n    uVar19 = 0xffffffff;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;\n  }\n  pbVar7 = (byte *)param_1[0x96];\n  uVar19 = param_1[*pbVar7 + 0x10d];\n  if (uVar19 == 0xffffffff) {\n    puStack_70 = param_1 + 0xb2;\n    pbStack_74 = pbVar12;\n    uVar5 = FUN_0002b6f0(auStack_50 + 3,pbVar7);\n    if (0xfffffffc < uVar5 - 1) {\n      param_1[0xb2] = 0;\n      pbVar7 = (byte *)param_1[0x96];\n      param_1[0xb3] = 0;\n      pbVar12 = (byte *)param_1[0x97];\n      goto LAB_00023107;\n    }\n    pbVar12 = (byte *)param_1[0x97];\n    param_1[0x9d] = uVar5;\n    param_1[0x9c] = auStack_50[3];\n    pbVar7 = (byte *)param_1[0x96];\n    if (uVar5 == 1) goto LAB_00023117;\ncode_r0x00023235:\n    uVar19 = 0xffffffff;\n    param_1[0x96] = (uint)(pbVar7 + uVar5);\n    bVar21 = (byte)param_1[0xcc];\n    param_1[0x97] = (int)pbVar12 - uVar5;\n    puVar13 = auStack_6c;\n    goto LAB_00023160;\n  }\nLAB_00023107:\n  param_1[0x9c] = uVar19;\n  param_1[0x9d] = 1;\nLAB_00023117:\n  puVar14 = auStack_6c;\n  puVar18 = auStack_6c;\n  puVar16 = auStack_6c;\n  puVar17 = auStack_6c;\n  puVar13 = auStack_6c;\n  uVar19 = (uint)*pbVar7;\n  local_5c[0] = pbVar7 + 1;\n  param_1[0x96] = (uint)local_5c[0];\n  local_60 = pbVar12 + -1;\n  param_1[0x97] = (uint)local_60;\n  if (0x72 < (byte)(uVar19 - 10)) goto LAB_00023150;\n  uVar5 = uVar19 - 10 & 0xff;\n  switch(uVar5) {\n  case 0:\n    if (((*param_1 & 0x400) != 0) || ((*param_1 & 0x800) == 0)) {\ncode_r0x0002359b:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 10;\n      puVar13 = auStack_6c;\n      break;\n    }\n    goto code_r0x000238f1;\n  default:\n    goto LAB_00023150;\n  case 0x1a:\n    uVar19 = *param_1;\n    if ((((((uVar19 & 8) != 0) || (local_60 == (byte *)0x0)) ||\n         ((pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)))) ||\n        ((pbVar12 = (byte *)((uVar19 >> 0xf ^ 1) & 1), pbVar12 < local_60 &&\n         (local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c)))) ||\n       (((uVar19 & 0x800) != 0 && (pbVar7[1] == 10)))) {\ncode_r0x00023868:\n      param_1[0x98] = 0x10d;\n      uVar19 = 0x10d;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x00023673:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x24;\n    puVar13 = auStack_6c;\n    break;\n  case 0x1d:\ncode_r0x00023690:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x27;\n    puVar13 = auStack_6c;\n    break;\n  case 0x1e:\n    bVar21 = 0;\ncode_r0x00023262:\n    if ((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) {\n      param_1[0x99] = param_1[0x99] + 1;\n      uVar19 = 0x107;\n      *(byte *)(param_1 + 0xa3) = 1;\n      param_1[0x98] = 0x107;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x28;\n    puVar13 = auStack_6c;\n    break;\n  case 0x1f:\n    bVar21 = 0;\ncode_r0x0002351a:\n    if (((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) &&\n       ((param_1[0x99] != 0 || ((*param_1 & 0x20000) == 0)))) {\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x108;\n      param_1[0x99] = param_1[0x99] - 1;\n      param_1[0x98] = 0x108;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x29;\n    puVar13 = auStack_6c;\n    break;\n  case 0x20:\n    if (((*param_1 & 0x10) != 0) || ((byte)param_1[0xa3] == 0)) {\n      param_1[0x98] = 0x102;\n      uVar19 = 0x102;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x00023894:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x2a;\n    puVar13 = auStack_6c;\n    break;\n  case 0x21:\n    bVar21 = 0;\ncode_r0x000234d2:\n    uVar19 = *param_1;\n    if ((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))) {\n      param_1[0x98] = 0x103;\n      uVar19 = 0x103;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x2b;\n    puVar13 = auStack_6c;\n    break;\n  case 0x24:\n    bVar4 = false;\ncode_r0x0002336a:\n    bVar21 = (byte)param_1[0xcc];\n    if (!bVar4) {\n      uVar5 = param_1[0x95];\n      if (uVar5 == 0xffffffff) {\n        local_40[0] = 0xffffffff;\n        local_40[1] = 0xffffffff;\n        local_40[2] = 0xffffffff;\n        local_40[3] = 0xffffffff;\n        local_40[4] = 0xffffffff;\n        local_40[5] = 0xffffffff;\n        local_40[6] = 0xffffffff;\n        local_40[7] = 0xffffffff;\n        if ((*param_1 & 0x40) == 0) {\n          local_40[0] = 0xfffffbff;\n        }\n        if ((*param_1 & 0x80) != 0) {\n          local_40[0] = local_40[0] & 0xfffffffe;\n        }\n        if (bVar21 != 0) {\n          uVar19 = 0;\n          do {\n            if (param_1[uVar19 + 0x10d] == 0xffffffff) {\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }\n            uVar19 = uVar19 + 1;\n          } while (uVar19 != 0x100);\n        }\n        puStack_70 = (uint *)&UNK_000239cf;\n        uVar5 = FUN_0001e6a0();\n        bVar21 = (byte)param_1[0xcc];\n        param_1[0x95] = uVar5;\n      }\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x10a;\n      if (bVar21 == 0) {\n        uVar19 = uVar5 + 0x114;\n      }\n      param_1[0x98] = uVar19;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    uVar19 = 0x2e;\n    puVar13 = auStack_6c;\n    break;\n  case 0x32:\ncode_r0x000236f8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3c;\n    puVar13 = auStack_6c;\n    break;\n  case 0x34:\ncode_r0x000236e0:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3e;\n    puVar13 = auStack_6c;\n    break;\n  case 0x35:\n    bVar21 = 0;\ncode_r0x000233b2:\n    uVar19 = *param_1;\n    if ((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))) {\n      param_1[0x98] = 0x101;\n      uVar19 = 0x101;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3f;\n    puVar13 = auStack_6c;\n    break;\n  case 0x38:\ncode_r0x00023710:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x42;\n    puVar13 = auStack_6c;\n    break;\n  case 0x49:\n  case 0x69:\n    bVar4 = false;\ncode_r0x0002342a:\n    bVar21 = (byte)param_1[0xcc];\n    puVar13 = auStack_6c;\n    if ((!bVar4) || (puVar13 = auStack_6c, (*param_1 & 0x80000) != 0)) break;\n    if (bVar21 != 0) {\n      pcVar8 = &UNK_0002f468 + (uVar19 == 0x73);\ncode_r0x0002345c:\n      param_1[0x96] = (uint)pcVar8;\n      sVar9 = strlen(pcVar8);\n      param_1[0x97] = sVar9;\n      puStack_70 = (uint *)&UNK_0002347b;\n      uVar19 = FUN_00021f80();\n      *(byte *)(param_1 + 0xa3) = 0;\n      param_1[0x98] = uVar19;\n      param_1[0x96] = (uint)local_5c[0];\n      param_1[0x97] = (uint)local_60;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    uVar5 = 0;\n    do {\n      *(undefined4 *)((int)local_40 + uVar5) = 0;\n      uVar5 = uVar5 + 4;\n    } while (uVar5 < 0x20);\n    puStack_70 = (uint *)&UNK_00023ab3;\n    ppuVar6 = __ctype_b_loc();\n    uVar5 = 0;\n    puVar2 = *ppuVar6;\n    do {\n      if ((*(byte *)((int)puVar2 + uVar5 * 2 + 1) & 0x20) != 0) {\n        local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n      }\n      uVar5 = uVar5 + 1;\n    } while (uVar5 != 0x100);\n    if (uVar19 == 0x53) {\ncode_r0x00023b34:\n      local_40[0] = ~local_40[0];\n      local_40[1] = ~local_40[1];\n      local_40[2] = ~local_40[2];\n      local_40[3] = ~local_40[3];\n      local_40[4] = ~local_40[4];\n      local_40[5] = ~local_40[5];\n      local_40[6] = ~local_40[6];\n      local_40[7] = ~local_40[7];\n    }\ncode_r0x00023ae7:\n    *(byte *)(param_1 + 0xa3) = 0;\n    goto code_r0x000237bd;\n  case 0x51:\n    *(byte *)(param_1 + 0xa3) = 0;\n    puStack_70 = (uint *)&UNK_0002357e;\n    uVar19 = FUN_00021f80();\n    param_1[0x98] = uVar19;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;\n  case 0x52:\n    if (local_60 == (byte *)0x0) {\n      pcVar8 = "unfinished \\ escape";\n      ppbVar15 = &pbStack_74;\n      pbStack_74 = (byte *)0x5;\n      puStack_70 = (uint *)((int)&__DT_PLTGOT + *(int *)(&DAT_0002ef08 + uVar5 * 4));\n      goto code_r0x00023a1b;\n    }\n    pbVar12 = (byte *)param_1[pbVar7[1] + 0x10d];\n    if (pbVar12 == (byte *)0xffffffff) {\n      pbStack_74 = local_60;\n      puStack_70 = param_1 + 0xb2;\n      local_5c[1] = pbVar12;\n      uVar5 = FUN_0002b6f0(auStack_50 + 3,local_5c[0]);\n      if (0xfffffffc < uVar5 - 1) {\n        puVar20 = param_1 + 0xb2;\n        for (iVar10 = 2; iVar10 != 0; iVar10 = iVar10 + -1) {\n          *puVar20 = 0;\n          puVar20 = puVar20 + (uint)bVar21 * -2 + 1;\n        }\n        local_5c[0] = (byte *)param_1[0x96];\n        local_60 = (byte *)param_1[0x97];\n        pbVar12 = local_5c[1];\n        goto code_r0x00023748;\n      }\n      pbVar12 = (byte *)param_1[0x97];\n      param_1[0x9d] = uVar5;\n      param_1[0x9c] = auStack_50[3];\n      pbVar7 = (byte *)param_1[0x96];\n      if (uVar5 != 1) goto code_r0x00023235;\n    }\n    else {\ncode_r0x00023748:\n      param_1[0x9d] = 1;\n      param_1[0x9c] = (uint)pbVar12;\n      pbVar12 = local_60;\n      pbVar7 = local_5c[0];\n    }\n    uVar19 = (uint)*pbVar7;\n    local_5c[0] = pbVar7 + 1;\n    param_1[0x96] = (uint)(pbVar7 + 1);\n    local_60 = pbVar12 + -1;\n    param_1[0x97] = (uint)(pbVar12 + -1);\n    switch(uVar19 - 10 & 0xff) {\n    case 0:\n      goto code_r0x0002359b;\n    case 0x1a:\n      goto code_r0x00023673;\n    case 0x1d:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023868;\n      goto code_r0x00023690;\n    case 0x1e:\n      bVar21 = 1;\n      goto code_r0x00023262;\n    case 0x1f:\n      bVar21 = 1;\n      goto code_r0x0002351a;\n    case 0x20:\n      goto code_r0x00023894;\n    case 0x21:\n      bVar21 = 1;\n      goto code_r0x000234d2;\n    case 0x24:\n      bVar4 = true;\n      goto code_r0x0002336a;\n    case 0x27:\n    case 0x28:\n    case 0x29:\n    case 0x2a:\n    case 0x2b:\n    case 0x2c:\n    case 0x2d:\n    case 0x2e:\n    case 0x2f:\n      if ((*param_1 & 0x4000) == 0) {\n        *(byte *)(param_1 + 0xa3) = 0;\n        uVar19 = 0x112;\n        param_1[0x98] = 0x112;\n        goto LAB_0002318d;\n      }\n    default:\nLAB_00023150:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      break;\n    case 0x32:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10e;\n        uVar19 = 0x10e;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236f8;\n    case 0x34:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10f;\n        uVar19 = 0x10f;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236e0;\n    case 0x35:\n      bVar21 = 1;\n      goto code_r0x000233b2;\n    case 0x38:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x111;\n        uVar19 = 0x111;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x00023710;\n    case 0x49:\n    case 0x69:\n      bVar4 = true;\n      goto code_r0x0002342a;\n    case 0x4d:\n    case 0x6d:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      if ((*param_1 & 0x80000) != 0) break;\n      if (bVar21 != 0) {\n        pcVar8 = &UNK_0002f474 + (uVar19 == 0x77);\n        goto code_r0x0002345c;\n      }\n      uVar5 = 0;\n      do {\n        *(undefined4 *)((int)local_40 + uVar5) = 0;\n        uVar5 = uVar5 + 4;\n      } while (uVar5 < 0x20);\n      uVar5 = 0;\n      do {\n        if (*(byte *)((int)param_1 + uVar5 + 8) == 2) {\n          local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 != 0x100);\n      if (uVar19 == 0x57) goto code_r0x00023b34;\n      goto code_r0x00023ae7;\n    case 0x51:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5b;\n      puVar13 = auStack_6c;\n      break;\n    case 0x52:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5c;\n      puVar13 = auStack_6c;\n      break;\n    case 0x54:\n      goto code_r0x000235d7;\n    case 0x56:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023880;\n      goto code_r0x000236c8;\n    case 0x58:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x110;\n        uVar19 = 0x110;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236a8;\n    case 0x71:\n      bStack_51 = 1;\n      goto code_r0x00023295;\n    case 0x72:\n      bVar21 = 1;\n      goto code_r0x000233fa;\n    }\n    break;\n  case 0x54:\n    if ((((*param_1 & 8) != 0) || (param_1[0x98] - 0x106 < 2)) || (param_1[0x98] == 0xffffffff)) {\ncode_r0x00023880:\n      param_1[0x98] = 0x10c;\n      uVar19 = 0x10c;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x000235d7:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x5e;\n    puVar13 = auStack_6c;\n    break;\n  case 0x56:\ncode_r0x000236c8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x60;\n    puVar13 = auStack_6c;\n    break;\n  case 0x58:\ncode_r0x000236a8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x62;\n    puVar13 = auStack_6c;\n    break;\n  case 0x71:\n    bStack_51 = 0;\ncode_r0x00023295:\n    auStack_50[0] = *param_1;\n    puVar13 = auStack_6c;\n    if ((((auStack_50[0] & 0x200) != 0) &&\n        (puVar13 = auStack_6c, (((byte)(auStack_50[0] >> 0xc) ^ 1) & 1) == bStack_51)) &&\n       (((auStack_50[0] & 0x10) != 0 || (puVar13 = auStack_6c, (byte)param_1[0xa3] == 0)))) {\n      local_5c[1] = pbVar7 + (int)pbVar12;\n      param_1[0x9b] = 0xffffffff;\n      param_1[0x9a] = 0xffffffff;\n      if (local_5c[1] == local_5c[0]) {\ncode_r0x00023b5a:\n        puVar13 = auStack_6c;\n        if (bStack_51 == 0) goto code_r0x00023a30;\n      }\n      else {\n        bVar21 = pbVar7[1];\n        pbVar12 = (byte *)(int)(char)bVar21;\n        if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar7 = (byte *)0xffffffff;\n          local_60 = pbVar12;\n          do {\n            pbVar3 = local_60;\n            if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }\n            pbVar7 = pbVar3 + -0x30;\n            param_1[0x9a] = (uint)pbVar7;\n            local_5c[0] = local_5c[0] + 1;\n            if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }\n            bVar21 = *local_5c[0];\n            local_60 = (byte *)(int)(char)bVar21;\n            pbVar12 = (byte *)(int)(char)bVar21 + -0x30;\n          } while ((byte)pbVar12 < 10);\n          if (bVar21 == 0x2c) {\n            if ((int)pbVar7 < 0) goto code_r0x00023bed;\ncode_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;\n            if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }\n            bVar21 = local_5c[0][1];\n            if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            local_5c[0] = pbVar12;\n            goto code_r0x00023bd8;\n          }\n          param_1[0x9b] = (uint)pbVar7;\n          puVar17 = auStack_6c;\n          if (bStack_51 == 0) goto code_r0x00023a30;\n        }\n        else {\n          if (bVar21 == 0x2c) {\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }\ncode_r0x00023bd8:\n          if (bStack_51 == 0) goto code_r0x00023a3a;\n        }\n        puVar13 = auStack_6c;\n        if (*local_5c[0] == 0x5c) goto code_r0x00023a2b;\n      }\ncode_r0x00023a04:\n      if ((*(uint *)(puVar13 + 0x1c) & 0x200000) == 0) {\n        *(byte **)(puVar13 + -4) = pbVar12;\n        pcVar8 = "invalid content of \\{\\}";\n        ppbVar15 = (byte **)(puVar13 + -8);\n        *(undefined4 *)(puVar13 + -8) = 5;\ncode_r0x00023a1b:\n        while( true ) {\n          *(char **)((int)ppbVar15 + -4) = pcVar8;\n          puVar16 = (undefined1 *)((int)ppbVar15 + -8);\n          *(undefined4 *)((int)ppbVar15 + -8) = 0;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23;\n          uVar11 = dcgettext();\n          *(undefined4 *)((int)ppbVar15 + -8) = uVar11;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b;\n          FUN_0001be40();\n          pbVar12 = extraout_ECX;\ncode_r0x00023a2b:\n          *(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;\n          puVar17 = puVar16;\ncode_r0x00023a30:\n          puVar13 = puVar17;\n          puVar18 = puVar17;\n          if (*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)) break;\ncode_r0x00023a3a:\n          puVar13 = puVar18;\n          if ((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))\n          break;\n          uVar5 = param_1[0x9b];\n          if ((int)uVar5 < 0) {\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }\n          if ((int)uVar5 < (int)uVar19) break;\n          if ((int)uVar5 < 0x8000) goto code_r0x00023a66;\n          pcVar8 = "regular expression too big";\n          *(uint *)(puVar18 + -4) = uVar19;\n          ppbVar15 = (byte **)(puVar18 + -8);\n          *(undefined4 *)(puVar18 + -8) = 5;\n        }\n        goto code_r0x00023a04;\n      }\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x7b;\n    break;\n  case 0x72:\n    bVar21 = 0;\ncode_r0x000233fa:\n    if (((*param_1 & 0x400) != 0) || ((((byte)(*param_1 >> 0xf) ^ 1) & 1) != bVar21)) {\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x7c;\n      puVar13 = auStack_6c;\n      break;\n    }\ncode_r0x000238f1:\n    *(byte *)(param_1 + 0xa3) = 1;\n    uVar19 = 0x106;\n    param_1[0x98] = 0x106;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;\n  }\nLAB_00023160:\n  puVar14 = puVar13;\n  *(byte *)(param_1 + 0xa3) = 0;\n  if (bVar21 == 0) {\n    if (*(byte *)((int)param_1 + 5) != 0) {\n      *(undefined4 *)(puVar14 + -4) = 0x2317a;\n      ppuVar6 = __ctype_b_loc();\n      if ((*(byte *)((int)*ppuVar6 + uVar19 * 2 + 1) & 4) != 0) {\n        uVar19 = 0;\n        do {\n          *(undefined4 *)(puVar14 + uVar19 + 0x2c) = 0;\n          uVar19 = uVar19 + 4;\n        } while (uVar19 < 0x20);\n        *(undefined4 *)(puVar14 + -4) = 0x237bd;\n        FUN_0001da50();\ncode_r0x000237bd:\n        *(undefined4 *)(puVar14 + -4) = 0x237c6;\n        iVar10 = FUN_0001e6a0();\n        uVar19 = iVar10 + 0x114;\n      }\n    }\n    param_1[0x98] = uVar19;\n    puVar13 = puVar14;\n  }\n  else {\n    param_1[0x98] = 0x109;\n    uVar19 = 0x109;\n    puVar13 = puVar14;\n  }\nLAB_0002318d:\n  if (*(int *)(puVar13 + 0x4c) == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar19;\n  }\n                    /* WARNING: Subroutine does not return */\n  *(undefined **)(puVar13 + -4) = &UNK_00023c01;\n  FUN_0002c430();\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "ushort *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "ushort **ppuVar6;" type_identifier (pointer_declarator "**ppuVar6" * (pointer_declarator "*ppuVar6" * identifier)) ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "size_t sVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "byte *extraout_ECX;" type_identifier (pointer_declarator "*extraout_ECX" * identifier) ;) (declaration "undefined1 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined1 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "byte **ppbVar15;" type_identifier (pointer_declarator "**ppbVar15" * (pointer_declarator "*ppbVar15" * identifier)) ;) (declaration "undefined1 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "undefined1 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "undefined1 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "uint *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "byte bVar21;" type_identifier identifier ;) (declaration "undefined4 uStackY_80;" type_identifier identifier ;) (declaration "byte *pbStack_74;" type_identifier (pointer_declarator "*pbStack_74" * identifier) ;) (declaration "uint *puStack_70;" type_identifier (pointer_declarator "*puStack_70" * identifier) ;) (declaration "undefined1 auStack_6c [12];" type_identifier (array_declarator "auStack_6c [12]" identifier [ number_literal ]) ;) (declaration "byte *local_60;" type_identifier (pointer_declarator "*local_60" * identifier) ;) (declaration "byte *local_5c [2];" type_identifier (pointer_declarator "*local_5c [2]" * (array_declarator "local_5c [2]" identifier [ number_literal ])) ;) (declaration "byte bStack_51;" type_identifier identifier ;) (declaration "uint auStack_50 [4];" type_identifier (array_declarator "auStack_50 [4]" identifier [ number_literal ]) ;) (declaration "uint local_40 [11];" type_identifier (array_declarator "local_40 [11]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x230cb;" (assignment_expression "uStack_14 = 0x230cb" identifier = number_literal) ;) (expression_statement "pbVar12 = (byte *)param_1[0x97];" (assignment_expression "pbVar12 = (byte *)param_1[0x97]" identifier = (cast_expression "(byte *)param_1[0x97]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x97]" identifier [ number_literal ]))) ;) (expression_statement "local_40[8] = *(undefined4 *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_40[8] = *(undefined4 *)(in_GS_OFFSET + 0x14)" (subscript_expression "local_40[8]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(in_GS_OFFSET + 0x14)" * (cast_expression "(undefined4 *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (pbVar12 == (byte *)0x0) {\n    param_1[0x98] = 0xffffffff;\n    uVar19 = 0xffffffff;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;\n  }" if (parenthesized_expression "(pbVar12 == (byte *)0x0)" ( (binary_expression "pbVar12 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    param_1[0x98] = 0xffffffff;\n    uVar19 = 0xffffffff;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;\n  }" { (expression_statement "param_1[0x98] = 0xffffffff;" (assignment_expression "param_1[0x98] = 0xffffffff" (subscript_expression "param_1[0x98]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar19 = 0xffffffff;" (assignment_expression "uVar19 = 0xffffffff" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) })) (expression_statement "pbVar7 = (byte *)param_1[0x96];" (assignment_expression "pbVar7 = (byte *)param_1[0x96]" identifier = (cast_expression "(byte *)param_1[0x96]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x96]" identifier [ number_literal ]))) ;) (expression_statement "uVar19 = param_1[*pbVar7 + 0x10d];" (assignment_expression "uVar19 = param_1[*pbVar7 + 0x10d]" identifier = (subscript_expression "param_1[*pbVar7 + 0x10d]" identifier [ (binary_expression "*pbVar7 + 0x10d" (pointer_expression "*pbVar7" * identifier) + number_literal) ])) ;) (if_statement "if (uVar19 == 0xffffffff) {\n    puStack_70 = param_1 + 0xb2;\n    pbStack_74 = pbVar12;\n    uVar5 = FUN_0002b6f0(auStack_50 + 3,pbVar7);\n    if (0xfffffffc < uVar5 - 1) {\n      param_1[0xb2] = 0;\n      pbVar7 = (byte *)param_1[0x96];\n      param_1[0xb3] = 0;\n      pbVar12 = (byte *)param_1[0x97];\n      goto LAB_00023107;\n    }\n    pbVar12 = (byte *)param_1[0x97];\n    param_1[0x9d] = uVar5;\n    param_1[0x9c] = auStack_50[3];\n    pbVar7 = (byte *)param_1[0x96];\n    if (uVar5 == 1) goto LAB_00023117;\ncode_r0x00023235:\n    uVar19 = 0xffffffff;\n    param_1[0x96] = (uint)(pbVar7 + uVar5);\n    bVar21 = (byte)param_1[0xcc];\n    param_1[0x97] = (int)pbVar12 - uVar5;\n    puVar13 = auStack_6c;\n    goto LAB_00023160;\n  }" if (parenthesized_expression "(uVar19 == 0xffffffff)" ( (binary_expression "uVar19 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n    puStack_70 = param_1 + 0xb2;\n    pbStack_74 = pbVar12;\n    uVar5 = FUN_0002b6f0(auStack_50 + 3,pbVar7);\n    if (0xfffffffc < uVar5 - 1) {\n      param_1[0xb2] = 0;\n      pbVar7 = (byte *)param_1[0x96];\n      param_1[0xb3] = 0;\n      pbVar12 = (byte *)param_1[0x97];\n      goto LAB_00023107;\n    }\n    pbVar12 = (byte *)param_1[0x97];\n    param_1[0x9d] = uVar5;\n    param_1[0x9c] = auStack_50[3];\n    pbVar7 = (byte *)param_1[0x96];\n    if (uVar5 == 1) goto LAB_00023117;\ncode_r0x00023235:\n    uVar19 = 0xffffffff;\n    param_1[0x96] = (uint)(pbVar7 + uVar5);\n    bVar21 = (byte)param_1[0xcc];\n    param_1[0x97] = (int)pbVar12 - uVar5;\n    puVar13 = auStack_6c;\n    goto LAB_00023160;\n  }" { (expression_statement "puStack_70 = param_1 + 0xb2;" (assignment_expression "puStack_70 = param_1 + 0xb2" identifier = (binary_expression "param_1 + 0xb2" identifier + number_literal)) ;) (expression_statement "pbStack_74 = pbVar12;" (assignment_expression "pbStack_74 = pbVar12" identifier = identifier) ;) (expression_statement "uVar5 = FUN_0002b6f0(auStack_50 + 3,pbVar7);" (assignment_expression "uVar5 = FUN_0002b6f0(auStack_50 + 3,pbVar7)" identifier = (call_expression "FUN_0002b6f0(auStack_50 + 3,pbVar7)" identifier (argument_list "(auStack_50 + 3,pbVar7)" ( (binary_expression "auStack_50 + 3" identifier + number_literal) , identifier )))) ;) (if_statement "if (0xfffffffc < uVar5 - 1) {\n      param_1[0xb2] = 0;\n      pbVar7 = (byte *)param_1[0x96];\n      param_1[0xb3] = 0;\n      pbVar12 = (byte *)param_1[0x97];\n      goto LAB_00023107;\n    }" if (parenthesized_expression "(0xfffffffc < uVar5 - 1)" ( (binary_expression "0xfffffffc < uVar5 - 1" number_literal < (binary_expression "uVar5 - 1" identifier - number_literal)) )) (compound_statement "{\n      param_1[0xb2] = 0;\n      pbVar7 = (byte *)param_1[0x96];\n      param_1[0xb3] = 0;\n      pbVar12 = (byte *)param_1[0x97];\n      goto LAB_00023107;\n    }" { (expression_statement "param_1[0xb2] = 0;" (assignment_expression "param_1[0xb2] = 0" (subscript_expression "param_1[0xb2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar7 = (byte *)param_1[0x96];" (assignment_expression "pbVar7 = (byte *)param_1[0x96]" identifier = (cast_expression "(byte *)param_1[0x96]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x96]" identifier [ number_literal ]))) ;) (expression_statement "param_1[0xb3] = 0;" (assignment_expression "param_1[0xb3] = 0" (subscript_expression "param_1[0xb3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar12 = (byte *)param_1[0x97];" (assignment_expression "pbVar12 = (byte *)param_1[0x97]" identifier = (cast_expression "(byte *)param_1[0x97]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x97]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_00023107;" goto statement_identifier ;) })) (expression_statement "pbVar12 = (byte *)param_1[0x97];" (assignment_expression "pbVar12 = (byte *)param_1[0x97]" identifier = (cast_expression "(byte *)param_1[0x97]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x97]" identifier [ number_literal ]))) ;) (expression_statement "param_1[0x9d] = uVar5;" (assignment_expression "param_1[0x9d] = uVar5" (subscript_expression "param_1[0x9d]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[0x9c] = auStack_50[3];" (assignment_expression "param_1[0x9c] = auStack_50[3]" (subscript_expression "param_1[0x9c]" identifier [ number_literal ]) = (subscript_expression "auStack_50[3]" identifier [ number_literal ])) ;) (expression_statement "pbVar7 = (byte *)param_1[0x96];" (assignment_expression "pbVar7 = (byte *)param_1[0x96]" identifier = (cast_expression "(byte *)param_1[0x96]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x96]" identifier [ number_literal ]))) ;) (if_statement "if (uVar5 == 1) goto LAB_00023117;" if (parenthesized_expression "(uVar5 == 1)" ( (binary_expression "uVar5 == 1" identifier == number_literal) )) (goto_statement "goto LAB_00023117;" goto statement_identifier ;)) (labeled_statement "code_r0x00023235:\n    uVar19 = 0xffffffff;" statement_identifier : (expression_statement "uVar19 = 0xffffffff;" (assignment_expression "uVar19 = 0xffffffff" identifier = number_literal) ;)) (expression_statement "param_1[0x96] = (uint)(pbVar7 + uVar5);" (assignment_expression "param_1[0x96] = (uint)(pbVar7 + uVar5)" (subscript_expression "param_1[0x96]" identifier [ number_literal ]) = (call_expression "(uint)(pbVar7 + uVar5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar7 + uVar5)" ( (binary_expression "pbVar7 + uVar5" identifier + identifier) )))) ;) (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;) (expression_statement "param_1[0x97] = (int)pbVar12 - uVar5;" (assignment_expression "param_1[0x97] = (int)pbVar12 - uVar5" (subscript_expression "param_1[0x97]" identifier [ number_literal ]) = (binary_expression "(int)pbVar12 - uVar5" (cast_expression "(int)pbVar12" ( (type_descriptor "int" primitive_type) ) identifier) - identifier)) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (goto_statement "goto LAB_00023160;" goto statement_identifier ;) })) (labeled_statement "LAB_00023107:\n  param_1[0x9c] = uVar19;" statement_identifier : (expression_statement "param_1[0x9c] = uVar19;" (assignment_expression "param_1[0x9c] = uVar19" (subscript_expression "param_1[0x9c]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "param_1[0x9d] = 1;" (assignment_expression "param_1[0x9d] = 1" (subscript_expression "param_1[0x9d]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_00023117:\n  puVar14 = auStack_6c;" statement_identifier : (expression_statement "puVar14 = auStack_6c;" (assignment_expression "puVar14 = auStack_6c" identifier = identifier) ;)) (expression_statement "puVar18 = auStack_6c;" (assignment_expression "puVar18 = auStack_6c" identifier = identifier) ;) (expression_statement "puVar16 = auStack_6c;" (assignment_expression "puVar16 = auStack_6c" identifier = identifier) ;) (expression_statement "puVar17 = auStack_6c;" (assignment_expression "puVar17 = auStack_6c" identifier = identifier) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (expression_statement "uVar19 = (uint)*pbVar7;" (assignment_expression "uVar19 = (uint)*pbVar7" identifier = (binary_expression "(uint)*pbVar7" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "local_5c[0] = pbVar7 + 1;" (assignment_expression "local_5c[0] = pbVar7 + 1" (subscript_expression "local_5c[0]" identifier [ number_literal ]) = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) (expression_statement "param_1[0x96] = (uint)local_5c[0];" (assignment_expression "param_1[0x96] = (uint)local_5c[0]" (subscript_expression "param_1[0x96]" identifier [ number_literal ]) = (cast_expression "(uint)local_5c[0]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_5c[0]" identifier [ number_literal ]))) ;) (expression_statement "local_60 = pbVar12 + -1;" (assignment_expression "local_60 = pbVar12 + -1" identifier = (binary_expression "pbVar12 + -1" identifier + number_literal)) ;) (expression_statement "param_1[0x97] = (uint)local_60;" (assignment_expression "param_1[0x97] = (uint)local_60" (subscript_expression "param_1[0x97]" identifier [ number_literal ]) = (cast_expression "(uint)local_60" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (0x72 < (byte)(uVar19 - 10)) goto LAB_00023150;" if (parenthesized_expression "(0x72 < (byte)(uVar19 - 10))" ( (binary_expression "0x72 < (byte)(uVar19 - 10)" number_literal < (call_expression "(byte)(uVar19 - 10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar19 - 10)" ( (binary_expression "uVar19 - 10" identifier - number_literal) )))) )) (goto_statement "goto LAB_00023150;" goto statement_identifier ;)) (expression_statement "uVar5 = uVar19 - 10 & 0xff;" (assignment_expression "uVar5 = uVar19 - 10 & 0xff" identifier = (binary_expression "uVar19 - 10 & 0xff" (binary_expression "uVar19 - 10" identifier - number_literal) & number_literal)) ;) (switch_statement "switch(uVar5) {\n  case 0:\n    if (((*param_1 & 0x400) != 0) || ((*param_1 & 0x800) == 0)) {\ncode_r0x0002359b:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 10;\n      puVar13 = auStack_6c;\n      break;\n    }\n    goto code_r0x000238f1;\n  default:\n    goto LAB_00023150;\n  case 0x1a:\n    uVar19 = *param_1;\n    if ((((((uVar19 & 8) != 0) || (local_60 == (byte *)0x0)) ||\n         ((pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)))) ||\n        ((pbVar12 = (byte *)((uVar19 >> 0xf ^ 1) & 1), pbVar12 < local_60 &&\n         (local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c)))) ||\n       (((uVar19 & 0x800) != 0 && (pbVar7[1] == 10)))) {\ncode_r0x00023868:\n      param_1[0x98] = 0x10d;\n      uVar19 = 0x10d;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x00023673:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x24;\n    puVar13 = auStack_6c;\n    break;\n  case 0x1d:\ncode_r0x00023690:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x27;\n    puVar13 = auStack_6c;\n    break;\n  case 0x1e:\n    bVar21 = 0;\ncode_r0x00023262:\n    if ((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) {\n      param_1[0x99] = param_1[0x99] + 1;\n      uVar19 = 0x107;\n      *(byte *)(param_1 + 0xa3) = 1;\n      param_1[0x98] = 0x107;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x28;\n    puVar13 = auStack_6c;\n    break;\n  case 0x1f:\n    bVar21 = 0;\ncode_r0x0002351a:\n    if (((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) &&\n       ((param_1[0x99] != 0 || ((*param_1 & 0x20000) == 0)))) {\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x108;\n      param_1[0x99] = param_1[0x99] - 1;\n      param_1[0x98] = 0x108;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x29;\n    puVar13 = auStack_6c;\n    break;\n  case 0x20:\n    if (((*param_1 & 0x10) != 0) || ((byte)param_1[0xa3] == 0)) {\n      param_1[0x98] = 0x102;\n      uVar19 = 0x102;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x00023894:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x2a;\n    puVar13 = auStack_6c;\n    break;\n  case 0x21:\n    bVar21 = 0;\ncode_r0x000234d2:\n    uVar19 = *param_1;\n    if ((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))) {\n      param_1[0x98] = 0x103;\n      uVar19 = 0x103;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x2b;\n    puVar13 = auStack_6c;\n    break;\n  case 0x24:\n    bVar4 = false;\ncode_r0x0002336a:\n    bVar21 = (byte)param_1[0xcc];\n    if (!bVar4) {\n      uVar5 = param_1[0x95];\n      if (uVar5 == 0xffffffff) {\n        local_40[0] = 0xffffffff;\n        local_40[1] = 0xffffffff;\n        local_40[2] = 0xffffffff;\n        local_40[3] = 0xffffffff;\n        local_40[4] = 0xffffffff;\n        local_40[5] = 0xffffffff;\n        local_40[6] = 0xffffffff;\n        local_40[7] = 0xffffffff;\n        if ((*param_1 & 0x40) == 0) {\n          local_40[0] = 0xfffffbff;\n        }\n        if ((*param_1 & 0x80) != 0) {\n          local_40[0] = local_40[0] & 0xfffffffe;\n        }\n        if (bVar21 != 0) {\n          uVar19 = 0;\n          do {\n            if (param_1[uVar19 + 0x10d] == 0xffffffff) {\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }\n            uVar19 = uVar19 + 1;\n          } while (uVar19 != 0x100);\n        }\n        puStack_70 = (uint *)&UNK_000239cf;\n        uVar5 = FUN_0001e6a0();\n        bVar21 = (byte)param_1[0xcc];\n        param_1[0x95] = uVar5;\n      }\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x10a;\n      if (bVar21 == 0) {\n        uVar19 = uVar5 + 0x114;\n      }\n      param_1[0x98] = uVar19;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    uVar19 = 0x2e;\n    puVar13 = auStack_6c;\n    break;\n  case 0x32:\ncode_r0x000236f8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3c;\n    puVar13 = auStack_6c;\n    break;\n  case 0x34:\ncode_r0x000236e0:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3e;\n    puVar13 = auStack_6c;\n    break;\n  case 0x35:\n    bVar21 = 0;\ncode_r0x000233b2:\n    uVar19 = *param_1;\n    if ((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))) {\n      param_1[0x98] = 0x101;\n      uVar19 = 0x101;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3f;\n    puVar13 = auStack_6c;\n    break;\n  case 0x38:\ncode_r0x00023710:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x42;\n    puVar13 = auStack_6c;\n    break;\n  case 0x49:\n  case 0x69:\n    bVar4 = false;\ncode_r0x0002342a:\n    bVar21 = (byte)param_1[0xcc];\n    puVar13 = auStack_6c;\n    if ((!bVar4) || (puVar13 = auStack_6c, (*param_1 & 0x80000) != 0)) break;\n    if (bVar21 != 0) {\n      pcVar8 = &UNK_0002f468 + (uVar19 == 0x73);\ncode_r0x0002345c:\n      param_1[0x96] = (uint)pcVar8;\n      sVar9 = strlen(pcVar8);\n      param_1[0x97] = sVar9;\n      puStack_70 = (uint *)&UNK_0002347b;\n      uVar19 = FUN_00021f80();\n      *(byte *)(param_1 + 0xa3) = 0;\n      param_1[0x98] = uVar19;\n      param_1[0x96] = (uint)local_5c[0];\n      param_1[0x97] = (uint)local_60;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    uVar5 = 0;\n    do {\n      *(undefined4 *)((int)local_40 + uVar5) = 0;\n      uVar5 = uVar5 + 4;\n    } while (uVar5 < 0x20);\n    puStack_70 = (uint *)&UNK_00023ab3;\n    ppuVar6 = __ctype_b_loc();\n    uVar5 = 0;\n    puVar2 = *ppuVar6;\n    do {\n      if ((*(byte *)((int)puVar2 + uVar5 * 2 + 1) & 0x20) != 0) {\n        local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n      }\n      uVar5 = uVar5 + 1;\n    } while (uVar5 != 0x100);\n    if (uVar19 == 0x53) {\ncode_r0x00023b34:\n      local_40[0] = ~local_40[0];\n      local_40[1] = ~local_40[1];\n      local_40[2] = ~local_40[2];\n      local_40[3] = ~local_40[3];\n      local_40[4] = ~local_40[4];\n      local_40[5] = ~local_40[5];\n      local_40[6] = ~local_40[6];\n      local_40[7] = ~local_40[7];\n    }\ncode_r0x00023ae7:\n    *(byte *)(param_1 + 0xa3) = 0;\n    goto code_r0x000237bd;\n  case 0x51:\n    *(byte *)(param_1 + 0xa3) = 0;\n    puStack_70 = (uint *)&UNK_0002357e;\n    uVar19 = FUN_00021f80();\n    param_1[0x98] = uVar19;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;\n  case 0x52:\n    if (local_60 == (byte *)0x0) {\n      pcVar8 = "unfinished \\ escape";\n      ppbVar15 = &pbStack_74;\n      pbStack_74 = (byte *)0x5;\n      puStack_70 = (uint *)((int)&__DT_PLTGOT + *(int *)(&DAT_0002ef08 + uVar5 * 4));\n      goto code_r0x00023a1b;\n    }\n    pbVar12 = (byte *)param_1[pbVar7[1] + 0x10d];\n    if (pbVar12 == (byte *)0xffffffff) {\n      pbStack_74 = local_60;\n      puStack_70 = param_1 + 0xb2;\n      local_5c[1] = pbVar12;\n      uVar5 = FUN_0002b6f0(auStack_50 + 3,local_5c[0]);\n      if (0xfffffffc < uVar5 - 1) {\n        puVar20 = param_1 + 0xb2;\n        for (iVar10 = 2; iVar10 != 0; iVar10 = iVar10 + -1) {\n          *puVar20 = 0;\n          puVar20 = puVar20 + (uint)bVar21 * -2 + 1;\n        }\n        local_5c[0] = (byte *)param_1[0x96];\n        local_60 = (byte *)param_1[0x97];\n        pbVar12 = local_5c[1];\n        goto code_r0x00023748;\n      }\n      pbVar12 = (byte *)param_1[0x97];\n      param_1[0x9d] = uVar5;\n      param_1[0x9c] = auStack_50[3];\n      pbVar7 = (byte *)param_1[0x96];\n      if (uVar5 != 1) goto code_r0x00023235;\n    }\n    else {\ncode_r0x00023748:\n      param_1[0x9d] = 1;\n      param_1[0x9c] = (uint)pbVar12;\n      pbVar12 = local_60;\n      pbVar7 = local_5c[0];\n    }\n    uVar19 = (uint)*pbVar7;\n    local_5c[0] = pbVar7 + 1;\n    param_1[0x96] = (uint)(pbVar7 + 1);\n    local_60 = pbVar12 + -1;\n    param_1[0x97] = (uint)(pbVar12 + -1);\n    switch(uVar19 - 10 & 0xff) {\n    case 0:\n      goto code_r0x0002359b;\n    case 0x1a:\n      goto code_r0x00023673;\n    case 0x1d:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023868;\n      goto code_r0x00023690;\n    case 0x1e:\n      bVar21 = 1;\n      goto code_r0x00023262;\n    case 0x1f:\n      bVar21 = 1;\n      goto code_r0x0002351a;\n    case 0x20:\n      goto code_r0x00023894;\n    case 0x21:\n      bVar21 = 1;\n      goto code_r0x000234d2;\n    case 0x24:\n      bVar4 = true;\n      goto code_r0x0002336a;\n    case 0x27:\n    case 0x28:\n    case 0x29:\n    case 0x2a:\n    case 0x2b:\n    case 0x2c:\n    case 0x2d:\n    case 0x2e:\n    case 0x2f:\n      if ((*param_1 & 0x4000) == 0) {\n        *(byte *)(param_1 + 0xa3) = 0;\n        uVar19 = 0x112;\n        param_1[0x98] = 0x112;\n        goto LAB_0002318d;\n      }\n    default:\nLAB_00023150:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      break;\n    case 0x32:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10e;\n        uVar19 = 0x10e;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236f8;\n    case 0x34:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10f;\n        uVar19 = 0x10f;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236e0;\n    case 0x35:\n      bVar21 = 1;\n      goto code_r0x000233b2;\n    case 0x38:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x111;\n        uVar19 = 0x111;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x00023710;\n    case 0x49:\n    case 0x69:\n      bVar4 = true;\n      goto code_r0x0002342a;\n    case 0x4d:\n    case 0x6d:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      if ((*param_1 & 0x80000) != 0) break;\n      if (bVar21 != 0) {\n        pcVar8 = &UNK_0002f474 + (uVar19 == 0x77);\n        goto code_r0x0002345c;\n      }\n      uVar5 = 0;\n      do {\n        *(undefined4 *)((int)local_40 + uVar5) = 0;\n        uVar5 = uVar5 + 4;\n      } while (uVar5 < 0x20);\n      uVar5 = 0;\n      do {\n        if (*(byte *)((int)param_1 + uVar5 + 8) == 2) {\n          local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 != 0x100);\n      if (uVar19 == 0x57) goto code_r0x00023b34;\n      goto code_r0x00023ae7;\n    case 0x51:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5b;\n      puVar13 = auStack_6c;\n      break;\n    case 0x52:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5c;\n      puVar13 = auStack_6c;\n      break;\n    case 0x54:\n      goto code_r0x000235d7;\n    case 0x56:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023880;\n      goto code_r0x000236c8;\n    case 0x58:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x110;\n        uVar19 = 0x110;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236a8;\n    case 0x71:\n      bStack_51 = 1;\n      goto code_r0x00023295;\n    case 0x72:\n      bVar21 = 1;\n      goto code_r0x000233fa;\n    }\n    break;\n  case 0x54:\n    if ((((*param_1 & 8) != 0) || (param_1[0x98] - 0x106 < 2)) || (param_1[0x98] == 0xffffffff)) {\ncode_r0x00023880:\n      param_1[0x98] = 0x10c;\n      uVar19 = 0x10c;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x000235d7:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x5e;\n    puVar13 = auStack_6c;\n    break;\n  case 0x56:\ncode_r0x000236c8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x60;\n    puVar13 = auStack_6c;\n    break;\n  case 0x58:\ncode_r0x000236a8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x62;\n    puVar13 = auStack_6c;\n    break;\n  case 0x71:\n    bStack_51 = 0;\ncode_r0x00023295:\n    auStack_50[0] = *param_1;\n    puVar13 = auStack_6c;\n    if ((((auStack_50[0] & 0x200) != 0) &&\n        (puVar13 = auStack_6c, (((byte)(auStack_50[0] >> 0xc) ^ 1) & 1) == bStack_51)) &&\n       (((auStack_50[0] & 0x10) != 0 || (puVar13 = auStack_6c, (byte)param_1[0xa3] == 0)))) {\n      local_5c[1] = pbVar7 + (int)pbVar12;\n      param_1[0x9b] = 0xffffffff;\n      param_1[0x9a] = 0xffffffff;\n      if (local_5c[1] == local_5c[0]) {\ncode_r0x00023b5a:\n        puVar13 = auStack_6c;\n        if (bStack_51 == 0) goto code_r0x00023a30;\n      }\n      else {\n        bVar21 = pbVar7[1];\n        pbVar12 = (byte *)(int)(char)bVar21;\n        if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar7 = (byte *)0xffffffff;\n          local_60 = pbVar12;\n          do {\n            pbVar3 = local_60;\n            if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }\n            pbVar7 = pbVar3 + -0x30;\n            param_1[0x9a] = (uint)pbVar7;\n            local_5c[0] = local_5c[0] + 1;\n            if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }\n            bVar21 = *local_5c[0];\n            local_60 = (byte *)(int)(char)bVar21;\n            pbVar12 = (byte *)(int)(char)bVar21 + -0x30;\n          } while ((byte)pbVar12 < 10);\n          if (bVar21 == 0x2c) {\n            if ((int)pbVar7 < 0) goto code_r0x00023bed;\ncode_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;\n            if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }\n            bVar21 = local_5c[0][1];\n            if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            local_5c[0] = pbVar12;\n            goto code_r0x00023bd8;\n          }\n          param_1[0x9b] = (uint)pbVar7;\n          puVar17 = auStack_6c;\n          if (bStack_51 == 0) goto code_r0x00023a30;\n        }\n        else {\n          if (bVar21 == 0x2c) {\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }\ncode_r0x00023bd8:\n          if (bStack_51 == 0) goto code_r0x00023a3a;\n        }\n        puVar13 = auStack_6c;\n        if (*local_5c[0] == 0x5c) goto code_r0x00023a2b;\n      }\ncode_r0x00023a04:\n      if ((*(uint *)(puVar13 + 0x1c) & 0x200000) == 0) {\n        *(byte **)(puVar13 + -4) = pbVar12;\n        pcVar8 = "invalid content of \\{\\}";\n        ppbVar15 = (byte **)(puVar13 + -8);\n        *(undefined4 *)(puVar13 + -8) = 5;\ncode_r0x00023a1b:\n        while( true ) {\n          *(char **)((int)ppbVar15 + -4) = pcVar8;\n          puVar16 = (undefined1 *)((int)ppbVar15 + -8);\n          *(undefined4 *)((int)ppbVar15 + -8) = 0;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23;\n          uVar11 = dcgettext();\n          *(undefined4 *)((int)ppbVar15 + -8) = uVar11;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b;\n          FUN_0001be40();\n          pbVar12 = extraout_ECX;\ncode_r0x00023a2b:\n          *(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;\n          puVar17 = puVar16;\ncode_r0x00023a30:\n          puVar13 = puVar17;\n          puVar18 = puVar17;\n          if (*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)) break;\ncode_r0x00023a3a:\n          puVar13 = puVar18;\n          if ((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))\n          break;\n          uVar5 = param_1[0x9b];\n          if ((int)uVar5 < 0) {\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }\n          if ((int)uVar5 < (int)uVar19) break;\n          if ((int)uVar5 < 0x8000) goto code_r0x00023a66;\n          pcVar8 = "regular expression too big";\n          *(uint *)(puVar18 + -4) = uVar19;\n          ppbVar15 = (byte **)(puVar18 + -8);\n          *(undefined4 *)(puVar18 + -8) = 5;\n        }\n        goto code_r0x00023a04;\n      }\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x7b;\n    break;\n  case 0x72:\n    bVar21 = 0;\ncode_r0x000233fa:\n    if (((*param_1 & 0x400) != 0) || ((((byte)(*param_1 >> 0xf) ^ 1) & 1) != bVar21)) {\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x7c;\n      puVar13 = auStack_6c;\n      break;\n    }\ncode_r0x000238f1:\n    *(byte *)(param_1 + 0xa3) = 1;\n    uVar19 = 0x106;\n    param_1[0x98] = 0x106;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;\n  }" switch (parenthesized_expression "(uVar5)" ( identifier )) (compound_statement "{\n  case 0:\n    if (((*param_1 & 0x400) != 0) || ((*param_1 & 0x800) == 0)) {\ncode_r0x0002359b:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 10;\n      puVar13 = auStack_6c;\n      break;\n    }\n    goto code_r0x000238f1;\n  default:\n    goto LAB_00023150;\n  case 0x1a:\n    uVar19 = *param_1;\n    if ((((((uVar19 & 8) != 0) || (local_60 == (byte *)0x0)) ||\n         ((pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)))) ||\n        ((pbVar12 = (byte *)((uVar19 >> 0xf ^ 1) & 1), pbVar12 < local_60 &&\n         (local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c)))) ||\n       (((uVar19 & 0x800) != 0 && (pbVar7[1] == 10)))) {\ncode_r0x00023868:\n      param_1[0x98] = 0x10d;\n      uVar19 = 0x10d;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x00023673:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x24;\n    puVar13 = auStack_6c;\n    break;\n  case 0x1d:\ncode_r0x00023690:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x27;\n    puVar13 = auStack_6c;\n    break;\n  case 0x1e:\n    bVar21 = 0;\ncode_r0x00023262:\n    if ((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) {\n      param_1[0x99] = param_1[0x99] + 1;\n      uVar19 = 0x107;\n      *(byte *)(param_1 + 0xa3) = 1;\n      param_1[0x98] = 0x107;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x28;\n    puVar13 = auStack_6c;\n    break;\n  case 0x1f:\n    bVar21 = 0;\ncode_r0x0002351a:\n    if (((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) &&\n       ((param_1[0x99] != 0 || ((*param_1 & 0x20000) == 0)))) {\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x108;\n      param_1[0x99] = param_1[0x99] - 1;\n      param_1[0x98] = 0x108;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x29;\n    puVar13 = auStack_6c;\n    break;\n  case 0x20:\n    if (((*param_1 & 0x10) != 0) || ((byte)param_1[0xa3] == 0)) {\n      param_1[0x98] = 0x102;\n      uVar19 = 0x102;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x00023894:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x2a;\n    puVar13 = auStack_6c;\n    break;\n  case 0x21:\n    bVar21 = 0;\ncode_r0x000234d2:\n    uVar19 = *param_1;\n    if ((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))) {\n      param_1[0x98] = 0x103;\n      uVar19 = 0x103;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x2b;\n    puVar13 = auStack_6c;\n    break;\n  case 0x24:\n    bVar4 = false;\ncode_r0x0002336a:\n    bVar21 = (byte)param_1[0xcc];\n    if (!bVar4) {\n      uVar5 = param_1[0x95];\n      if (uVar5 == 0xffffffff) {\n        local_40[0] = 0xffffffff;\n        local_40[1] = 0xffffffff;\n        local_40[2] = 0xffffffff;\n        local_40[3] = 0xffffffff;\n        local_40[4] = 0xffffffff;\n        local_40[5] = 0xffffffff;\n        local_40[6] = 0xffffffff;\n        local_40[7] = 0xffffffff;\n        if ((*param_1 & 0x40) == 0) {\n          local_40[0] = 0xfffffbff;\n        }\n        if ((*param_1 & 0x80) != 0) {\n          local_40[0] = local_40[0] & 0xfffffffe;\n        }\n        if (bVar21 != 0) {\n          uVar19 = 0;\n          do {\n            if (param_1[uVar19 + 0x10d] == 0xffffffff) {\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }\n            uVar19 = uVar19 + 1;\n          } while (uVar19 != 0x100);\n        }\n        puStack_70 = (uint *)&UNK_000239cf;\n        uVar5 = FUN_0001e6a0();\n        bVar21 = (byte)param_1[0xcc];\n        param_1[0x95] = uVar5;\n      }\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x10a;\n      if (bVar21 == 0) {\n        uVar19 = uVar5 + 0x114;\n      }\n      param_1[0x98] = uVar19;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    uVar19 = 0x2e;\n    puVar13 = auStack_6c;\n    break;\n  case 0x32:\ncode_r0x000236f8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3c;\n    puVar13 = auStack_6c;\n    break;\n  case 0x34:\ncode_r0x000236e0:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3e;\n    puVar13 = auStack_6c;\n    break;\n  case 0x35:\n    bVar21 = 0;\ncode_r0x000233b2:\n    uVar19 = *param_1;\n    if ((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))) {\n      param_1[0x98] = 0x101;\n      uVar19 = 0x101;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3f;\n    puVar13 = auStack_6c;\n    break;\n  case 0x38:\ncode_r0x00023710:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x42;\n    puVar13 = auStack_6c;\n    break;\n  case 0x49:\n  case 0x69:\n    bVar4 = false;\ncode_r0x0002342a:\n    bVar21 = (byte)param_1[0xcc];\n    puVar13 = auStack_6c;\n    if ((!bVar4) || (puVar13 = auStack_6c, (*param_1 & 0x80000) != 0)) break;\n    if (bVar21 != 0) {\n      pcVar8 = &UNK_0002f468 + (uVar19 == 0x73);\ncode_r0x0002345c:\n      param_1[0x96] = (uint)pcVar8;\n      sVar9 = strlen(pcVar8);\n      param_1[0x97] = sVar9;\n      puStack_70 = (uint *)&UNK_0002347b;\n      uVar19 = FUN_00021f80();\n      *(byte *)(param_1 + 0xa3) = 0;\n      param_1[0x98] = uVar19;\n      param_1[0x96] = (uint)local_5c[0];\n      param_1[0x97] = (uint)local_60;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    uVar5 = 0;\n    do {\n      *(undefined4 *)((int)local_40 + uVar5) = 0;\n      uVar5 = uVar5 + 4;\n    } while (uVar5 < 0x20);\n    puStack_70 = (uint *)&UNK_00023ab3;\n    ppuVar6 = __ctype_b_loc();\n    uVar5 = 0;\n    puVar2 = *ppuVar6;\n    do {\n      if ((*(byte *)((int)puVar2 + uVar5 * 2 + 1) & 0x20) != 0) {\n        local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n      }\n      uVar5 = uVar5 + 1;\n    } while (uVar5 != 0x100);\n    if (uVar19 == 0x53) {\ncode_r0x00023b34:\n      local_40[0] = ~local_40[0];\n      local_40[1] = ~local_40[1];\n      local_40[2] = ~local_40[2];\n      local_40[3] = ~local_40[3];\n      local_40[4] = ~local_40[4];\n      local_40[5] = ~local_40[5];\n      local_40[6] = ~local_40[6];\n      local_40[7] = ~local_40[7];\n    }\ncode_r0x00023ae7:\n    *(byte *)(param_1 + 0xa3) = 0;\n    goto code_r0x000237bd;\n  case 0x51:\n    *(byte *)(param_1 + 0xa3) = 0;\n    puStack_70 = (uint *)&UNK_0002357e;\n    uVar19 = FUN_00021f80();\n    param_1[0x98] = uVar19;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;\n  case 0x52:\n    if (local_60 == (byte *)0x0) {\n      pcVar8 = "unfinished \\ escape";\n      ppbVar15 = &pbStack_74;\n      pbStack_74 = (byte *)0x5;\n      puStack_70 = (uint *)((int)&__DT_PLTGOT + *(int *)(&DAT_0002ef08 + uVar5 * 4));\n      goto code_r0x00023a1b;\n    }\n    pbVar12 = (byte *)param_1[pbVar7[1] + 0x10d];\n    if (pbVar12 == (byte *)0xffffffff) {\n      pbStack_74 = local_60;\n      puStack_70 = param_1 + 0xb2;\n      local_5c[1] = pbVar12;\n      uVar5 = FUN_0002b6f0(auStack_50 + 3,local_5c[0]);\n      if (0xfffffffc < uVar5 - 1) {\n        puVar20 = param_1 + 0xb2;\n        for (iVar10 = 2; iVar10 != 0; iVar10 = iVar10 + -1) {\n          *puVar20 = 0;\n          puVar20 = puVar20 + (uint)bVar21 * -2 + 1;\n        }\n        local_5c[0] = (byte *)param_1[0x96];\n        local_60 = (byte *)param_1[0x97];\n        pbVar12 = local_5c[1];\n        goto code_r0x00023748;\n      }\n      pbVar12 = (byte *)param_1[0x97];\n      param_1[0x9d] = uVar5;\n      param_1[0x9c] = auStack_50[3];\n      pbVar7 = (byte *)param_1[0x96];\n      if (uVar5 != 1) goto code_r0x00023235;\n    }\n    else {\ncode_r0x00023748:\n      param_1[0x9d] = 1;\n      param_1[0x9c] = (uint)pbVar12;\n      pbVar12 = local_60;\n      pbVar7 = local_5c[0];\n    }\n    uVar19 = (uint)*pbVar7;\n    local_5c[0] = pbVar7 + 1;\n    param_1[0x96] = (uint)(pbVar7 + 1);\n    local_60 = pbVar12 + -1;\n    param_1[0x97] = (uint)(pbVar12 + -1);\n    switch(uVar19 - 10 & 0xff) {\n    case 0:\n      goto code_r0x0002359b;\n    case 0x1a:\n      goto code_r0x00023673;\n    case 0x1d:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023868;\n      goto code_r0x00023690;\n    case 0x1e:\n      bVar21 = 1;\n      goto code_r0x00023262;\n    case 0x1f:\n      bVar21 = 1;\n      goto code_r0x0002351a;\n    case 0x20:\n      goto code_r0x00023894;\n    case 0x21:\n      bVar21 = 1;\n      goto code_r0x000234d2;\n    case 0x24:\n      bVar4 = true;\n      goto code_r0x0002336a;\n    case 0x27:\n    case 0x28:\n    case 0x29:\n    case 0x2a:\n    case 0x2b:\n    case 0x2c:\n    case 0x2d:\n    case 0x2e:\n    case 0x2f:\n      if ((*param_1 & 0x4000) == 0) {\n        *(byte *)(param_1 + 0xa3) = 0;\n        uVar19 = 0x112;\n        param_1[0x98] = 0x112;\n        goto LAB_0002318d;\n      }\n    default:\nLAB_00023150:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      break;\n    case 0x32:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10e;\n        uVar19 = 0x10e;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236f8;\n    case 0x34:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10f;\n        uVar19 = 0x10f;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236e0;\n    case 0x35:\n      bVar21 = 1;\n      goto code_r0x000233b2;\n    case 0x38:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x111;\n        uVar19 = 0x111;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x00023710;\n    case 0x49:\n    case 0x69:\n      bVar4 = true;\n      goto code_r0x0002342a;\n    case 0x4d:\n    case 0x6d:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      if ((*param_1 & 0x80000) != 0) break;\n      if (bVar21 != 0) {\n        pcVar8 = &UNK_0002f474 + (uVar19 == 0x77);\n        goto code_r0x0002345c;\n      }\n      uVar5 = 0;\n      do {\n        *(undefined4 *)((int)local_40 + uVar5) = 0;\n        uVar5 = uVar5 + 4;\n      } while (uVar5 < 0x20);\n      uVar5 = 0;\n      do {\n        if (*(byte *)((int)param_1 + uVar5 + 8) == 2) {\n          local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 != 0x100);\n      if (uVar19 == 0x57) goto code_r0x00023b34;\n      goto code_r0x00023ae7;\n    case 0x51:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5b;\n      puVar13 = auStack_6c;\n      break;\n    case 0x52:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5c;\n      puVar13 = auStack_6c;\n      break;\n    case 0x54:\n      goto code_r0x000235d7;\n    case 0x56:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023880;\n      goto code_r0x000236c8;\n    case 0x58:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x110;\n        uVar19 = 0x110;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236a8;\n    case 0x71:\n      bStack_51 = 1;\n      goto code_r0x00023295;\n    case 0x72:\n      bVar21 = 1;\n      goto code_r0x000233fa;\n    }\n    break;\n  case 0x54:\n    if ((((*param_1 & 8) != 0) || (param_1[0x98] - 0x106 < 2)) || (param_1[0x98] == 0xffffffff)) {\ncode_r0x00023880:\n      param_1[0x98] = 0x10c;\n      uVar19 = 0x10c;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x000235d7:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x5e;\n    puVar13 = auStack_6c;\n    break;\n  case 0x56:\ncode_r0x000236c8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x60;\n    puVar13 = auStack_6c;\n    break;\n  case 0x58:\ncode_r0x000236a8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x62;\n    puVar13 = auStack_6c;\n    break;\n  case 0x71:\n    bStack_51 = 0;\ncode_r0x00023295:\n    auStack_50[0] = *param_1;\n    puVar13 = auStack_6c;\n    if ((((auStack_50[0] & 0x200) != 0) &&\n        (puVar13 = auStack_6c, (((byte)(auStack_50[0] >> 0xc) ^ 1) & 1) == bStack_51)) &&\n       (((auStack_50[0] & 0x10) != 0 || (puVar13 = auStack_6c, (byte)param_1[0xa3] == 0)))) {\n      local_5c[1] = pbVar7 + (int)pbVar12;\n      param_1[0x9b] = 0xffffffff;\n      param_1[0x9a] = 0xffffffff;\n      if (local_5c[1] == local_5c[0]) {\ncode_r0x00023b5a:\n        puVar13 = auStack_6c;\n        if (bStack_51 == 0) goto code_r0x00023a30;\n      }\n      else {\n        bVar21 = pbVar7[1];\n        pbVar12 = (byte *)(int)(char)bVar21;\n        if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar7 = (byte *)0xffffffff;\n          local_60 = pbVar12;\n          do {\n            pbVar3 = local_60;\n            if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }\n            pbVar7 = pbVar3 + -0x30;\n            param_1[0x9a] = (uint)pbVar7;\n            local_5c[0] = local_5c[0] + 1;\n            if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }\n            bVar21 = *local_5c[0];\n            local_60 = (byte *)(int)(char)bVar21;\n            pbVar12 = (byte *)(int)(char)bVar21 + -0x30;\n          } while ((byte)pbVar12 < 10);\n          if (bVar21 == 0x2c) {\n            if ((int)pbVar7 < 0) goto code_r0x00023bed;\ncode_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;\n            if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }\n            bVar21 = local_5c[0][1];\n            if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            local_5c[0] = pbVar12;\n            goto code_r0x00023bd8;\n          }\n          param_1[0x9b] = (uint)pbVar7;\n          puVar17 = auStack_6c;\n          if (bStack_51 == 0) goto code_r0x00023a30;\n        }\n        else {\n          if (bVar21 == 0x2c) {\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }\ncode_r0x00023bd8:\n          if (bStack_51 == 0) goto code_r0x00023a3a;\n        }\n        puVar13 = auStack_6c;\n        if (*local_5c[0] == 0x5c) goto code_r0x00023a2b;\n      }\ncode_r0x00023a04:\n      if ((*(uint *)(puVar13 + 0x1c) & 0x200000) == 0) {\n        *(byte **)(puVar13 + -4) = pbVar12;\n        pcVar8 = "invalid content of \\{\\}";\n        ppbVar15 = (byte **)(puVar13 + -8);\n        *(undefined4 *)(puVar13 + -8) = 5;\ncode_r0x00023a1b:\n        while( true ) {\n          *(char **)((int)ppbVar15 + -4) = pcVar8;\n          puVar16 = (undefined1 *)((int)ppbVar15 + -8);\n          *(undefined4 *)((int)ppbVar15 + -8) = 0;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23;\n          uVar11 = dcgettext();\n          *(undefined4 *)((int)ppbVar15 + -8) = uVar11;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b;\n          FUN_0001be40();\n          pbVar12 = extraout_ECX;\ncode_r0x00023a2b:\n          *(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;\n          puVar17 = puVar16;\ncode_r0x00023a30:\n          puVar13 = puVar17;\n          puVar18 = puVar17;\n          if (*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)) break;\ncode_r0x00023a3a:\n          puVar13 = puVar18;\n          if ((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))\n          break;\n          uVar5 = param_1[0x9b];\n          if ((int)uVar5 < 0) {\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }\n          if ((int)uVar5 < (int)uVar19) break;\n          if ((int)uVar5 < 0x8000) goto code_r0x00023a66;\n          pcVar8 = "regular expression too big";\n          *(uint *)(puVar18 + -4) = uVar19;\n          ppbVar15 = (byte **)(puVar18 + -8);\n          *(undefined4 *)(puVar18 + -8) = 5;\n        }\n        goto code_r0x00023a04;\n      }\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x7b;\n    break;\n  case 0x72:\n    bVar21 = 0;\ncode_r0x000233fa:\n    if (((*param_1 & 0x400) != 0) || ((((byte)(*param_1 >> 0xf) ^ 1) & 1) != bVar21)) {\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x7c;\n      puVar13 = auStack_6c;\n      break;\n    }\ncode_r0x000238f1:\n    *(byte *)(param_1 + 0xa3) = 1;\n    uVar19 = 0x106;\n    param_1[0x98] = 0x106;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;\n  }" { (case_statement "case 0:\n    if (((*param_1 & 0x400) != 0) || ((*param_1 & 0x800) == 0)) {\ncode_r0x0002359b:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 10;\n      puVar13 = auStack_6c;\n      break;\n    }\n    goto code_r0x000238f1;" case number_literal : (if_statement "if (((*param_1 & 0x400) != 0) || ((*param_1 & 0x800) == 0)) {\ncode_r0x0002359b:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 10;\n      puVar13 = auStack_6c;\n      break;\n    }" if (parenthesized_expression "(((*param_1 & 0x400) != 0) || ((*param_1 & 0x800) == 0))" ( (binary_expression "((*param_1 & 0x400) != 0) || ((*param_1 & 0x800) == 0)" (parenthesized_expression "((*param_1 & 0x400) != 0)" ( (binary_expression "(*param_1 & 0x400) != 0" (parenthesized_expression "(*param_1 & 0x400)" ( (binary_expression "*param_1 & 0x400" (pointer_expression "*param_1" * identifier) & number_literal) )) != number_literal) )) || (parenthesized_expression "((*param_1 & 0x800) == 0)" ( (binary_expression "(*param_1 & 0x800) == 0" (parenthesized_expression "(*param_1 & 0x800)" ( (binary_expression "*param_1 & 0x800" (pointer_expression "*param_1" * identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\ncode_r0x0002359b:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 10;\n      puVar13 = auStack_6c;\n      break;\n    }" { (labeled_statement "code_r0x0002359b:\n      bVar21 = (byte)param_1[0xcc];" statement_identifier : (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;)) (expression_statement "uVar19 = 10;" (assignment_expression "uVar19 = 10" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (break_statement "break;" break ;) })) (goto_statement "goto code_r0x000238f1;" goto statement_identifier ;)) (case_statement "default:\n    goto LAB_00023150;" default : (goto_statement "goto LAB_00023150;" goto statement_identifier ;)) (case_statement "case 0x1a:\n    uVar19 = *param_1;\n    if ((((((uVar19 & 8) != 0) || (local_60 == (byte *)0x0)) ||\n         ((pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)))) ||\n        ((pbVar12 = (byte *)((uVar19 >> 0xf ^ 1) & 1), pbVar12 < local_60 &&\n         (local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c)))) ||\n       (((uVar19 & 0x800) != 0 && (pbVar7[1] == 10)))) {\ncode_r0x00023868:\n      param_1[0x98] = 0x10d;\n      uVar19 = 0x10d;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x00023673:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x24;\n    puVar13 = auStack_6c;\n    break;" case number_literal : (expression_statement "uVar19 = *param_1;" (assignment_expression "uVar19 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if ((((((uVar19 & 8) != 0) || (local_60 == (byte *)0x0)) ||\n         ((pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)))) ||\n        ((pbVar12 = (byte *)((uVar19 >> 0xf ^ 1) & 1), pbVar12 < local_60 &&\n         (local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c)))) ||\n       (((uVar19 & 0x800) != 0 && (pbVar7[1] == 10)))) {\ncode_r0x00023868:\n      param_1[0x98] = 0x10d;\n      uVar19 = 0x10d;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" if (parenthesized_expression "((((((uVar19 & 8) != 0) || (local_60 == (byte *)0x0)) ||\n         ((pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)))) ||\n        ((pbVar12 = (byte *)((uVar19 >> 0xf ^ 1) & 1), pbVar12 < local_60 &&\n         (local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c)))) ||\n       (((uVar19 & 0x800) != 0 && (pbVar7[1] == 10))))" ( (binary_expression "(((((uVar19 & 8) != 0) || (local_60 == (byte *)0x0)) ||\n         ((pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)))) ||\n        ((pbVar12 = (byte *)((uVar19 >> 0xf ^ 1) & 1), pbVar12 < local_60 &&\n         (local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c)))) ||\n       (((uVar19 & 0x800) != 0 && (pbVar7[1] == 10)))" (parenthesized_expression "(((((uVar19 & 8) != 0) || (local_60 == (byte *)0x0)) ||\n         ((pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)))) ||\n        ((pbVar12 = (byte *)((uVar19 >> 0xf ^ 1) & 1), pbVar12 < local_60 &&\n         (local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c))))" ( (binary_expression "((((uVar19 & 8) != 0) || (local_60 == (byte *)0x0)) ||\n         ((pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)))) ||\n        ((pbVar12 = (byte *)((uVar19 >> 0xf ^ 1) & 1), pbVar12 < local_60 &&\n         (local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c)))" (parenthesized_expression "((((uVar19 & 8) != 0) || (local_60 == (byte *)0x0)) ||\n         ((pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29))))" ( (binary_expression "(((uVar19 & 8) != 0) || (local_60 == (byte *)0x0)) ||\n         ((pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)))" (parenthesized_expression "(((uVar19 & 8) != 0) || (local_60 == (byte *)0x0))" ( (binary_expression "((uVar19 & 8) != 0) || (local_60 == (byte *)0x0)" (parenthesized_expression "((uVar19 & 8) != 0)" ( (binary_expression "(uVar19 & 8) != 0" (parenthesized_expression "(uVar19 & 8)" ( (binary_expression "uVar19 & 8" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "(local_60 == (byte *)0x0)" ( (binary_expression "local_60 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) || (parenthesized_expression "((pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)))" ( (parenthesized_expression "(pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29))" ( (comma_expression "pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)" (assignment_expression "pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1)" identifier = (cast_expression "(byte *)((uVar19 >> 0xd ^ 1) & 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uVar19 >> 0xd ^ 1) & 1)" ( (binary_expression "(uVar19 >> 0xd ^ 1) & 1" (parenthesized_expression "(uVar19 >> 0xd ^ 1)" ( (binary_expression "uVar19 >> 0xd ^ 1" (binary_expression "uVar19 >> 0xd" identifier >> number_literal) ^ number_literal) )) & number_literal) )))) , (binary_expression "pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)" (binary_expression "pbVar12 < local_60" identifier < identifier) && (parenthesized_expression "(local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)" ( (binary_expression "local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29" (subscript_expression "local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12]" (subscript_expression "local_5c[0]" identifier [ number_literal ]) [ (binary_expression "(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12" (call_expression "(uint)(pbVar7[1] == 0x5c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar7[1] == 0x5c)" ( (binary_expression "pbVar7[1] == 0x5c" (subscript_expression "pbVar7[1]" identifier [ number_literal ]) == number_literal) ))) & (cast_expression "(uint)pbVar12" ( (type_descriptor "uint" type_identifier) ) identifier)) ]) == number_literal) )))) )) ))) )) || (parenthesized_expression "((pbVar12 = (byte *)((uVar19 >> 0xf ^ 1) & 1), pbVar12 < local_60 &&\n         (local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c)))" ( (parenthesized_expression "(pbVar12 = (byte *)((uVar19 >> 0xf ^ 1) & 1), pbVar12 < local_60 &&\n         (local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c))" ( (comma_expression "pbVar12 = (byte *)((uVar19 >> 0xf ^ 1) & 1), pbVar12 < local_60 &&\n         (local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c)" (assignment_expression "pbVar12 = (byte *)((uVar19 >> 0xf ^ 1) & 1)" identifier = (cast_expression "(byte *)((uVar19 >> 0xf ^ 1) & 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uVar19 >> 0xf ^ 1) & 1)" ( (binary_expression "(uVar19 >> 0xf ^ 1) & 1" (parenthesized_expression "(uVar19 >> 0xf ^ 1)" ( (binary_expression "uVar19 >> 0xf ^ 1" (binary_expression "uVar19 >> 0xf" identifier >> number_literal) ^ number_literal) )) & number_literal) )))) , (binary_expression "pbVar12 < local_60 &&\n         (local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c)" (binary_expression "pbVar12 < local_60" identifier < identifier) && (parenthesized_expression "(local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c)" ( (binary_expression "local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c" (subscript_expression "local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)]" (subscript_expression "local_5c[0]" identifier [ number_literal ]) [ (binary_expression "(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)" (cast_expression "(uint)pbVar12" ( (type_descriptor "uint" type_identifier) ) identifier) & (call_expression "(uint)(pbVar7[1] == 0x5c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar7[1] == 0x5c)" ( (binary_expression "pbVar7[1] == 0x5c" (subscript_expression "pbVar7[1]" identifier [ number_literal ]) == number_literal) )))) ]) == number_literal) )))) )) ))) )) || (parenthesized_expression "(((uVar19 & 0x800) != 0 && (pbVar7[1] == 10)))" ( (parenthesized_expression "((uVar19 & 0x800) != 0 && (pbVar7[1] == 10))" ( (binary_expression "(uVar19 & 0x800) != 0 && (pbVar7[1] == 10)" (binary_expression "(uVar19 & 0x800) != 0" (parenthesized_expression "(uVar19 & 0x800)" ( (binary_expression "uVar19 & 0x800" identifier & number_literal) )) != number_literal) && (parenthesized_expression "(pbVar7[1] == 10)" ( (binary_expression "pbVar7[1] == 10" (subscript_expression "pbVar7[1]" identifier [ number_literal ]) == number_literal) ))) )) ))) )) (compound_statement "{\ncode_r0x00023868:\n      param_1[0x98] = 0x10d;\n      uVar19 = 0x10d;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" { (labeled_statement "code_r0x00023868:\n      param_1[0x98] = 0x10d;" statement_identifier : (expression_statement "param_1[0x98] = 0x10d;" (assignment_expression "param_1[0x98] = 0x10d" (subscript_expression "param_1[0x98]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "uVar19 = 0x10d;" (assignment_expression "uVar19 = 0x10d" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) })) (labeled_statement "code_r0x00023673:\n    bVar21 = (byte)param_1[0xcc];" statement_identifier : (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;)) (expression_statement "uVar19 = 0x24;" (assignment_expression "uVar19 = 0x24" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x1d:\ncode_r0x00023690:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x27;\n    puVar13 = auStack_6c;\n    break;" case number_literal : (labeled_statement "code_r0x00023690:\n    bVar21 = (byte)param_1[0xcc];" statement_identifier : (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;)) (expression_statement "uVar19 = 0x27;" (assignment_expression "uVar19 = 0x27" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x1e:\n    bVar21 = 0;\ncode_r0x00023262:\n    if ((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) {\n      param_1[0x99] = param_1[0x99] + 1;\n      uVar19 = 0x107;\n      *(byte *)(param_1 + 0xa3) = 1;\n      param_1[0x98] = 0x107;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x28;\n    puVar13 = auStack_6c;\n    break;" case number_literal : (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" identifier = number_literal) ;) (labeled_statement "code_r0x00023262:\n    if ((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) {\n      param_1[0x99] = param_1[0x99] + 1;\n      uVar19 = 0x107;\n      *(byte *)(param_1 + 0xa3) = 1;\n      param_1[0x98] = 0x107;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" statement_identifier : (if_statement "if ((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) {\n      param_1[0x99] = param_1[0x99] + 1;\n      uVar19 = 0x107;\n      *(byte *)(param_1 + 0xa3) = 1;\n      param_1[0x98] = 0x107;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" if (parenthesized_expression "((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21)" ( (binary_expression "(((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21" (parenthesized_expression "(((byte)(*param_1 >> 0xd) ^ 1) & 1)" ( (binary_expression "((byte)(*param_1 >> 0xd) ^ 1) & 1" (parenthesized_expression "((byte)(*param_1 >> 0xd) ^ 1)" ( (binary_expression "(byte)(*param_1 >> 0xd) ^ 1" (call_expression "(byte)(*param_1 >> 0xd)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*param_1 >> 0xd)" ( (binary_expression "*param_1 >> 0xd" (pointer_expression "*param_1" * identifier) >> number_literal) ))) ^ number_literal) )) & number_literal) )) == identifier) )) (compound_statement "{\n      param_1[0x99] = param_1[0x99] + 1;\n      uVar19 = 0x107;\n      *(byte *)(param_1 + 0xa3) = 1;\n      param_1[0x98] = 0x107;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" { (expression_statement "param_1[0x99] = param_1[0x99] + 1;" (assignment_expression "param_1[0x99] = param_1[0x99] + 1" (subscript_expression "param_1[0x99]" identifier [ number_literal ]) = (binary_expression "param_1[0x99] + 1" (subscript_expression "param_1[0x99]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "uVar19 = 0x107;" (assignment_expression "uVar19 = 0x107" identifier = number_literal) ;) (expression_statement "*(byte *)(param_1 + 0xa3) = 1;" (assignment_expression "*(byte *)(param_1 + 0xa3) = 1" (pointer_expression "*(byte *)(param_1 + 0xa3)" * (cast_expression "(byte *)(param_1 + 0xa3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa3)" ( (binary_expression "param_1 + 0xa3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_1[0x98] = 0x107;" (assignment_expression "param_1[0x98] = 0x107" (subscript_expression "param_1[0x98]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) }))) (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;) (expression_statement "uVar19 = 0x28;" (assignment_expression "uVar19 = 0x28" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x1f:\n    bVar21 = 0;\ncode_r0x0002351a:\n    if (((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) &&\n       ((param_1[0x99] != 0 || ((*param_1 & 0x20000) == 0)))) {\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x108;\n      param_1[0x99] = param_1[0x99] - 1;\n      param_1[0x98] = 0x108;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x29;\n    puVar13 = auStack_6c;\n    break;" case number_literal : (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" identifier = number_literal) ;) (labeled_statement "code_r0x0002351a:\n    if (((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) &&\n       ((param_1[0x99] != 0 || ((*param_1 & 0x20000) == 0)))) {\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x108;\n      param_1[0x99] = param_1[0x99] - 1;\n      param_1[0x98] = 0x108;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" statement_identifier : (if_statement "if (((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) &&\n       ((param_1[0x99] != 0 || ((*param_1 & 0x20000) == 0)))) {\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x108;\n      param_1[0x99] = param_1[0x99] - 1;\n      param_1[0x98] = 0x108;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" if (parenthesized_expression "(((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) &&\n       ((param_1[0x99] != 0 || ((*param_1 & 0x20000) == 0))))" ( (binary_expression "((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) &&\n       ((param_1[0x99] != 0 || ((*param_1 & 0x20000) == 0)))" (parenthesized_expression "((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21)" ( (binary_expression "(((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21" (parenthesized_expression "(((byte)(*param_1 >> 0xd) ^ 1) & 1)" ( (binary_expression "((byte)(*param_1 >> 0xd) ^ 1) & 1" (parenthesized_expression "((byte)(*param_1 >> 0xd) ^ 1)" ( (binary_expression "(byte)(*param_1 >> 0xd) ^ 1" (call_expression "(byte)(*param_1 >> 0xd)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*param_1 >> 0xd)" ( (binary_expression "*param_1 >> 0xd" (pointer_expression "*param_1" * identifier) >> number_literal) ))) ^ number_literal) )) & number_literal) )) == identifier) )) && (parenthesized_expression "((param_1[0x99] != 0 || ((*param_1 & 0x20000) == 0)))" ( (parenthesized_expression "(param_1[0x99] != 0 || ((*param_1 & 0x20000) == 0))" ( (binary_expression "param_1[0x99] != 0 || ((*param_1 & 0x20000) == 0)" (binary_expression "param_1[0x99] != 0" (subscript_expression "param_1[0x99]" identifier [ number_literal ]) != number_literal) || (parenthesized_expression "((*param_1 & 0x20000) == 0)" ( (binary_expression "(*param_1 & 0x20000) == 0" (parenthesized_expression "(*param_1 & 0x20000)" ( (binary_expression "*param_1 & 0x20000" (pointer_expression "*param_1" * identifier) & number_literal) )) == number_literal) ))) )) ))) )) (compound_statement "{\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x108;\n      param_1[0x99] = param_1[0x99] - 1;\n      param_1[0x98] = 0x108;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" { (expression_statement "*(byte *)(param_1 + 0xa3) = 0;" (assignment_expression "*(byte *)(param_1 + 0xa3) = 0" (pointer_expression "*(byte *)(param_1 + 0xa3)" * (cast_expression "(byte *)(param_1 + 0xa3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa3)" ( (binary_expression "param_1 + 0xa3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar19 = 0x108;" (assignment_expression "uVar19 = 0x108" identifier = number_literal) ;) (expression_statement "param_1[0x99] = param_1[0x99] - 1;" (assignment_expression "param_1[0x99] = param_1[0x99] - 1" (subscript_expression "param_1[0x99]" identifier [ number_literal ]) = (binary_expression "param_1[0x99] - 1" (subscript_expression "param_1[0x99]" identifier [ number_literal ]) - number_literal)) ;) (expression_statement "param_1[0x98] = 0x108;" (assignment_expression "param_1[0x98] = 0x108" (subscript_expression "param_1[0x98]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) }))) (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;) (expression_statement "uVar19 = 0x29;" (assignment_expression "uVar19 = 0x29" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x20:\n    if (((*param_1 & 0x10) != 0) || ((byte)param_1[0xa3] == 0)) {\n      param_1[0x98] = 0x102;\n      uVar19 = 0x102;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x00023894:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x2a;\n    puVar13 = auStack_6c;\n    break;" case number_literal : (if_statement "if (((*param_1 & 0x10) != 0) || ((byte)param_1[0xa3] == 0)) {\n      param_1[0x98] = 0x102;\n      uVar19 = 0x102;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" if (parenthesized_expression "(((*param_1 & 0x10) != 0) || ((byte)param_1[0xa3] == 0))" ( (binary_expression "((*param_1 & 0x10) != 0) || ((byte)param_1[0xa3] == 0)" (parenthesized_expression "((*param_1 & 0x10) != 0)" ( (binary_expression "(*param_1 & 0x10) != 0" (parenthesized_expression "(*param_1 & 0x10)" ( (binary_expression "*param_1 & 0x10" (pointer_expression "*param_1" * identifier) & number_literal) )) != number_literal) )) || (parenthesized_expression "((byte)param_1[0xa3] == 0)" ( (binary_expression "(byte)param_1[0xa3] == 0" (cast_expression "(byte)param_1[0xa3]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xa3]" identifier [ number_literal ])) == number_literal) ))) )) (compound_statement "{\n      param_1[0x98] = 0x102;\n      uVar19 = 0x102;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" { (expression_statement "param_1[0x98] = 0x102;" (assignment_expression "param_1[0x98] = 0x102" (subscript_expression "param_1[0x98]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar19 = 0x102;" (assignment_expression "uVar19 = 0x102" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) })) (labeled_statement "code_r0x00023894:\n    bVar21 = (byte)param_1[0xcc];" statement_identifier : (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;)) (expression_statement "uVar19 = 0x2a;" (assignment_expression "uVar19 = 0x2a" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x21:\n    bVar21 = 0;\ncode_r0x000234d2:\n    uVar19 = *param_1;\n    if ((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))) {\n      param_1[0x98] = 0x103;\n      uVar19 = 0x103;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x2b;\n    puVar13 = auStack_6c;\n    break;" case number_literal : (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" identifier = number_literal) ;) (labeled_statement "code_r0x000234d2:\n    uVar19 = *param_1;" statement_identifier : (expression_statement "uVar19 = *param_1;" (assignment_expression "uVar19 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;)) (if_statement "if ((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))) {\n      param_1[0x98] = 0x103;\n      uVar19 = 0x103;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" if (parenthesized_expression "((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0))))" ( (binary_expression "(((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))" (parenthesized_expression "(((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21))" ( (binary_expression "((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)" (parenthesized_expression "((uVar19 & 0x400) == 0)" ( (binary_expression "(uVar19 & 0x400) == 0" (parenthesized_expression "(uVar19 & 0x400)" ( (binary_expression "uVar19 & 0x400" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(((byte)(uVar19 >> 1) & 1) == bVar21)" ( (binary_expression "((byte)(uVar19 >> 1) & 1) == bVar21" (parenthesized_expression "((byte)(uVar19 >> 1) & 1)" ( (binary_expression "(byte)(uVar19 >> 1) & 1" (call_expression "(byte)(uVar19 >> 1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar19 >> 1)" ( (binary_expression "uVar19 >> 1" identifier >> number_literal) ))) & number_literal) )) == identifier) ))) )) && (parenthesized_expression "(((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))" ( (parenthesized_expression "((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0))" ( (binary_expression "(uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)" (binary_expression "(uVar19 & 0x10) != 0" (parenthesized_expression "(uVar19 & 0x10)" ( (binary_expression "uVar19 & 0x10" identifier & number_literal) )) != number_literal) || (parenthesized_expression "((byte)param_1[0xa3] == 0)" ( (binary_expression "(byte)param_1[0xa3] == 0" (cast_expression "(byte)param_1[0xa3]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xa3]" identifier [ number_literal ])) == number_literal) ))) )) ))) )) (compound_statement "{\n      param_1[0x98] = 0x103;\n      uVar19 = 0x103;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" { (expression_statement "param_1[0x98] = 0x103;" (assignment_expression "param_1[0x98] = 0x103" (subscript_expression "param_1[0x98]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar19 = 0x103;" (assignment_expression "uVar19 = 0x103" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) })) (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;) (expression_statement "uVar19 = 0x2b;" (assignment_expression "uVar19 = 0x2b" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x24:\n    bVar4 = false;\ncode_r0x0002336a:\n    bVar21 = (byte)param_1[0xcc];\n    if (!bVar4) {\n      uVar5 = param_1[0x95];\n      if (uVar5 == 0xffffffff) {\n        local_40[0] = 0xffffffff;\n        local_40[1] = 0xffffffff;\n        local_40[2] = 0xffffffff;\n        local_40[3] = 0xffffffff;\n        local_40[4] = 0xffffffff;\n        local_40[5] = 0xffffffff;\n        local_40[6] = 0xffffffff;\n        local_40[7] = 0xffffffff;\n        if ((*param_1 & 0x40) == 0) {\n          local_40[0] = 0xfffffbff;\n        }\n        if ((*param_1 & 0x80) != 0) {\n          local_40[0] = local_40[0] & 0xfffffffe;\n        }\n        if (bVar21 != 0) {\n          uVar19 = 0;\n          do {\n            if (param_1[uVar19 + 0x10d] == 0xffffffff) {\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }\n            uVar19 = uVar19 + 1;\n          } while (uVar19 != 0x100);\n        }\n        puStack_70 = (uint *)&UNK_000239cf;\n        uVar5 = FUN_0001e6a0();\n        bVar21 = (byte)param_1[0xcc];\n        param_1[0x95] = uVar5;\n      }\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x10a;\n      if (bVar21 == 0) {\n        uVar19 = uVar5 + 0x114;\n      }\n      param_1[0x98] = uVar19;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    uVar19 = 0x2e;\n    puVar13 = auStack_6c;\n    break;" case number_literal : (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) (labeled_statement "code_r0x0002336a:\n    bVar21 = (byte)param_1[0xcc];" statement_identifier : (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;)) (if_statement "if (!bVar4) {\n      uVar5 = param_1[0x95];\n      if (uVar5 == 0xffffffff) {\n        local_40[0] = 0xffffffff;\n        local_40[1] = 0xffffffff;\n        local_40[2] = 0xffffffff;\n        local_40[3] = 0xffffffff;\n        local_40[4] = 0xffffffff;\n        local_40[5] = 0xffffffff;\n        local_40[6] = 0xffffffff;\n        local_40[7] = 0xffffffff;\n        if ((*param_1 & 0x40) == 0) {\n          local_40[0] = 0xfffffbff;\n        }\n        if ((*param_1 & 0x80) != 0) {\n          local_40[0] = local_40[0] & 0xfffffffe;\n        }\n        if (bVar21 != 0) {\n          uVar19 = 0;\n          do {\n            if (param_1[uVar19 + 0x10d] == 0xffffffff) {\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }\n            uVar19 = uVar19 + 1;\n          } while (uVar19 != 0x100);\n        }\n        puStack_70 = (uint *)&UNK_000239cf;\n        uVar5 = FUN_0001e6a0();\n        bVar21 = (byte)param_1[0xcc];\n        param_1[0x95] = uVar5;\n      }\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x10a;\n      if (bVar21 == 0) {\n        uVar19 = uVar5 + 0x114;\n      }\n      param_1[0x98] = uVar19;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" if (parenthesized_expression "(!bVar4)" ( (unary_expression "!bVar4" ! identifier) )) (compound_statement "{\n      uVar5 = param_1[0x95];\n      if (uVar5 == 0xffffffff) {\n        local_40[0] = 0xffffffff;\n        local_40[1] = 0xffffffff;\n        local_40[2] = 0xffffffff;\n        local_40[3] = 0xffffffff;\n        local_40[4] = 0xffffffff;\n        local_40[5] = 0xffffffff;\n        local_40[6] = 0xffffffff;\n        local_40[7] = 0xffffffff;\n        if ((*param_1 & 0x40) == 0) {\n          local_40[0] = 0xfffffbff;\n        }\n        if ((*param_1 & 0x80) != 0) {\n          local_40[0] = local_40[0] & 0xfffffffe;\n        }\n        if (bVar21 != 0) {\n          uVar19 = 0;\n          do {\n            if (param_1[uVar19 + 0x10d] == 0xffffffff) {\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }\n            uVar19 = uVar19 + 1;\n          } while (uVar19 != 0x100);\n        }\n        puStack_70 = (uint *)&UNK_000239cf;\n        uVar5 = FUN_0001e6a0();\n        bVar21 = (byte)param_1[0xcc];\n        param_1[0x95] = uVar5;\n      }\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x10a;\n      if (bVar21 == 0) {\n        uVar19 = uVar5 + 0x114;\n      }\n      param_1[0x98] = uVar19;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" { (expression_statement "uVar5 = param_1[0x95];" (assignment_expression "uVar5 = param_1[0x95]" identifier = (subscript_expression "param_1[0x95]" identifier [ number_literal ])) ;) (if_statement "if (uVar5 == 0xffffffff) {\n        local_40[0] = 0xffffffff;\n        local_40[1] = 0xffffffff;\n        local_40[2] = 0xffffffff;\n        local_40[3] = 0xffffffff;\n        local_40[4] = 0xffffffff;\n        local_40[5] = 0xffffffff;\n        local_40[6] = 0xffffffff;\n        local_40[7] = 0xffffffff;\n        if ((*param_1 & 0x40) == 0) {\n          local_40[0] = 0xfffffbff;\n        }\n        if ((*param_1 & 0x80) != 0) {\n          local_40[0] = local_40[0] & 0xfffffffe;\n        }\n        if (bVar21 != 0) {\n          uVar19 = 0;\n          do {\n            if (param_1[uVar19 + 0x10d] == 0xffffffff) {\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }\n            uVar19 = uVar19 + 1;\n          } while (uVar19 != 0x100);\n        }\n        puStack_70 = (uint *)&UNK_000239cf;\n        uVar5 = FUN_0001e6a0();\n        bVar21 = (byte)param_1[0xcc];\n        param_1[0x95] = uVar5;\n      }" if (parenthesized_expression "(uVar5 == 0xffffffff)" ( (binary_expression "uVar5 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n        local_40[0] = 0xffffffff;\n        local_40[1] = 0xffffffff;\n        local_40[2] = 0xffffffff;\n        local_40[3] = 0xffffffff;\n        local_40[4] = 0xffffffff;\n        local_40[5] = 0xffffffff;\n        local_40[6] = 0xffffffff;\n        local_40[7] = 0xffffffff;\n        if ((*param_1 & 0x40) == 0) {\n          local_40[0] = 0xfffffbff;\n        }\n        if ((*param_1 & 0x80) != 0) {\n          local_40[0] = local_40[0] & 0xfffffffe;\n        }\n        if (bVar21 != 0) {\n          uVar19 = 0;\n          do {\n            if (param_1[uVar19 + 0x10d] == 0xffffffff) {\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }\n            uVar19 = uVar19 + 1;\n          } while (uVar19 != 0x100);\n        }\n        puStack_70 = (uint *)&UNK_000239cf;\n        uVar5 = FUN_0001e6a0();\n        bVar21 = (byte)param_1[0xcc];\n        param_1[0x95] = uVar5;\n      }" { (expression_statement "local_40[0] = 0xffffffff;" (assignment_expression "local_40[0] = 0xffffffff" (subscript_expression "local_40[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_40[1] = 0xffffffff;" (assignment_expression "local_40[1] = 0xffffffff" (subscript_expression "local_40[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_40[2] = 0xffffffff;" (assignment_expression "local_40[2] = 0xffffffff" (subscript_expression "local_40[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_40[3] = 0xffffffff;" (assignment_expression "local_40[3] = 0xffffffff" (subscript_expression "local_40[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_40[4] = 0xffffffff;" (assignment_expression "local_40[4] = 0xffffffff" (subscript_expression "local_40[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_40[5] = 0xffffffff;" (assignment_expression "local_40[5] = 0xffffffff" (subscript_expression "local_40[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_40[6] = 0xffffffff;" (assignment_expression "local_40[6] = 0xffffffff" (subscript_expression "local_40[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_40[7] = 0xffffffff;" (assignment_expression "local_40[7] = 0xffffffff" (subscript_expression "local_40[7]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if ((*param_1 & 0x40) == 0) {\n          local_40[0] = 0xfffffbff;\n        }" if (parenthesized_expression "((*param_1 & 0x40) == 0)" ( (binary_expression "(*param_1 & 0x40) == 0" (parenthesized_expression "(*param_1 & 0x40)" ( (binary_expression "*param_1 & 0x40" (pointer_expression "*param_1" * identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n          local_40[0] = 0xfffffbff;\n        }" { (expression_statement "local_40[0] = 0xfffffbff;" (assignment_expression "local_40[0] = 0xfffffbff" (subscript_expression "local_40[0]" identifier [ number_literal ]) = number_literal) ;) })) (if_statement "if ((*param_1 & 0x80) != 0) {\n          local_40[0] = local_40[0] & 0xfffffffe;\n        }" if (parenthesized_expression "((*param_1 & 0x80) != 0)" ( (binary_expression "(*param_1 & 0x80) != 0" (parenthesized_expression "(*param_1 & 0x80)" ( (binary_expression "*param_1 & 0x80" (pointer_expression "*param_1" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          local_40[0] = local_40[0] & 0xfffffffe;\n        }" { (expression_statement "local_40[0] = local_40[0] & 0xfffffffe;" (assignment_expression "local_40[0] = local_40[0] & 0xfffffffe" (subscript_expression "local_40[0]" identifier [ number_literal ]) = (binary_expression "local_40[0] & 0xfffffffe" (subscript_expression "local_40[0]" identifier [ number_literal ]) & number_literal)) ;) })) (if_statement "if (bVar21 != 0) {\n          uVar19 = 0;\n          do {\n            if (param_1[uVar19 + 0x10d] == 0xffffffff) {\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }\n            uVar19 = uVar19 + 1;\n          } while (uVar19 != 0x100);\n        }" if (parenthesized_expression "(bVar21 != 0)" ( (binary_expression "bVar21 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar19 = 0;\n          do {\n            if (param_1[uVar19 + 0x10d] == 0xffffffff) {\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }\n            uVar19 = uVar19 + 1;\n          } while (uVar19 != 0x100);\n        }" { (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (do_statement "do {\n            if (param_1[uVar19 + 0x10d] == 0xffffffff) {\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }\n            uVar19 = uVar19 + 1;\n          } while (uVar19 != 0x100);" do (compound_statement "{\n            if (param_1[uVar19 + 0x10d] == 0xffffffff) {\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }\n            uVar19 = uVar19 + 1;\n          }" { (if_statement "if (param_1[uVar19 + 0x10d] == 0xffffffff) {\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }" if (parenthesized_expression "(param_1[uVar19 + 0x10d] == 0xffffffff)" ( (binary_expression "param_1[uVar19 + 0x10d] == 0xffffffff" (subscript_expression "param_1[uVar19 + 0x10d]" identifier [ (binary_expression "uVar19 + 0x10d" identifier + number_literal) ]) == number_literal) )) (compound_statement "{\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }" { (expression_statement "local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));" (assignment_expression "local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f))" (subscript_expression "local_40[uVar19 >> 5]" identifier [ (binary_expression "uVar19 >> 5" identifier >> number_literal) ]) = (binary_expression "local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f))" (subscript_expression "local_40[uVar19 >> 5]" identifier [ (binary_expression "uVar19 >> 5" identifier >> number_literal) ]) & (unary_expression "~(1 << ((byte)uVar19 & 0x1f))" ~ (parenthesized_expression "(1 << ((byte)uVar19 & 0x1f))" ( (binary_expression "1 << ((byte)uVar19 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar19 & 0x1f)" ( (binary_expression "(byte)uVar19 & 0x1f" (cast_expression "(byte)uVar19" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))))) ;) })) (expression_statement "uVar19 = uVar19 + 1;" (assignment_expression "uVar19 = uVar19 + 1" identifier = (binary_expression "uVar19 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar19 != 0x100)" ( (binary_expression "uVar19 != 0x100" identifier != number_literal) )) ;) })) (expression_statement "puStack_70 = (uint *)&UNK_000239cf;" (assignment_expression "puStack_70 = (uint *)&UNK_000239cf" identifier = (cast_expression "(uint *)&UNK_000239cf" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&UNK_000239cf" & identifier))) ;) (expression_statement "uVar5 = FUN_0001e6a0();" (assignment_expression "uVar5 = FUN_0001e6a0()" identifier = (call_expression "FUN_0001e6a0()" identifier (argument_list "()" ( )))) ;) (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;) (expression_statement "param_1[0x95] = uVar5;" (assignment_expression "param_1[0x95] = uVar5" (subscript_expression "param_1[0x95]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "*(byte *)(param_1 + 0xa3) = 0;" (assignment_expression "*(byte *)(param_1 + 0xa3) = 0" (pointer_expression "*(byte *)(param_1 + 0xa3)" * (cast_expression "(byte *)(param_1 + 0xa3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa3)" ( (binary_expression "param_1 + 0xa3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar19 = 0x10a;" (assignment_expression "uVar19 = 0x10a" identifier = number_literal) ;) (if_statement "if (bVar21 == 0) {\n        uVar19 = uVar5 + 0x114;\n      }" if (parenthesized_expression "(bVar21 == 0)" ( (binary_expression "bVar21 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar19 = uVar5 + 0x114;\n      }" { (expression_statement "uVar19 = uVar5 + 0x114;" (assignment_expression "uVar19 = uVar5 + 0x114" identifier = (binary_expression "uVar5 + 0x114" identifier + number_literal)) ;) })) (expression_statement "param_1[0x98] = uVar19;" (assignment_expression "param_1[0x98] = uVar19" (subscript_expression "param_1[0x98]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) })) (expression_statement "uVar19 = 0x2e;" (assignment_expression "uVar19 = 0x2e" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x32:\ncode_r0x000236f8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3c;\n    puVar13 = auStack_6c;\n    break;" case number_literal : (labeled_statement "code_r0x000236f8:\n    bVar21 = (byte)param_1[0xcc];" statement_identifier : (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;)) (expression_statement "uVar19 = 0x3c;" (assignment_expression "uVar19 = 0x3c" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x34:\ncode_r0x000236e0:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3e;\n    puVar13 = auStack_6c;\n    break;" case number_literal : (labeled_statement "code_r0x000236e0:\n    bVar21 = (byte)param_1[0xcc];" statement_identifier : (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;)) (expression_statement "uVar19 = 0x3e;" (assignment_expression "uVar19 = 0x3e" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x35:\n    bVar21 = 0;\ncode_r0x000233b2:\n    uVar19 = *param_1;\n    if ((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))) {\n      param_1[0x98] = 0x101;\n      uVar19 = 0x101;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3f;\n    puVar13 = auStack_6c;\n    break;" case number_literal : (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" identifier = number_literal) ;) (labeled_statement "code_r0x000233b2:\n    uVar19 = *param_1;" statement_identifier : (expression_statement "uVar19 = *param_1;" (assignment_expression "uVar19 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;)) (if_statement "if ((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))) {\n      param_1[0x98] = 0x101;\n      uVar19 = 0x101;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" if (parenthesized_expression "((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0))))" ( (binary_expression "(((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))" (parenthesized_expression "(((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21))" ( (binary_expression "((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)" (parenthesized_expression "((uVar19 & 0x400) == 0)" ( (binary_expression "(uVar19 & 0x400) == 0" (parenthesized_expression "(uVar19 & 0x400)" ( (binary_expression "uVar19 & 0x400" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(((byte)(uVar19 >> 1) & 1) == bVar21)" ( (binary_expression "((byte)(uVar19 >> 1) & 1) == bVar21" (parenthesized_expression "((byte)(uVar19 >> 1) & 1)" ( (binary_expression "(byte)(uVar19 >> 1) & 1" (call_expression "(byte)(uVar19 >> 1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar19 >> 1)" ( (binary_expression "uVar19 >> 1" identifier >> number_literal) ))) & number_literal) )) == identifier) ))) )) && (parenthesized_expression "(((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))" ( (parenthesized_expression "((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0))" ( (binary_expression "(uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)" (binary_expression "(uVar19 & 0x10) != 0" (parenthesized_expression "(uVar19 & 0x10)" ( (binary_expression "uVar19 & 0x10" identifier & number_literal) )) != number_literal) || (parenthesized_expression "((byte)param_1[0xa3] == 0)" ( (binary_expression "(byte)param_1[0xa3] == 0" (cast_expression "(byte)param_1[0xa3]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xa3]" identifier [ number_literal ])) == number_literal) ))) )) ))) )) (compound_statement "{\n      param_1[0x98] = 0x101;\n      uVar19 = 0x101;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" { (expression_statement "param_1[0x98] = 0x101;" (assignment_expression "param_1[0x98] = 0x101" (subscript_expression "param_1[0x98]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar19 = 0x101;" (assignment_expression "uVar19 = 0x101" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) })) (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;) (expression_statement "uVar19 = 0x3f;" (assignment_expression "uVar19 = 0x3f" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x38:\ncode_r0x00023710:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x42;\n    puVar13 = auStack_6c;\n    break;" case number_literal : (labeled_statement "code_r0x00023710:\n    bVar21 = (byte)param_1[0xcc];" statement_identifier : (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;)) (expression_statement "uVar19 = 0x42;" (assignment_expression "uVar19 = 0x42" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x49:" case number_literal :) (case_statement "case 0x69:\n    bVar4 = false;\ncode_r0x0002342a:\n    bVar21 = (byte)param_1[0xcc];\n    puVar13 = auStack_6c;\n    if ((!bVar4) || (puVar13 = auStack_6c, (*param_1 & 0x80000) != 0)) break;\n    if (bVar21 != 0) {\n      pcVar8 = &UNK_0002f468 + (uVar19 == 0x73);\ncode_r0x0002345c:\n      param_1[0x96] = (uint)pcVar8;\n      sVar9 = strlen(pcVar8);\n      param_1[0x97] = sVar9;\n      puStack_70 = (uint *)&UNK_0002347b;\n      uVar19 = FUN_00021f80();\n      *(byte *)(param_1 + 0xa3) = 0;\n      param_1[0x98] = uVar19;\n      param_1[0x96] = (uint)local_5c[0];\n      param_1[0x97] = (uint)local_60;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    uVar5 = 0;\n    do {\n      *(undefined4 *)((int)local_40 + uVar5) = 0;\n      uVar5 = uVar5 + 4;\n    } while (uVar5 < 0x20);\n    puStack_70 = (uint *)&UNK_00023ab3;\n    ppuVar6 = __ctype_b_loc();\n    uVar5 = 0;\n    puVar2 = *ppuVar6;\n    do {\n      if ((*(byte *)((int)puVar2 + uVar5 * 2 + 1) & 0x20) != 0) {\n        local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n      }\n      uVar5 = uVar5 + 1;\n    } while (uVar5 != 0x100);\n    if (uVar19 == 0x53) {\ncode_r0x00023b34:\n      local_40[0] = ~local_40[0];\n      local_40[1] = ~local_40[1];\n      local_40[2] = ~local_40[2];\n      local_40[3] = ~local_40[3];\n      local_40[4] = ~local_40[4];\n      local_40[5] = ~local_40[5];\n      local_40[6] = ~local_40[6];\n      local_40[7] = ~local_40[7];\n    }\ncode_r0x00023ae7:\n    *(byte *)(param_1 + 0xa3) = 0;\n    goto code_r0x000237bd;" case number_literal : (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) (labeled_statement "code_r0x0002342a:\n    bVar21 = (byte)param_1[0xcc];" statement_identifier : (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;)) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (if_statement "if ((!bVar4) || (puVar13 = auStack_6c, (*param_1 & 0x80000) != 0)) break;" if (parenthesized_expression "((!bVar4) || (puVar13 = auStack_6c, (*param_1 & 0x80000) != 0))" ( (binary_expression "(!bVar4) || (puVar13 = auStack_6c, (*param_1 & 0x80000) != 0)" (parenthesized_expression "(!bVar4)" ( (unary_expression "!bVar4" ! identifier) )) || (parenthesized_expression "(puVar13 = auStack_6c, (*param_1 & 0x80000) != 0)" ( (comma_expression "puVar13 = auStack_6c, (*param_1 & 0x80000) != 0" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) , (binary_expression "(*param_1 & 0x80000) != 0" (parenthesized_expression "(*param_1 & 0x80000)" ( (binary_expression "*param_1 & 0x80000" (pointer_expression "*param_1" * identifier) & number_literal) )) != number_literal)) ))) )) (break_statement "break;" break ;)) (if_statement "if (bVar21 != 0) {\n      pcVar8 = &UNK_0002f468 + (uVar19 == 0x73);\ncode_r0x0002345c:\n      param_1[0x96] = (uint)pcVar8;\n      sVar9 = strlen(pcVar8);\n      param_1[0x97] = sVar9;\n      puStack_70 = (uint *)&UNK_0002347b;\n      uVar19 = FUN_00021f80();\n      *(byte *)(param_1 + 0xa3) = 0;\n      param_1[0x98] = uVar19;\n      param_1[0x96] = (uint)local_5c[0];\n      param_1[0x97] = (uint)local_60;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" if (parenthesized_expression "(bVar21 != 0)" ( (binary_expression "bVar21 != 0" identifier != number_literal) )) (compound_statement "{\n      pcVar8 = &UNK_0002f468 + (uVar19 == 0x73);\ncode_r0x0002345c:\n      param_1[0x96] = (uint)pcVar8;\n      sVar9 = strlen(pcVar8);\n      param_1[0x97] = sVar9;\n      puStack_70 = (uint *)&UNK_0002347b;\n      uVar19 = FUN_00021f80();\n      *(byte *)(param_1 + 0xa3) = 0;\n      param_1[0x98] = uVar19;\n      param_1[0x96] = (uint)local_5c[0];\n      param_1[0x97] = (uint)local_60;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" { (expression_statement "pcVar8 = &UNK_0002f468 + (uVar19 == 0x73);" (assignment_expression "pcVar8 = &UNK_0002f468 + (uVar19 == 0x73)" identifier = (binary_expression "&UNK_0002f468 + (uVar19 == 0x73)" (pointer_expression "&UNK_0002f468" & identifier) + (parenthesized_expression "(uVar19 == 0x73)" ( (binary_expression "uVar19 == 0x73" identifier == number_literal) )))) ;) (labeled_statement "code_r0x0002345c:\n      param_1[0x96] = (uint)pcVar8;" statement_identifier : (expression_statement "param_1[0x96] = (uint)pcVar8;" (assignment_expression "param_1[0x96] = (uint)pcVar8" (subscript_expression "param_1[0x96]" identifier [ number_literal ]) = (cast_expression "(uint)pcVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) (expression_statement "sVar9 = strlen(pcVar8);" (assignment_expression "sVar9 = strlen(pcVar8)" identifier = (call_expression "strlen(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier )))) ;) (expression_statement "param_1[0x97] = sVar9;" (assignment_expression "param_1[0x97] = sVar9" (subscript_expression "param_1[0x97]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puStack_70 = (uint *)&UNK_0002347b;" (assignment_expression "puStack_70 = (uint *)&UNK_0002347b" identifier = (cast_expression "(uint *)&UNK_0002347b" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&UNK_0002347b" & identifier))) ;) (expression_statement "uVar19 = FUN_00021f80();" (assignment_expression "uVar19 = FUN_00021f80()" identifier = (call_expression "FUN_00021f80()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(byte *)(param_1 + 0xa3) = 0;" (assignment_expression "*(byte *)(param_1 + 0xa3) = 0" (pointer_expression "*(byte *)(param_1 + 0xa3)" * (cast_expression "(byte *)(param_1 + 0xa3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa3)" ( (binary_expression "param_1 + 0xa3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_1[0x98] = uVar19;" (assignment_expression "param_1[0x98] = uVar19" (subscript_expression "param_1[0x98]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[0x96] = (uint)local_5c[0];" (assignment_expression "param_1[0x96] = (uint)local_5c[0]" (subscript_expression "param_1[0x96]" identifier [ number_literal ]) = (cast_expression "(uint)local_5c[0]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_5c[0]" identifier [ number_literal ]))) ;) (expression_statement "param_1[0x97] = (uint)local_60;" (assignment_expression "param_1[0x97] = (uint)local_60" (subscript_expression "param_1[0x97]" identifier [ number_literal ]) = (cast_expression "(uint)local_60" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) })) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n      *(undefined4 *)((int)local_40 + uVar5) = 0;\n      uVar5 = uVar5 + 4;\n    } while (uVar5 < 0x20);" do (compound_statement "{\n      *(undefined4 *)((int)local_40 + uVar5) = 0;\n      uVar5 = uVar5 + 4;\n    }" { (expression_statement "*(undefined4 *)((int)local_40 + uVar5) = 0;" (assignment_expression "*(undefined4 *)((int)local_40 + uVar5) = 0" (pointer_expression "*(undefined4 *)((int)local_40 + uVar5)" * (cast_expression "(undefined4 *)((int)local_40 + uVar5)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_40 + uVar5)" ( (binary_expression "(int)local_40 + uVar5" (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "uVar5 = uVar5 + 4;" (assignment_expression "uVar5 = uVar5 + 4" identifier = (binary_expression "uVar5 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar5 < 0x20)" ( (binary_expression "uVar5 < 0x20" identifier < number_literal) )) ;) (expression_statement "puStack_70 = (uint *)&UNK_00023ab3;" (assignment_expression "puStack_70 = (uint *)&UNK_00023ab3" identifier = (cast_expression "(uint *)&UNK_00023ab3" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&UNK_00023ab3" & identifier))) ;) (expression_statement "ppuVar6 = __ctype_b_loc();" (assignment_expression "ppuVar6 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "puVar2 = *ppuVar6;" (assignment_expression "puVar2 = *ppuVar6" identifier = (pointer_expression "*ppuVar6" * identifier)) ;) (do_statement "do {\n      if ((*(byte *)((int)puVar2 + uVar5 * 2 + 1) & 0x20) != 0) {\n        local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n      }\n      uVar5 = uVar5 + 1;\n    } while (uVar5 != 0x100);" do (compound_statement "{\n      if ((*(byte *)((int)puVar2 + uVar5 * 2 + 1) & 0x20) != 0) {\n        local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n      }\n      uVar5 = uVar5 + 1;\n    }" { (if_statement "if ((*(byte *)((int)puVar2 + uVar5 * 2 + 1) & 0x20) != 0) {\n        local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n      }" if (parenthesized_expression "((*(byte *)((int)puVar2 + uVar5 * 2 + 1) & 0x20) != 0)" ( (binary_expression "(*(byte *)((int)puVar2 + uVar5 * 2 + 1) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)puVar2 + uVar5 * 2 + 1) & 0x20)" ( (binary_expression "*(byte *)((int)puVar2 + uVar5 * 2 + 1) & 0x20" (pointer_expression "*(byte *)((int)puVar2 + uVar5 * 2 + 1)" * (cast_expression "(byte *)((int)puVar2 + uVar5 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar2 + uVar5 * 2 + 1)" ( (binary_expression "(int)puVar2 + uVar5 * 2 + 1" (binary_expression "(int)puVar2 + uVar5 * 2" (cast_expression "(int)puVar2" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "uVar5 * 2" identifier * number_literal)) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n      }" { (expression_statement "local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);" (assignment_expression "local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f)" (subscript_expression "local_40[uVar5 >> 5]" identifier [ (binary_expression "uVar5 >> 5" identifier >> number_literal) ]) = (binary_expression "local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f)" (subscript_expression "local_40[uVar5 >> 5]" identifier [ (binary_expression "uVar5 >> 5" identifier >> number_literal) ]) | (binary_expression "1 << ((byte)uVar5 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar5 & 0x1f)" ( (binary_expression "(byte)uVar5 & 0x1f" (cast_expression "(byte)uVar5" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))))) ;) })) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar5 != 0x100)" ( (binary_expression "uVar5 != 0x100" identifier != number_literal) )) ;) (if_statement "if (uVar19 == 0x53) {\ncode_r0x00023b34:\n      local_40[0] = ~local_40[0];\n      local_40[1] = ~local_40[1];\n      local_40[2] = ~local_40[2];\n      local_40[3] = ~local_40[3];\n      local_40[4] = ~local_40[4];\n      local_40[5] = ~local_40[5];\n      local_40[6] = ~local_40[6];\n      local_40[7] = ~local_40[7];\n    }" if (parenthesized_expression "(uVar19 == 0x53)" ( (binary_expression "uVar19 == 0x53" identifier == number_literal) )) (compound_statement "{\ncode_r0x00023b34:\n      local_40[0] = ~local_40[0];\n      local_40[1] = ~local_40[1];\n      local_40[2] = ~local_40[2];\n      local_40[3] = ~local_40[3];\n      local_40[4] = ~local_40[4];\n      local_40[5] = ~local_40[5];\n      local_40[6] = ~local_40[6];\n      local_40[7] = ~local_40[7];\n    }" { (labeled_statement "code_r0x00023b34:\n      local_40[0] = ~local_40[0];" statement_identifier : (expression_statement "local_40[0] = ~local_40[0];" (assignment_expression "local_40[0] = ~local_40[0]" (subscript_expression "local_40[0]" identifier [ number_literal ]) = (unary_expression "~local_40[0]" ~ (subscript_expression "local_40[0]" identifier [ number_literal ]))) ;)) (expression_statement "local_40[1] = ~local_40[1];" (assignment_expression "local_40[1] = ~local_40[1]" (subscript_expression "local_40[1]" identifier [ number_literal ]) = (unary_expression "~local_40[1]" ~ (subscript_expression "local_40[1]" identifier [ number_literal ]))) ;) (expression_statement "local_40[2] = ~local_40[2];" (assignment_expression "local_40[2] = ~local_40[2]" (subscript_expression "local_40[2]" identifier [ number_literal ]) = (unary_expression "~local_40[2]" ~ (subscript_expression "local_40[2]" identifier [ number_literal ]))) ;) (expression_statement "local_40[3] = ~local_40[3];" (assignment_expression "local_40[3] = ~local_40[3]" (subscript_expression "local_40[3]" identifier [ number_literal ]) = (unary_expression "~local_40[3]" ~ (subscript_expression "local_40[3]" identifier [ number_literal ]))) ;) (expression_statement "local_40[4] = ~local_40[4];" (assignment_expression "local_40[4] = ~local_40[4]" (subscript_expression "local_40[4]" identifier [ number_literal ]) = (unary_expression "~local_40[4]" ~ (subscript_expression "local_40[4]" identifier [ number_literal ]))) ;) (expression_statement "local_40[5] = ~local_40[5];" (assignment_expression "local_40[5] = ~local_40[5]" (subscript_expression "local_40[5]" identifier [ number_literal ]) = (unary_expression "~local_40[5]" ~ (subscript_expression "local_40[5]" identifier [ number_literal ]))) ;) (expression_statement "local_40[6] = ~local_40[6];" (assignment_expression "local_40[6] = ~local_40[6]" (subscript_expression "local_40[6]" identifier [ number_literal ]) = (unary_expression "~local_40[6]" ~ (subscript_expression "local_40[6]" identifier [ number_literal ]))) ;) (expression_statement "local_40[7] = ~local_40[7];" (assignment_expression "local_40[7] = ~local_40[7]" (subscript_expression "local_40[7]" identifier [ number_literal ]) = (unary_expression "~local_40[7]" ~ (subscript_expression "local_40[7]" identifier [ number_literal ]))) ;) })) (labeled_statement "code_r0x00023ae7:\n    *(byte *)(param_1 + 0xa3) = 0;" statement_identifier : (expression_statement "*(byte *)(param_1 + 0xa3) = 0;" (assignment_expression "*(byte *)(param_1 + 0xa3) = 0" (pointer_expression "*(byte *)(param_1 + 0xa3)" * (cast_expression "(byte *)(param_1 + 0xa3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa3)" ( (binary_expression "param_1 + 0xa3" identifier + number_literal) )))) = number_literal) ;)) (goto_statement "goto code_r0x000237bd;" goto statement_identifier ;)) (case_statement "case 0x51:\n    *(byte *)(param_1 + 0xa3) = 0;\n    puStack_70 = (uint *)&UNK_0002357e;\n    uVar19 = FUN_00021f80();\n    param_1[0x98] = uVar19;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;" case number_literal : (expression_statement "*(byte *)(param_1 + 0xa3) = 0;" (assignment_expression "*(byte *)(param_1 + 0xa3) = 0" (pointer_expression "*(byte *)(param_1 + 0xa3)" * (cast_expression "(byte *)(param_1 + 0xa3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa3)" ( (binary_expression "param_1 + 0xa3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puStack_70 = (uint *)&UNK_0002357e;" (assignment_expression "puStack_70 = (uint *)&UNK_0002357e" identifier = (cast_expression "(uint *)&UNK_0002357e" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&UNK_0002357e" & identifier))) ;) (expression_statement "uVar19 = FUN_00021f80();" (assignment_expression "uVar19 = FUN_00021f80()" identifier = (call_expression "FUN_00021f80()" identifier (argument_list "()" ( )))) ;) (expression_statement "param_1[0x98] = uVar19;" (assignment_expression "param_1[0x98] = uVar19" (subscript_expression "param_1[0x98]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;)) (case_statement "case 0x52:\n    if (local_60 == (byte *)0x0) {\n      pcVar8 = "unfinished \\ escape";\n      ppbVar15 = &pbStack_74;\n      pbStack_74 = (byte *)0x5;\n      puStack_70 = (uint *)((int)&__DT_PLTGOT + *(int *)(&DAT_0002ef08 + uVar5 * 4));\n      goto code_r0x00023a1b;\n    }\n    pbVar12 = (byte *)param_1[pbVar7[1] + 0x10d];\n    if (pbVar12 == (byte *)0xffffffff) {\n      pbStack_74 = local_60;\n      puStack_70 = param_1 + 0xb2;\n      local_5c[1] = pbVar12;\n      uVar5 = FUN_0002b6f0(auStack_50 + 3,local_5c[0]);\n      if (0xfffffffc < uVar5 - 1) {\n        puVar20 = param_1 + 0xb2;\n        for (iVar10 = 2; iVar10 != 0; iVar10 = iVar10 + -1) {\n          *puVar20 = 0;\n          puVar20 = puVar20 + (uint)bVar21 * -2 + 1;\n        }\n        local_5c[0] = (byte *)param_1[0x96];\n        local_60 = (byte *)param_1[0x97];\n        pbVar12 = local_5c[1];\n        goto code_r0x00023748;\n      }\n      pbVar12 = (byte *)param_1[0x97];\n      param_1[0x9d] = uVar5;\n      param_1[0x9c] = auStack_50[3];\n      pbVar7 = (byte *)param_1[0x96];\n      if (uVar5 != 1) goto code_r0x00023235;\n    }\n    else {\ncode_r0x00023748:\n      param_1[0x9d] = 1;\n      param_1[0x9c] = (uint)pbVar12;\n      pbVar12 = local_60;\n      pbVar7 = local_5c[0];\n    }\n    uVar19 = (uint)*pbVar7;\n    local_5c[0] = pbVar7 + 1;\n    param_1[0x96] = (uint)(pbVar7 + 1);\n    local_60 = pbVar12 + -1;\n    param_1[0x97] = (uint)(pbVar12 + -1);\n    switch(uVar19 - 10 & 0xff) {\n    case 0:\n      goto code_r0x0002359b;\n    case 0x1a:\n      goto code_r0x00023673;\n    case 0x1d:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023868;\n      goto code_r0x00023690;\n    case 0x1e:\n      bVar21 = 1;\n      goto code_r0x00023262;\n    case 0x1f:\n      bVar21 = 1;\n      goto code_r0x0002351a;\n    case 0x20:\n      goto code_r0x00023894;\n    case 0x21:\n      bVar21 = 1;\n      goto code_r0x000234d2;\n    case 0x24:\n      bVar4 = true;\n      goto code_r0x0002336a;\n    case 0x27:\n    case 0x28:\n    case 0x29:\n    case 0x2a:\n    case 0x2b:\n    case 0x2c:\n    case 0x2d:\n    case 0x2e:\n    case 0x2f:\n      if ((*param_1 & 0x4000) == 0) {\n        *(byte *)(param_1 + 0xa3) = 0;\n        uVar19 = 0x112;\n        param_1[0x98] = 0x112;\n        goto LAB_0002318d;\n      }\n    default:\nLAB_00023150:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      break;\n    case 0x32:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10e;\n        uVar19 = 0x10e;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236f8;\n    case 0x34:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10f;\n        uVar19 = 0x10f;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236e0;\n    case 0x35:\n      bVar21 = 1;\n      goto code_r0x000233b2;\n    case 0x38:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x111;\n        uVar19 = 0x111;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x00023710;\n    case 0x49:\n    case 0x69:\n      bVar4 = true;\n      goto code_r0x0002342a;\n    case 0x4d:\n    case 0x6d:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      if ((*param_1 & 0x80000) != 0) break;\n      if (bVar21 != 0) {\n        pcVar8 = &UNK_0002f474 + (uVar19 == 0x77);\n        goto code_r0x0002345c;\n      }\n      uVar5 = 0;\n      do {\n        *(undefined4 *)((int)local_40 + uVar5) = 0;\n        uVar5 = uVar5 + 4;\n      } while (uVar5 < 0x20);\n      uVar5 = 0;\n      do {\n        if (*(byte *)((int)param_1 + uVar5 + 8) == 2) {\n          local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 != 0x100);\n      if (uVar19 == 0x57) goto code_r0x00023b34;\n      goto code_r0x00023ae7;\n    case 0x51:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5b;\n      puVar13 = auStack_6c;\n      break;\n    case 0x52:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5c;\n      puVar13 = auStack_6c;\n      break;\n    case 0x54:\n      goto code_r0x000235d7;\n    case 0x56:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023880;\n      goto code_r0x000236c8;\n    case 0x58:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x110;\n        uVar19 = 0x110;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236a8;\n    case 0x71:\n      bStack_51 = 1;\n      goto code_r0x00023295;\n    case 0x72:\n      bVar21 = 1;\n      goto code_r0x000233fa;\n    }\n    break;" case number_literal : (if_statement "if (local_60 == (byte *)0x0) {\n      pcVar8 = "unfinished \\ escape";\n      ppbVar15 = &pbStack_74;\n      pbStack_74 = (byte *)0x5;\n      puStack_70 = (uint *)((int)&__DT_PLTGOT + *(int *)(&DAT_0002ef08 + uVar5 * 4));\n      goto code_r0x00023a1b;\n    }" if (parenthesized_expression "(local_60 == (byte *)0x0)" ( (binary_expression "local_60 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar8 = "unfinished \\ escape";\n      ppbVar15 = &pbStack_74;\n      pbStack_74 = (byte *)0x5;\n      puStack_70 = (uint *)((int)&__DT_PLTGOT + *(int *)(&DAT_0002ef08 + uVar5 * 4));\n      goto code_r0x00023a1b;\n    }" { (expression_statement "pcVar8 = "unfinished \\ escape";" (assignment_expression "pcVar8 = "unfinished \\ escape"" identifier = (string_literal ""unfinished \\ escape"" " string_content escape_sequence string_content ")) ;) (expression_statement "ppbVar15 = &pbStack_74;" (assignment_expression "ppbVar15 = &pbStack_74" identifier = (pointer_expression "&pbStack_74" & identifier)) ;) (expression_statement "pbStack_74 = (byte *)0x5;" (assignment_expression "pbStack_74 = (byte *)0x5" identifier = (cast_expression "(byte *)0x5" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puStack_70 = (uint *)((int)&__DT_PLTGOT + *(int *)(&DAT_0002ef08 + uVar5 * 4));" (assignment_expression "puStack_70 = (uint *)((int)&__DT_PLTGOT + *(int *)(&DAT_0002ef08 + uVar5 * 4))" identifier = (cast_expression "(uint *)((int)&__DT_PLTGOT + *(int *)(&DAT_0002ef08 + uVar5 * 4))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__DT_PLTGOT + *(int *)(&DAT_0002ef08 + uVar5 * 4))" ( (binary_expression "(int)&__DT_PLTGOT + *(int *)(&DAT_0002ef08 + uVar5 * 4)" (cast_expression "(int)&__DT_PLTGOT" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__DT_PLTGOT" & identifier)) + (pointer_expression "*(int *)(&DAT_0002ef08 + uVar5 * 4)" * (cast_expression "(int *)(&DAT_0002ef08 + uVar5 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0002ef08 + uVar5 * 4)" ( (binary_expression "&DAT_0002ef08 + uVar5 * 4" (pointer_expression "&DAT_0002ef08" & identifier) + (binary_expression "uVar5 * 4" identifier * number_literal)) ))))) )))) ;) (goto_statement "goto code_r0x00023a1b;" goto statement_identifier ;) })) (expression_statement "pbVar12 = (byte *)param_1[pbVar7[1] + 0x10d];" (assignment_expression "pbVar12 = (byte *)param_1[pbVar7[1] + 0x10d]" identifier = (cast_expression "(byte *)param_1[pbVar7[1] + 0x10d]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[pbVar7[1] + 0x10d]" identifier [ (binary_expression "pbVar7[1] + 0x10d" (subscript_expression "pbVar7[1]" identifier [ number_literal ]) + number_literal) ]))) ;) (if_statement "if (pbVar12 == (byte *)0xffffffff) {\n      pbStack_74 = local_60;\n      puStack_70 = param_1 + 0xb2;\n      local_5c[1] = pbVar12;\n      uVar5 = FUN_0002b6f0(auStack_50 + 3,local_5c[0]);\n      if (0xfffffffc < uVar5 - 1) {\n        puVar20 = param_1 + 0xb2;\n        for (iVar10 = 2; iVar10 != 0; iVar10 = iVar10 + -1) {\n          *puVar20 = 0;\n          puVar20 = puVar20 + (uint)bVar21 * -2 + 1;\n        }\n        local_5c[0] = (byte *)param_1[0x96];\n        local_60 = (byte *)param_1[0x97];\n        pbVar12 = local_5c[1];\n        goto code_r0x00023748;\n      }\n      pbVar12 = (byte *)param_1[0x97];\n      param_1[0x9d] = uVar5;\n      param_1[0x9c] = auStack_50[3];\n      pbVar7 = (byte *)param_1[0x96];\n      if (uVar5 != 1) goto code_r0x00023235;\n    }\n    else {\ncode_r0x00023748:\n      param_1[0x9d] = 1;\n      param_1[0x9c] = (uint)pbVar12;\n      pbVar12 = local_60;\n      pbVar7 = local_5c[0];\n    }" if (parenthesized_expression "(pbVar12 == (byte *)0xffffffff)" ( (binary_expression "pbVar12 == (byte *)0xffffffff" identifier == (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pbStack_74 = local_60;\n      puStack_70 = param_1 + 0xb2;\n      local_5c[1] = pbVar12;\n      uVar5 = FUN_0002b6f0(auStack_50 + 3,local_5c[0]);\n      if (0xfffffffc < uVar5 - 1) {\n        puVar20 = param_1 + 0xb2;\n        for (iVar10 = 2; iVar10 != 0; iVar10 = iVar10 + -1) {\n          *puVar20 = 0;\n          puVar20 = puVar20 + (uint)bVar21 * -2 + 1;\n        }\n        local_5c[0] = (byte *)param_1[0x96];\n        local_60 = (byte *)param_1[0x97];\n        pbVar12 = local_5c[1];\n        goto code_r0x00023748;\n      }\n      pbVar12 = (byte *)param_1[0x97];\n      param_1[0x9d] = uVar5;\n      param_1[0x9c] = auStack_50[3];\n      pbVar7 = (byte *)param_1[0x96];\n      if (uVar5 != 1) goto code_r0x00023235;\n    }" { (expression_statement "pbStack_74 = local_60;" (assignment_expression "pbStack_74 = local_60" identifier = identifier) ;) (expression_statement "puStack_70 = param_1 + 0xb2;" (assignment_expression "puStack_70 = param_1 + 0xb2" identifier = (binary_expression "param_1 + 0xb2" identifier + number_literal)) ;) (expression_statement "local_5c[1] = pbVar12;" (assignment_expression "local_5c[1] = pbVar12" (subscript_expression "local_5c[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar5 = FUN_0002b6f0(auStack_50 + 3,local_5c[0]);" (assignment_expression "uVar5 = FUN_0002b6f0(auStack_50 + 3,local_5c[0])" identifier = (call_expression "FUN_0002b6f0(auStack_50 + 3,local_5c[0])" identifier (argument_list "(auStack_50 + 3,local_5c[0])" ( (binary_expression "auStack_50 + 3" identifier + number_literal) , (subscript_expression "local_5c[0]" identifier [ number_literal ]) )))) ;) (if_statement "if (0xfffffffc < uVar5 - 1) {\n        puVar20 = param_1 + 0xb2;\n        for (iVar10 = 2; iVar10 != 0; iVar10 = iVar10 + -1) {\n          *puVar20 = 0;\n          puVar20 = puVar20 + (uint)bVar21 * -2 + 1;\n        }\n        local_5c[0] = (byte *)param_1[0x96];\n        local_60 = (byte *)param_1[0x97];\n        pbVar12 = local_5c[1];\n        goto code_r0x00023748;\n      }" if (parenthesized_expression "(0xfffffffc < uVar5 - 1)" ( (binary_expression "0xfffffffc < uVar5 - 1" number_literal < (binary_expression "uVar5 - 1" identifier - number_literal)) )) (compound_statement "{\n        puVar20 = param_1 + 0xb2;\n        for (iVar10 = 2; iVar10 != 0; iVar10 = iVar10 + -1) {\n          *puVar20 = 0;\n          puVar20 = puVar20 + (uint)bVar21 * -2 + 1;\n        }\n        local_5c[0] = (byte *)param_1[0x96];\n        local_60 = (byte *)param_1[0x97];\n        pbVar12 = local_5c[1];\n        goto code_r0x00023748;\n      }" { (expression_statement "puVar20 = param_1 + 0xb2;" (assignment_expression "puVar20 = param_1 + 0xb2" identifier = (binary_expression "param_1 + 0xb2" identifier + number_literal)) ;) (for_statement "for (iVar10 = 2; iVar10 != 0; iVar10 = iVar10 + -1) {\n          *puVar20 = 0;\n          puVar20 = puVar20 + (uint)bVar21 * -2 + 1;\n        }" for ( (assignment_expression "iVar10 = 2" identifier = number_literal) ; (binary_expression "iVar10 != 0" identifier != number_literal) ; (assignment_expression "iVar10 = iVar10 + -1" identifier = (binary_expression "iVar10 + -1" identifier + number_literal)) ) (compound_statement "{\n          *puVar20 = 0;\n          puVar20 = puVar20 + (uint)bVar21 * -2 + 1;\n        }" { (expression_statement "*puVar20 = 0;" (assignment_expression "*puVar20 = 0" (pointer_expression "*puVar20" * identifier) = number_literal) ;) (expression_statement "puVar20 = puVar20 + (uint)bVar21 * -2 + 1;" (assignment_expression "puVar20 = puVar20 + (uint)bVar21 * -2 + 1" identifier = (binary_expression "puVar20 + (uint)bVar21 * -2 + 1" (binary_expression "puVar20 + (uint)bVar21 * -2" identifier + (binary_expression "(uint)bVar21 * -2" (cast_expression "(uint)bVar21" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "local_5c[0] = (byte *)param_1[0x96];" (assignment_expression "local_5c[0] = (byte *)param_1[0x96]" (subscript_expression "local_5c[0]" identifier [ number_literal ]) = (cast_expression "(byte *)param_1[0x96]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x96]" identifier [ number_literal ]))) ;) (expression_statement "local_60 = (byte *)param_1[0x97];" (assignment_expression "local_60 = (byte *)param_1[0x97]" identifier = (cast_expression "(byte *)param_1[0x97]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x97]" identifier [ number_literal ]))) ;) (expression_statement "pbVar12 = local_5c[1];" (assignment_expression "pbVar12 = local_5c[1]" identifier = (subscript_expression "local_5c[1]" identifier [ number_literal ])) ;) (goto_statement "goto code_r0x00023748;" goto statement_identifier ;) })) (expression_statement "pbVar12 = (byte *)param_1[0x97];" (assignment_expression "pbVar12 = (byte *)param_1[0x97]" identifier = (cast_expression "(byte *)param_1[0x97]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x97]" identifier [ number_literal ]))) ;) (expression_statement "param_1[0x9d] = uVar5;" (assignment_expression "param_1[0x9d] = uVar5" (subscript_expression "param_1[0x9d]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[0x9c] = auStack_50[3];" (assignment_expression "param_1[0x9c] = auStack_50[3]" (subscript_expression "param_1[0x9c]" identifier [ number_literal ]) = (subscript_expression "auStack_50[3]" identifier [ number_literal ])) ;) (expression_statement "pbVar7 = (byte *)param_1[0x96];" (assignment_expression "pbVar7 = (byte *)param_1[0x96]" identifier = (cast_expression "(byte *)param_1[0x96]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x96]" identifier [ number_literal ]))) ;) (if_statement "if (uVar5 != 1) goto code_r0x00023235;" if (parenthesized_expression "(uVar5 != 1)" ( (binary_expression "uVar5 != 1" identifier != number_literal) )) (goto_statement "goto code_r0x00023235;" goto statement_identifier ;)) }) (else_clause "else {\ncode_r0x00023748:\n      param_1[0x9d] = 1;\n      param_1[0x9c] = (uint)pbVar12;\n      pbVar12 = local_60;\n      pbVar7 = local_5c[0];\n    }" else (compound_statement "{\ncode_r0x00023748:\n      param_1[0x9d] = 1;\n      param_1[0x9c] = (uint)pbVar12;\n      pbVar12 = local_60;\n      pbVar7 = local_5c[0];\n    }" { (labeled_statement "code_r0x00023748:\n      param_1[0x9d] = 1;" statement_identifier : (expression_statement "param_1[0x9d] = 1;" (assignment_expression "param_1[0x9d] = 1" (subscript_expression "param_1[0x9d]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "param_1[0x9c] = (uint)pbVar12;" (assignment_expression "param_1[0x9c] = (uint)pbVar12" (subscript_expression "param_1[0x9c]" identifier [ number_literal ]) = (cast_expression "(uint)pbVar12" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pbVar12 = local_60;" (assignment_expression "pbVar12 = local_60" identifier = identifier) ;) (expression_statement "pbVar7 = local_5c[0];" (assignment_expression "pbVar7 = local_5c[0]" identifier = (subscript_expression "local_5c[0]" identifier [ number_literal ])) ;) }))) (expression_statement "uVar19 = (uint)*pbVar7;" (assignment_expression "uVar19 = (uint)*pbVar7" identifier = (binary_expression "(uint)*pbVar7" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "local_5c[0] = pbVar7 + 1;" (assignment_expression "local_5c[0] = pbVar7 + 1" (subscript_expression "local_5c[0]" identifier [ number_literal ]) = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) (expression_statement "param_1[0x96] = (uint)(pbVar7 + 1);" (assignment_expression "param_1[0x96] = (uint)(pbVar7 + 1)" (subscript_expression "param_1[0x96]" identifier [ number_literal ]) = (call_expression "(uint)(pbVar7 + 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar7 + 1)" ( (binary_expression "pbVar7 + 1" identifier + number_literal) )))) ;) (expression_statement "local_60 = pbVar12 + -1;" (assignment_expression "local_60 = pbVar12 + -1" identifier = (binary_expression "pbVar12 + -1" identifier + number_literal)) ;) (expression_statement "param_1[0x97] = (uint)(pbVar12 + -1);" (assignment_expression "param_1[0x97] = (uint)(pbVar12 + -1)" (subscript_expression "param_1[0x97]" identifier [ number_literal ]) = (call_expression "(uint)(pbVar12 + -1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar12 + -1)" ( (binary_expression "pbVar12 + -1" identifier + number_literal) )))) ;) (switch_statement "switch(uVar19 - 10 & 0xff) {\n    case 0:\n      goto code_r0x0002359b;\n    case 0x1a:\n      goto code_r0x00023673;\n    case 0x1d:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023868;\n      goto code_r0x00023690;\n    case 0x1e:\n      bVar21 = 1;\n      goto code_r0x00023262;\n    case 0x1f:\n      bVar21 = 1;\n      goto code_r0x0002351a;\n    case 0x20:\n      goto code_r0x00023894;\n    case 0x21:\n      bVar21 = 1;\n      goto code_r0x000234d2;\n    case 0x24:\n      bVar4 = true;\n      goto code_r0x0002336a;\n    case 0x27:\n    case 0x28:\n    case 0x29:\n    case 0x2a:\n    case 0x2b:\n    case 0x2c:\n    case 0x2d:\n    case 0x2e:\n    case 0x2f:\n      if ((*param_1 & 0x4000) == 0) {\n        *(byte *)(param_1 + 0xa3) = 0;\n        uVar19 = 0x112;\n        param_1[0x98] = 0x112;\n        goto LAB_0002318d;\n      }\n    default:\nLAB_00023150:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      break;\n    case 0x32:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10e;\n        uVar19 = 0x10e;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236f8;\n    case 0x34:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10f;\n        uVar19 = 0x10f;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236e0;\n    case 0x35:\n      bVar21 = 1;\n      goto code_r0x000233b2;\n    case 0x38:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x111;\n        uVar19 = 0x111;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x00023710;\n    case 0x49:\n    case 0x69:\n      bVar4 = true;\n      goto code_r0x0002342a;\n    case 0x4d:\n    case 0x6d:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      if ((*param_1 & 0x80000) != 0) break;\n      if (bVar21 != 0) {\n        pcVar8 = &UNK_0002f474 + (uVar19 == 0x77);\n        goto code_r0x0002345c;\n      }\n      uVar5 = 0;\n      do {\n        *(undefined4 *)((int)local_40 + uVar5) = 0;\n        uVar5 = uVar5 + 4;\n      } while (uVar5 < 0x20);\n      uVar5 = 0;\n      do {\n        if (*(byte *)((int)param_1 + uVar5 + 8) == 2) {\n          local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 != 0x100);\n      if (uVar19 == 0x57) goto code_r0x00023b34;\n      goto code_r0x00023ae7;\n    case 0x51:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5b;\n      puVar13 = auStack_6c;\n      break;\n    case 0x52:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5c;\n      puVar13 = auStack_6c;\n      break;\n    case 0x54:\n      goto code_r0x000235d7;\n    case 0x56:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023880;\n      goto code_r0x000236c8;\n    case 0x58:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x110;\n        uVar19 = 0x110;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236a8;\n    case 0x71:\n      bStack_51 = 1;\n      goto code_r0x00023295;\n    case 0x72:\n      bVar21 = 1;\n      goto code_r0x000233fa;\n    }" switch (parenthesized_expression "(uVar19 - 10 & 0xff)" ( (binary_expression "uVar19 - 10 & 0xff" (binary_expression "uVar19 - 10" identifier - number_literal) & number_literal) )) (compound_statement "{\n    case 0:\n      goto code_r0x0002359b;\n    case 0x1a:\n      goto code_r0x00023673;\n    case 0x1d:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023868;\n      goto code_r0x00023690;\n    case 0x1e:\n      bVar21 = 1;\n      goto code_r0x00023262;\n    case 0x1f:\n      bVar21 = 1;\n      goto code_r0x0002351a;\n    case 0x20:\n      goto code_r0x00023894;\n    case 0x21:\n      bVar21 = 1;\n      goto code_r0x000234d2;\n    case 0x24:\n      bVar4 = true;\n      goto code_r0x0002336a;\n    case 0x27:\n    case 0x28:\n    case 0x29:\n    case 0x2a:\n    case 0x2b:\n    case 0x2c:\n    case 0x2d:\n    case 0x2e:\n    case 0x2f:\n      if ((*param_1 & 0x4000) == 0) {\n        *(byte *)(param_1 + 0xa3) = 0;\n        uVar19 = 0x112;\n        param_1[0x98] = 0x112;\n        goto LAB_0002318d;\n      }\n    default:\nLAB_00023150:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      break;\n    case 0x32:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10e;\n        uVar19 = 0x10e;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236f8;\n    case 0x34:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10f;\n        uVar19 = 0x10f;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236e0;\n    case 0x35:\n      bVar21 = 1;\n      goto code_r0x000233b2;\n    case 0x38:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x111;\n        uVar19 = 0x111;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x00023710;\n    case 0x49:\n    case 0x69:\n      bVar4 = true;\n      goto code_r0x0002342a;\n    case 0x4d:\n    case 0x6d:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      if ((*param_1 & 0x80000) != 0) break;\n      if (bVar21 != 0) {\n        pcVar8 = &UNK_0002f474 + (uVar19 == 0x77);\n        goto code_r0x0002345c;\n      }\n      uVar5 = 0;\n      do {\n        *(undefined4 *)((int)local_40 + uVar5) = 0;\n        uVar5 = uVar5 + 4;\n      } while (uVar5 < 0x20);\n      uVar5 = 0;\n      do {\n        if (*(byte *)((int)param_1 + uVar5 + 8) == 2) {\n          local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 != 0x100);\n      if (uVar19 == 0x57) goto code_r0x00023b34;\n      goto code_r0x00023ae7;\n    case 0x51:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5b;\n      puVar13 = auStack_6c;\n      break;\n    case 0x52:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5c;\n      puVar13 = auStack_6c;\n      break;\n    case 0x54:\n      goto code_r0x000235d7;\n    case 0x56:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023880;\n      goto code_r0x000236c8;\n    case 0x58:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x110;\n        uVar19 = 0x110;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236a8;\n    case 0x71:\n      bStack_51 = 1;\n      goto code_r0x00023295;\n    case 0x72:\n      bVar21 = 1;\n      goto code_r0x000233fa;\n    }" { (case_statement "case 0:\n      goto code_r0x0002359b;" case number_literal : (goto_statement "goto code_r0x0002359b;" goto statement_identifier ;)) (case_statement "case 0x1a:\n      goto code_r0x00023673;" case number_literal : (goto_statement "goto code_r0x00023673;" goto statement_identifier ;)) (case_statement "case 0x1d:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023868;\n      goto code_r0x00023690;" case number_literal : (if_statement "if ((*param_1 & 0x80000) == 0) goto code_r0x00023868;" if (parenthesized_expression "((*param_1 & 0x80000) == 0)" ( (binary_expression "(*param_1 & 0x80000) == 0" (parenthesized_expression "(*param_1 & 0x80000)" ( (binary_expression "*param_1 & 0x80000" (pointer_expression "*param_1" * identifier) & number_literal) )) == number_literal) )) (goto_statement "goto code_r0x00023868;" goto statement_identifier ;)) (goto_statement "goto code_r0x00023690;" goto statement_identifier ;)) (case_statement "case 0x1e:\n      bVar21 = 1;\n      goto code_r0x00023262;" case number_literal : (expression_statement "bVar21 = 1;" (assignment_expression "bVar21 = 1" identifier = number_literal) ;) (goto_statement "goto code_r0x00023262;" goto statement_identifier ;)) (case_statement "case 0x1f:\n      bVar21 = 1;\n      goto code_r0x0002351a;" case number_literal : (expression_statement "bVar21 = 1;" (assignment_expression "bVar21 = 1" identifier = number_literal) ;) (goto_statement "goto code_r0x0002351a;" goto statement_identifier ;)) (case_statement "case 0x20:\n      goto code_r0x00023894;" case number_literal : (goto_statement "goto code_r0x00023894;" goto statement_identifier ;)) (case_statement "case 0x21:\n      bVar21 = 1;\n      goto code_r0x000234d2;" case number_literal : (expression_statement "bVar21 = 1;" (assignment_expression "bVar21 = 1" identifier = number_literal) ;) (goto_statement "goto code_r0x000234d2;" goto statement_identifier ;)) (case_statement "case 0x24:\n      bVar4 = true;\n      goto code_r0x0002336a;" case number_literal : (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" identifier = true) ;) (goto_statement "goto code_r0x0002336a;" goto statement_identifier ;)) (case_statement "case 0x27:" case number_literal :) (case_statement "case 0x28:" case number_literal :) (case_statement "case 0x29:" case number_literal :) (case_statement "case 0x2a:" case number_literal :) (case_statement "case 0x2b:" case number_literal :) (case_statement "case 0x2c:" case number_literal :) (case_statement "case 0x2d:" case number_literal :) (case_statement "case 0x2e:" case number_literal :) (case_statement "case 0x2f:\n      if ((*param_1 & 0x4000) == 0) {\n        *(byte *)(param_1 + 0xa3) = 0;\n        uVar19 = 0x112;\n        param_1[0x98] = 0x112;\n        goto LAB_0002318d;\n      }" case number_literal : (if_statement "if ((*param_1 & 0x4000) == 0) {\n        *(byte *)(param_1 + 0xa3) = 0;\n        uVar19 = 0x112;\n        param_1[0x98] = 0x112;\n        goto LAB_0002318d;\n      }" if (parenthesized_expression "((*param_1 & 0x4000) == 0)" ( (binary_expression "(*param_1 & 0x4000) == 0" (parenthesized_expression "(*param_1 & 0x4000)" ( (binary_expression "*param_1 & 0x4000" (pointer_expression "*param_1" * identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(byte *)(param_1 + 0xa3) = 0;\n        uVar19 = 0x112;\n        param_1[0x98] = 0x112;\n        goto LAB_0002318d;\n      }" { (expression_statement "*(byte *)(param_1 + 0xa3) = 0;" (assignment_expression "*(byte *)(param_1 + 0xa3) = 0" (pointer_expression "*(byte *)(param_1 + 0xa3)" * (cast_expression "(byte *)(param_1 + 0xa3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa3)" ( (binary_expression "param_1 + 0xa3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar19 = 0x112;" (assignment_expression "uVar19 = 0x112" identifier = number_literal) ;) (expression_statement "param_1[0x98] = 0x112;" (assignment_expression "param_1[0x98] = 0x112" (subscript_expression "param_1[0x98]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) }))) (case_statement "default:\nLAB_00023150:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      break;" default : (labeled_statement "LAB_00023150:\n      bVar21 = (byte)param_1[0xcc];" statement_identifier : (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;)) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x32:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10e;\n        uVar19 = 0x10e;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236f8;" case number_literal : (if_statement "if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10e;\n        uVar19 = 0x10e;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }" if (parenthesized_expression "((*param_1 & 0x80000) == 0)" ( (binary_expression "(*param_1 & 0x80000) == 0" (parenthesized_expression "(*param_1 & 0x80000)" ( (binary_expression "*param_1 & 0x80000" (pointer_expression "*param_1" * identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        param_1[0x98] = 0x10e;\n        uVar19 = 0x10e;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }" { (expression_statement "param_1[0x98] = 0x10e;" (assignment_expression "param_1[0x98] = 0x10e" (subscript_expression "param_1[0x98]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar19 = 0x10e;" (assignment_expression "uVar19 = 0x10e" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) })) (goto_statement "goto code_r0x000236f8;" goto statement_identifier ;)) (case_statement "case 0x34:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10f;\n        uVar19 = 0x10f;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236e0;" case number_literal : (if_statement "if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10f;\n        uVar19 = 0x10f;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }" if (parenthesized_expression "((*param_1 & 0x80000) == 0)" ( (binary_expression "(*param_1 & 0x80000) == 0" (parenthesized_expression "(*param_1 & 0x80000)" ( (binary_expression "*param_1 & 0x80000" (pointer_expression "*param_1" * identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        param_1[0x98] = 0x10f;\n        uVar19 = 0x10f;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }" { (expression_statement "param_1[0x98] = 0x10f;" (assignment_expression "param_1[0x98] = 0x10f" (subscript_expression "param_1[0x98]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar19 = 0x10f;" (assignment_expression "uVar19 = 0x10f" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) })) (goto_statement "goto code_r0x000236e0;" goto statement_identifier ;)) (case_statement "case 0x35:\n      bVar21 = 1;\n      goto code_r0x000233b2;" case number_literal : (expression_statement "bVar21 = 1;" (assignment_expression "bVar21 = 1" identifier = number_literal) ;) (goto_statement "goto code_r0x000233b2;" goto statement_identifier ;)) (case_statement "case 0x38:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x111;\n        uVar19 = 0x111;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x00023710;" case number_literal : (if_statement "if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x111;\n        uVar19 = 0x111;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }" if (parenthesized_expression "((*param_1 & 0x80000) == 0)" ( (binary_expression "(*param_1 & 0x80000) == 0" (parenthesized_expression "(*param_1 & 0x80000)" ( (binary_expression "*param_1 & 0x80000" (pointer_expression "*param_1" * identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        param_1[0x98] = 0x111;\n        uVar19 = 0x111;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }" { (expression_statement "param_1[0x98] = 0x111;" (assignment_expression "param_1[0x98] = 0x111" (subscript_expression "param_1[0x98]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar19 = 0x111;" (assignment_expression "uVar19 = 0x111" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) })) (goto_statement "goto code_r0x00023710;" goto statement_identifier ;)) (case_statement "case 0x49:" case number_literal :) (case_statement "case 0x69:\n      bVar4 = true;\n      goto code_r0x0002342a;" case number_literal : (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" identifier = true) ;) (goto_statement "goto code_r0x0002342a;" goto statement_identifier ;)) (case_statement "case 0x4d:" case number_literal :) (case_statement "case 0x6d:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      if ((*param_1 & 0x80000) != 0) break;\n      if (bVar21 != 0) {\n        pcVar8 = &UNK_0002f474 + (uVar19 == 0x77);\n        goto code_r0x0002345c;\n      }\n      uVar5 = 0;\n      do {\n        *(undefined4 *)((int)local_40 + uVar5) = 0;\n        uVar5 = uVar5 + 4;\n      } while (uVar5 < 0x20);\n      uVar5 = 0;\n      do {\n        if (*(byte *)((int)param_1 + uVar5 + 8) == 2) {\n          local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 != 0x100);\n      if (uVar19 == 0x57) goto code_r0x00023b34;\n      goto code_r0x00023ae7;" case number_literal : (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (if_statement "if ((*param_1 & 0x80000) != 0) break;" if (parenthesized_expression "((*param_1 & 0x80000) != 0)" ( (binary_expression "(*param_1 & 0x80000) != 0" (parenthesized_expression "(*param_1 & 0x80000)" ( (binary_expression "*param_1 & 0x80000" (pointer_expression "*param_1" * identifier) & number_literal) )) != number_literal) )) (break_statement "break;" break ;)) (if_statement "if (bVar21 != 0) {\n        pcVar8 = &UNK_0002f474 + (uVar19 == 0x77);\n        goto code_r0x0002345c;\n      }" if (parenthesized_expression "(bVar21 != 0)" ( (binary_expression "bVar21 != 0" identifier != number_literal) )) (compound_statement "{\n        pcVar8 = &UNK_0002f474 + (uVar19 == 0x77);\n        goto code_r0x0002345c;\n      }" { (expression_statement "pcVar8 = &UNK_0002f474 + (uVar19 == 0x77);" (assignment_expression "pcVar8 = &UNK_0002f474 + (uVar19 == 0x77)" identifier = (binary_expression "&UNK_0002f474 + (uVar19 == 0x77)" (pointer_expression "&UNK_0002f474" & identifier) + (parenthesized_expression "(uVar19 == 0x77)" ( (binary_expression "uVar19 == 0x77" identifier == number_literal) )))) ;) (goto_statement "goto code_r0x0002345c;" goto statement_identifier ;) })) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n        *(undefined4 *)((int)local_40 + uVar5) = 0;\n        uVar5 = uVar5 + 4;\n      } while (uVar5 < 0x20);" do (compound_statement "{\n        *(undefined4 *)((int)local_40 + uVar5) = 0;\n        uVar5 = uVar5 + 4;\n      }" { (expression_statement "*(undefined4 *)((int)local_40 + uVar5) = 0;" (assignment_expression "*(undefined4 *)((int)local_40 + uVar5) = 0" (pointer_expression "*(undefined4 *)((int)local_40 + uVar5)" * (cast_expression "(undefined4 *)((int)local_40 + uVar5)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_40 + uVar5)" ( (binary_expression "(int)local_40 + uVar5" (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "uVar5 = uVar5 + 4;" (assignment_expression "uVar5 = uVar5 + 4" identifier = (binary_expression "uVar5 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar5 < 0x20)" ( (binary_expression "uVar5 < 0x20" identifier < number_literal) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n        if (*(byte *)((int)param_1 + uVar5 + 8) == 2) {\n          local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 != 0x100);" do (compound_statement "{\n        if (*(byte *)((int)param_1 + uVar5 + 8) == 2) {\n          local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n        }\n        uVar5 = uVar5 + 1;\n      }" { (if_statement "if (*(byte *)((int)param_1 + uVar5 + 8) == 2) {\n          local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n        }" if (parenthesized_expression "(*(byte *)((int)param_1 + uVar5 + 8) == 2)" ( (binary_expression "*(byte *)((int)param_1 + uVar5 + 8) == 2" (pointer_expression "*(byte *)((int)param_1 + uVar5 + 8)" * (cast_expression "(byte *)((int)param_1 + uVar5 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + uVar5 + 8)" ( (binary_expression "(int)param_1 + uVar5 + 8" (binary_expression "(int)param_1 + uVar5" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n          local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n        }" { (expression_statement "local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);" (assignment_expression "local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f)" (subscript_expression "local_40[uVar5 >> 5]" identifier [ (binary_expression "uVar5 >> 5" identifier >> number_literal) ]) = (binary_expression "local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f)" (subscript_expression "local_40[uVar5 >> 5]" identifier [ (binary_expression "uVar5 >> 5" identifier >> number_literal) ]) | (binary_expression "1 << ((byte)uVar5 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar5 & 0x1f)" ( (binary_expression "(byte)uVar5 & 0x1f" (cast_expression "(byte)uVar5" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))))) ;) })) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar5 != 0x100)" ( (binary_expression "uVar5 != 0x100" identifier != number_literal) )) ;) (if_statement "if (uVar19 == 0x57) goto code_r0x00023b34;" if (parenthesized_expression "(uVar19 == 0x57)" ( (binary_expression "uVar19 == 0x57" identifier == number_literal) )) (goto_statement "goto code_r0x00023b34;" goto statement_identifier ;)) (goto_statement "goto code_r0x00023ae7;" goto statement_identifier ;)) (case_statement "case 0x51:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5b;\n      puVar13 = auStack_6c;\n      break;" case number_literal : (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;) (expression_statement "uVar19 = 0x5b;" (assignment_expression "uVar19 = 0x5b" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x52:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5c;\n      puVar13 = auStack_6c;\n      break;" case number_literal : (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;) (expression_statement "uVar19 = 0x5c;" (assignment_expression "uVar19 = 0x5c" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x54:\n      goto code_r0x000235d7;" case number_literal : (goto_statement "goto code_r0x000235d7;" goto statement_identifier ;)) (case_statement "case 0x56:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023880;\n      goto code_r0x000236c8;" case number_literal : (if_statement "if ((*param_1 & 0x80000) == 0) goto code_r0x00023880;" if (parenthesized_expression "((*param_1 & 0x80000) == 0)" ( (binary_expression "(*param_1 & 0x80000) == 0" (parenthesized_expression "(*param_1 & 0x80000)" ( (binary_expression "*param_1 & 0x80000" (pointer_expression "*param_1" * identifier) & number_literal) )) == number_literal) )) (goto_statement "goto code_r0x00023880;" goto statement_identifier ;)) (goto_statement "goto code_r0x000236c8;" goto statement_identifier ;)) (case_statement "case 0x58:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x110;\n        uVar19 = 0x110;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236a8;" case number_literal : (if_statement "if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x110;\n        uVar19 = 0x110;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }" if (parenthesized_expression "((*param_1 & 0x80000) == 0)" ( (binary_expression "(*param_1 & 0x80000) == 0" (parenthesized_expression "(*param_1 & 0x80000)" ( (binary_expression "*param_1 & 0x80000" (pointer_expression "*param_1" * identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        param_1[0x98] = 0x110;\n        uVar19 = 0x110;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }" { (expression_statement "param_1[0x98] = 0x110;" (assignment_expression "param_1[0x98] = 0x110" (subscript_expression "param_1[0x98]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar19 = 0x110;" (assignment_expression "uVar19 = 0x110" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) })) (goto_statement "goto code_r0x000236a8;" goto statement_identifier ;)) (case_statement "case 0x71:\n      bStack_51 = 1;\n      goto code_r0x00023295;" case number_literal : (expression_statement "bStack_51 = 1;" (assignment_expression "bStack_51 = 1" identifier = number_literal) ;) (goto_statement "goto code_r0x00023295;" goto statement_identifier ;)) (case_statement "case 0x72:\n      bVar21 = 1;\n      goto code_r0x000233fa;" case number_literal : (expression_statement "bVar21 = 1;" (assignment_expression "bVar21 = 1" identifier = number_literal) ;) (goto_statement "goto code_r0x000233fa;" goto statement_identifier ;)) })) (break_statement "break;" break ;)) (case_statement "case 0x54:\n    if ((((*param_1 & 8) != 0) || (param_1[0x98] - 0x106 < 2)) || (param_1[0x98] == 0xffffffff)) {\ncode_r0x00023880:\n      param_1[0x98] = 0x10c;\n      uVar19 = 0x10c;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x000235d7:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x5e;\n    puVar13 = auStack_6c;\n    break;" case number_literal : (if_statement "if ((((*param_1 & 8) != 0) || (param_1[0x98] - 0x106 < 2)) || (param_1[0x98] == 0xffffffff)) {\ncode_r0x00023880:\n      param_1[0x98] = 0x10c;\n      uVar19 = 0x10c;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" if (parenthesized_expression "((((*param_1 & 8) != 0) || (param_1[0x98] - 0x106 < 2)) || (param_1[0x98] == 0xffffffff))" ( (binary_expression "(((*param_1 & 8) != 0) || (param_1[0x98] - 0x106 < 2)) || (param_1[0x98] == 0xffffffff)" (parenthesized_expression "(((*param_1 & 8) != 0) || (param_1[0x98] - 0x106 < 2))" ( (binary_expression "((*param_1 & 8) != 0) || (param_1[0x98] - 0x106 < 2)" (parenthesized_expression "((*param_1 & 8) != 0)" ( (binary_expression "(*param_1 & 8) != 0" (parenthesized_expression "(*param_1 & 8)" ( (binary_expression "*param_1 & 8" (pointer_expression "*param_1" * identifier) & number_literal) )) != number_literal) )) || (parenthesized_expression "(param_1[0x98] - 0x106 < 2)" ( (binary_expression "param_1[0x98] - 0x106 < 2" (binary_expression "param_1[0x98] - 0x106" (subscript_expression "param_1[0x98]" identifier [ number_literal ]) - number_literal) < number_literal) ))) )) || (parenthesized_expression "(param_1[0x98] == 0xffffffff)" ( (binary_expression "param_1[0x98] == 0xffffffff" (subscript_expression "param_1[0x98]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\ncode_r0x00023880:\n      param_1[0x98] = 0x10c;\n      uVar19 = 0x10c;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" { (labeled_statement "code_r0x00023880:\n      param_1[0x98] = 0x10c;" statement_identifier : (expression_statement "param_1[0x98] = 0x10c;" (assignment_expression "param_1[0x98] = 0x10c" (subscript_expression "param_1[0x98]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "uVar19 = 0x10c;" (assignment_expression "uVar19 = 0x10c" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) })) (labeled_statement "code_r0x000235d7:\n    bVar21 = (byte)param_1[0xcc];" statement_identifier : (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;)) (expression_statement "uVar19 = 0x5e;" (assignment_expression "uVar19 = 0x5e" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x56:\ncode_r0x000236c8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x60;\n    puVar13 = auStack_6c;\n    break;" case number_literal : (labeled_statement "code_r0x000236c8:\n    bVar21 = (byte)param_1[0xcc];" statement_identifier : (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;)) (expression_statement "uVar19 = 0x60;" (assignment_expression "uVar19 = 0x60" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x58:\ncode_r0x000236a8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x62;\n    puVar13 = auStack_6c;\n    break;" case number_literal : (labeled_statement "code_r0x000236a8:\n    bVar21 = (byte)param_1[0xcc];" statement_identifier : (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;)) (expression_statement "uVar19 = 0x62;" (assignment_expression "uVar19 = 0x62" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x71:\n    bStack_51 = 0;\ncode_r0x00023295:\n    auStack_50[0] = *param_1;\n    puVar13 = auStack_6c;\n    if ((((auStack_50[0] & 0x200) != 0) &&\n        (puVar13 = auStack_6c, (((byte)(auStack_50[0] >> 0xc) ^ 1) & 1) == bStack_51)) &&\n       (((auStack_50[0] & 0x10) != 0 || (puVar13 = auStack_6c, (byte)param_1[0xa3] == 0)))) {\n      local_5c[1] = pbVar7 + (int)pbVar12;\n      param_1[0x9b] = 0xffffffff;\n      param_1[0x9a] = 0xffffffff;\n      if (local_5c[1] == local_5c[0]) {\ncode_r0x00023b5a:\n        puVar13 = auStack_6c;\n        if (bStack_51 == 0) goto code_r0x00023a30;\n      }\n      else {\n        bVar21 = pbVar7[1];\n        pbVar12 = (byte *)(int)(char)bVar21;\n        if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar7 = (byte *)0xffffffff;\n          local_60 = pbVar12;\n          do {\n            pbVar3 = local_60;\n            if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }\n            pbVar7 = pbVar3 + -0x30;\n            param_1[0x9a] = (uint)pbVar7;\n            local_5c[0] = local_5c[0] + 1;\n            if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }\n            bVar21 = *local_5c[0];\n            local_60 = (byte *)(int)(char)bVar21;\n            pbVar12 = (byte *)(int)(char)bVar21 + -0x30;\n          } while ((byte)pbVar12 < 10);\n          if (bVar21 == 0x2c) {\n            if ((int)pbVar7 < 0) goto code_r0x00023bed;\ncode_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;\n            if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }\n            bVar21 = local_5c[0][1];\n            if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            local_5c[0] = pbVar12;\n            goto code_r0x00023bd8;\n          }\n          param_1[0x9b] = (uint)pbVar7;\n          puVar17 = auStack_6c;\n          if (bStack_51 == 0) goto code_r0x00023a30;\n        }\n        else {\n          if (bVar21 == 0x2c) {\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }\ncode_r0x00023bd8:\n          if (bStack_51 == 0) goto code_r0x00023a3a;\n        }\n        puVar13 = auStack_6c;\n        if (*local_5c[0] == 0x5c) goto code_r0x00023a2b;\n      }\ncode_r0x00023a04:\n      if ((*(uint *)(puVar13 + 0x1c) & 0x200000) == 0) {\n        *(byte **)(puVar13 + -4) = pbVar12;\n        pcVar8 = "invalid content of \\{\\}";\n        ppbVar15 = (byte **)(puVar13 + -8);\n        *(undefined4 *)(puVar13 + -8) = 5;\ncode_r0x00023a1b:\n        while( true ) {\n          *(char **)((int)ppbVar15 + -4) = pcVar8;\n          puVar16 = (undefined1 *)((int)ppbVar15 + -8);\n          *(undefined4 *)((int)ppbVar15 + -8) = 0;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23;\n          uVar11 = dcgettext();\n          *(undefined4 *)((int)ppbVar15 + -8) = uVar11;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b;\n          FUN_0001be40();\n          pbVar12 = extraout_ECX;\ncode_r0x00023a2b:\n          *(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;\n          puVar17 = puVar16;\ncode_r0x00023a30:\n          puVar13 = puVar17;\n          puVar18 = puVar17;\n          if (*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)) break;\ncode_r0x00023a3a:\n          puVar13 = puVar18;\n          if ((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))\n          break;\n          uVar5 = param_1[0x9b];\n          if ((int)uVar5 < 0) {\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }\n          if ((int)uVar5 < (int)uVar19) break;\n          if ((int)uVar5 < 0x8000) goto code_r0x00023a66;\n          pcVar8 = "regular expression too big";\n          *(uint *)(puVar18 + -4) = uVar19;\n          ppbVar15 = (byte **)(puVar18 + -8);\n          *(undefined4 *)(puVar18 + -8) = 5;\n        }\n        goto code_r0x00023a04;\n      }\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x7b;\n    break;" case number_literal : (expression_statement "bStack_51 = 0;" (assignment_expression "bStack_51 = 0" identifier = number_literal) ;) (labeled_statement "code_r0x00023295:\n    auStack_50[0] = *param_1;" statement_identifier : (expression_statement "auStack_50[0] = *param_1;" (assignment_expression "auStack_50[0] = *param_1" (subscript_expression "auStack_50[0]" identifier [ number_literal ]) = (pointer_expression "*param_1" * identifier)) ;)) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (if_statement "if ((((auStack_50[0] & 0x200) != 0) &&\n        (puVar13 = auStack_6c, (((byte)(auStack_50[0] >> 0xc) ^ 1) & 1) == bStack_51)) &&\n       (((auStack_50[0] & 0x10) != 0 || (puVar13 = auStack_6c, (byte)param_1[0xa3] == 0)))) {\n      local_5c[1] = pbVar7 + (int)pbVar12;\n      param_1[0x9b] = 0xffffffff;\n      param_1[0x9a] = 0xffffffff;\n      if (local_5c[1] == local_5c[0]) {\ncode_r0x00023b5a:\n        puVar13 = auStack_6c;\n        if (bStack_51 == 0) goto code_r0x00023a30;\n      }\n      else {\n        bVar21 = pbVar7[1];\n        pbVar12 = (byte *)(int)(char)bVar21;\n        if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar7 = (byte *)0xffffffff;\n          local_60 = pbVar12;\n          do {\n            pbVar3 = local_60;\n            if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }\n            pbVar7 = pbVar3 + -0x30;\n            param_1[0x9a] = (uint)pbVar7;\n            local_5c[0] = local_5c[0] + 1;\n            if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }\n            bVar21 = *local_5c[0];\n            local_60 = (byte *)(int)(char)bVar21;\n            pbVar12 = (byte *)(int)(char)bVar21 + -0x30;\n          } while ((byte)pbVar12 < 10);\n          if (bVar21 == 0x2c) {\n            if ((int)pbVar7 < 0) goto code_r0x00023bed;\ncode_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;\n            if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }\n            bVar21 = local_5c[0][1];\n            if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            local_5c[0] = pbVar12;\n            goto code_r0x00023bd8;\n          }\n          param_1[0x9b] = (uint)pbVar7;\n          puVar17 = auStack_6c;\n          if (bStack_51 == 0) goto code_r0x00023a30;\n        }\n        else {\n          if (bVar21 == 0x2c) {\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }\ncode_r0x00023bd8:\n          if (bStack_51 == 0) goto code_r0x00023a3a;\n        }\n        puVar13 = auStack_6c;\n        if (*local_5c[0] == 0x5c) goto code_r0x00023a2b;\n      }\ncode_r0x00023a04:\n      if ((*(uint *)(puVar13 + 0x1c) & 0x200000) == 0) {\n        *(byte **)(puVar13 + -4) = pbVar12;\n        pcVar8 = "invalid content of \\{\\}";\n        ppbVar15 = (byte **)(puVar13 + -8);\n        *(undefined4 *)(puVar13 + -8) = 5;\ncode_r0x00023a1b:\n        while( true ) {\n          *(char **)((int)ppbVar15 + -4) = pcVar8;\n          puVar16 = (undefined1 *)((int)ppbVar15 + -8);\n          *(undefined4 *)((int)ppbVar15 + -8) = 0;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23;\n          uVar11 = dcgettext();\n          *(undefined4 *)((int)ppbVar15 + -8) = uVar11;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b;\n          FUN_0001be40();\n          pbVar12 = extraout_ECX;\ncode_r0x00023a2b:\n          *(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;\n          puVar17 = puVar16;\ncode_r0x00023a30:\n          puVar13 = puVar17;\n          puVar18 = puVar17;\n          if (*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)) break;\ncode_r0x00023a3a:\n          puVar13 = puVar18;\n          if ((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))\n          break;\n          uVar5 = param_1[0x9b];\n          if ((int)uVar5 < 0) {\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }\n          if ((int)uVar5 < (int)uVar19) break;\n          if ((int)uVar5 < 0x8000) goto code_r0x00023a66;\n          pcVar8 = "regular expression too big";\n          *(uint *)(puVar18 + -4) = uVar19;\n          ppbVar15 = (byte **)(puVar18 + -8);\n          *(undefined4 *)(puVar18 + -8) = 5;\n        }\n        goto code_r0x00023a04;\n      }\n    }" if (parenthesized_expression "((((auStack_50[0] & 0x200) != 0) &&\n        (puVar13 = auStack_6c, (((byte)(auStack_50[0] >> 0xc) ^ 1) & 1) == bStack_51)) &&\n       (((auStack_50[0] & 0x10) != 0 || (puVar13 = auStack_6c, (byte)param_1[0xa3] == 0))))" ( (binary_expression "(((auStack_50[0] & 0x200) != 0) &&\n        (puVar13 = auStack_6c, (((byte)(auStack_50[0] >> 0xc) ^ 1) & 1) == bStack_51)) &&\n       (((auStack_50[0] & 0x10) != 0 || (puVar13 = auStack_6c, (byte)param_1[0xa3] == 0)))" (parenthesized_expression "(((auStack_50[0] & 0x200) != 0) &&\n        (puVar13 = auStack_6c, (((byte)(auStack_50[0] >> 0xc) ^ 1) & 1) == bStack_51))" ( (binary_expression "((auStack_50[0] & 0x200) != 0) &&\n        (puVar13 = auStack_6c, (((byte)(auStack_50[0] >> 0xc) ^ 1) & 1) == bStack_51)" (parenthesized_expression "((auStack_50[0] & 0x200) != 0)" ( (binary_expression "(auStack_50[0] & 0x200) != 0" (parenthesized_expression "(auStack_50[0] & 0x200)" ( (binary_expression "auStack_50[0] & 0x200" (subscript_expression "auStack_50[0]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) && (parenthesized_expression "(puVar13 = auStack_6c, (((byte)(auStack_50[0] >> 0xc) ^ 1) & 1) == bStack_51)" ( (comma_expression "puVar13 = auStack_6c, (((byte)(auStack_50[0] >> 0xc) ^ 1) & 1) == bStack_51" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) , (binary_expression "(((byte)(auStack_50[0] >> 0xc) ^ 1) & 1) == bStack_51" (parenthesized_expression "(((byte)(auStack_50[0] >> 0xc) ^ 1) & 1)" ( (binary_expression "((byte)(auStack_50[0] >> 0xc) ^ 1) & 1" (parenthesized_expression "((byte)(auStack_50[0] >> 0xc) ^ 1)" ( (binary_expression "(byte)(auStack_50[0] >> 0xc) ^ 1" (call_expression "(byte)(auStack_50[0] >> 0xc)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(auStack_50[0] >> 0xc)" ( (binary_expression "auStack_50[0] >> 0xc" (subscript_expression "auStack_50[0]" identifier [ number_literal ]) >> number_literal) ))) ^ number_literal) )) & number_literal) )) == identifier)) ))) )) && (parenthesized_expression "(((auStack_50[0] & 0x10) != 0 || (puVar13 = auStack_6c, (byte)param_1[0xa3] == 0)))" ( (parenthesized_expression "((auStack_50[0] & 0x10) != 0 || (puVar13 = auStack_6c, (byte)param_1[0xa3] == 0))" ( (binary_expression "(auStack_50[0] & 0x10) != 0 || (puVar13 = auStack_6c, (byte)param_1[0xa3] == 0)" (binary_expression "(auStack_50[0] & 0x10) != 0" (parenthesized_expression "(auStack_50[0] & 0x10)" ( (binary_expression "auStack_50[0] & 0x10" (subscript_expression "auStack_50[0]" identifier [ number_literal ]) & number_literal) )) != number_literal) || (parenthesized_expression "(puVar13 = auStack_6c, (byte)param_1[0xa3] == 0)" ( (comma_expression "puVar13 = auStack_6c, (byte)param_1[0xa3] == 0" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) , (binary_expression "(byte)param_1[0xa3] == 0" (cast_expression "(byte)param_1[0xa3]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xa3]" identifier [ number_literal ])) == number_literal)) ))) )) ))) )) (compound_statement "{\n      local_5c[1] = pbVar7 + (int)pbVar12;\n      param_1[0x9b] = 0xffffffff;\n      param_1[0x9a] = 0xffffffff;\n      if (local_5c[1] == local_5c[0]) {\ncode_r0x00023b5a:\n        puVar13 = auStack_6c;\n        if (bStack_51 == 0) goto code_r0x00023a30;\n      }\n      else {\n        bVar21 = pbVar7[1];\n        pbVar12 = (byte *)(int)(char)bVar21;\n        if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar7 = (byte *)0xffffffff;\n          local_60 = pbVar12;\n          do {\n            pbVar3 = local_60;\n            if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }\n            pbVar7 = pbVar3 + -0x30;\n            param_1[0x9a] = (uint)pbVar7;\n            local_5c[0] = local_5c[0] + 1;\n            if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }\n            bVar21 = *local_5c[0];\n            local_60 = (byte *)(int)(char)bVar21;\n            pbVar12 = (byte *)(int)(char)bVar21 + -0x30;\n          } while ((byte)pbVar12 < 10);\n          if (bVar21 == 0x2c) {\n            if ((int)pbVar7 < 0) goto code_r0x00023bed;\ncode_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;\n            if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }\n            bVar21 = local_5c[0][1];\n            if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            local_5c[0] = pbVar12;\n            goto code_r0x00023bd8;\n          }\n          param_1[0x9b] = (uint)pbVar7;\n          puVar17 = auStack_6c;\n          if (bStack_51 == 0) goto code_r0x00023a30;\n        }\n        else {\n          if (bVar21 == 0x2c) {\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }\ncode_r0x00023bd8:\n          if (bStack_51 == 0) goto code_r0x00023a3a;\n        }\n        puVar13 = auStack_6c;\n        if (*local_5c[0] == 0x5c) goto code_r0x00023a2b;\n      }\ncode_r0x00023a04:\n      if ((*(uint *)(puVar13 + 0x1c) & 0x200000) == 0) {\n        *(byte **)(puVar13 + -4) = pbVar12;\n        pcVar8 = "invalid content of \\{\\}";\n        ppbVar15 = (byte **)(puVar13 + -8);\n        *(undefined4 *)(puVar13 + -8) = 5;\ncode_r0x00023a1b:\n        while( true ) {\n          *(char **)((int)ppbVar15 + -4) = pcVar8;\n          puVar16 = (undefined1 *)((int)ppbVar15 + -8);\n          *(undefined4 *)((int)ppbVar15 + -8) = 0;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23;\n          uVar11 = dcgettext();\n          *(undefined4 *)((int)ppbVar15 + -8) = uVar11;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b;\n          FUN_0001be40();\n          pbVar12 = extraout_ECX;\ncode_r0x00023a2b:\n          *(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;\n          puVar17 = puVar16;\ncode_r0x00023a30:\n          puVar13 = puVar17;\n          puVar18 = puVar17;\n          if (*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)) break;\ncode_r0x00023a3a:\n          puVar13 = puVar18;\n          if ((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))\n          break;\n          uVar5 = param_1[0x9b];\n          if ((int)uVar5 < 0) {\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }\n          if ((int)uVar5 < (int)uVar19) break;\n          if ((int)uVar5 < 0x8000) goto code_r0x00023a66;\n          pcVar8 = "regular expression too big";\n          *(uint *)(puVar18 + -4) = uVar19;\n          ppbVar15 = (byte **)(puVar18 + -8);\n          *(undefined4 *)(puVar18 + -8) = 5;\n        }\n        goto code_r0x00023a04;\n      }\n    }" { (expression_statement "local_5c[1] = pbVar7 + (int)pbVar12;" (assignment_expression "local_5c[1] = pbVar7 + (int)pbVar12" (subscript_expression "local_5c[1]" identifier [ number_literal ]) = (binary_expression "pbVar7 + (int)pbVar12" identifier + (cast_expression "(int)pbVar12" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "param_1[0x9b] = 0xffffffff;" (assignment_expression "param_1[0x9b] = 0xffffffff" (subscript_expression "param_1[0x9b]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x9a] = 0xffffffff;" (assignment_expression "param_1[0x9a] = 0xffffffff" (subscript_expression "param_1[0x9a]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (local_5c[1] == local_5c[0]) {\ncode_r0x00023b5a:\n        puVar13 = auStack_6c;\n        if (bStack_51 == 0) goto code_r0x00023a30;\n      }\n      else {\n        bVar21 = pbVar7[1];\n        pbVar12 = (byte *)(int)(char)bVar21;\n        if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar7 = (byte *)0xffffffff;\n          local_60 = pbVar12;\n          do {\n            pbVar3 = local_60;\n            if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }\n            pbVar7 = pbVar3 + -0x30;\n            param_1[0x9a] = (uint)pbVar7;\n            local_5c[0] = local_5c[0] + 1;\n            if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }\n            bVar21 = *local_5c[0];\n            local_60 = (byte *)(int)(char)bVar21;\n            pbVar12 = (byte *)(int)(char)bVar21 + -0x30;\n          } while ((byte)pbVar12 < 10);\n          if (bVar21 == 0x2c) {\n            if ((int)pbVar7 < 0) goto code_r0x00023bed;\ncode_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;\n            if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }\n            bVar21 = local_5c[0][1];\n            if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            local_5c[0] = pbVar12;\n            goto code_r0x00023bd8;\n          }\n          param_1[0x9b] = (uint)pbVar7;\n          puVar17 = auStack_6c;\n          if (bStack_51 == 0) goto code_r0x00023a30;\n        }\n        else {\n          if (bVar21 == 0x2c) {\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }\ncode_r0x00023bd8:\n          if (bStack_51 == 0) goto code_r0x00023a3a;\n        }\n        puVar13 = auStack_6c;\n        if (*local_5c[0] == 0x5c) goto code_r0x00023a2b;\n      }" if (parenthesized_expression "(local_5c[1] == local_5c[0])" ( (binary_expression "local_5c[1] == local_5c[0]" (subscript_expression "local_5c[1]" identifier [ number_literal ]) == (subscript_expression "local_5c[0]" identifier [ number_literal ])) )) (compound_statement "{\ncode_r0x00023b5a:\n        puVar13 = auStack_6c;\n        if (bStack_51 == 0) goto code_r0x00023a30;\n      }" { (labeled_statement "code_r0x00023b5a:\n        puVar13 = auStack_6c;" statement_identifier : (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;)) (if_statement "if (bStack_51 == 0) goto code_r0x00023a30;" if (parenthesized_expression "(bStack_51 == 0)" ( (binary_expression "bStack_51 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x00023a30;" goto statement_identifier ;)) }) (else_clause "else {\n        bVar21 = pbVar7[1];\n        pbVar12 = (byte *)(int)(char)bVar21;\n        if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar7 = (byte *)0xffffffff;\n          local_60 = pbVar12;\n          do {\n            pbVar3 = local_60;\n            if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }\n            pbVar7 = pbVar3 + -0x30;\n            param_1[0x9a] = (uint)pbVar7;\n            local_5c[0] = local_5c[0] + 1;\n            if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }\n            bVar21 = *local_5c[0];\n            local_60 = (byte *)(int)(char)bVar21;\n            pbVar12 = (byte *)(int)(char)bVar21 + -0x30;\n          } while ((byte)pbVar12 < 10);\n          if (bVar21 == 0x2c) {\n            if ((int)pbVar7 < 0) goto code_r0x00023bed;\ncode_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;\n            if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }\n            bVar21 = local_5c[0][1];\n            if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            local_5c[0] = pbVar12;\n            goto code_r0x00023bd8;\n          }\n          param_1[0x9b] = (uint)pbVar7;\n          puVar17 = auStack_6c;\n          if (bStack_51 == 0) goto code_r0x00023a30;\n        }\n        else {\n          if (bVar21 == 0x2c) {\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }\ncode_r0x00023bd8:\n          if (bStack_51 == 0) goto code_r0x00023a3a;\n        }\n        puVar13 = auStack_6c;\n        if (*local_5c[0] == 0x5c) goto code_r0x00023a2b;\n      }" else (compound_statement "{\n        bVar21 = pbVar7[1];\n        pbVar12 = (byte *)(int)(char)bVar21;\n        if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar7 = (byte *)0xffffffff;\n          local_60 = pbVar12;\n          do {\n            pbVar3 = local_60;\n            if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }\n            pbVar7 = pbVar3 + -0x30;\n            param_1[0x9a] = (uint)pbVar7;\n            local_5c[0] = local_5c[0] + 1;\n            if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }\n            bVar21 = *local_5c[0];\n            local_60 = (byte *)(int)(char)bVar21;\n            pbVar12 = (byte *)(int)(char)bVar21 + -0x30;\n          } while ((byte)pbVar12 < 10);\n          if (bVar21 == 0x2c) {\n            if ((int)pbVar7 < 0) goto code_r0x00023bed;\ncode_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;\n            if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }\n            bVar21 = local_5c[0][1];\n            if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            local_5c[0] = pbVar12;\n            goto code_r0x00023bd8;\n          }\n          param_1[0x9b] = (uint)pbVar7;\n          puVar17 = auStack_6c;\n          if (bStack_51 == 0) goto code_r0x00023a30;\n        }\n        else {\n          if (bVar21 == 0x2c) {\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }\ncode_r0x00023bd8:\n          if (bStack_51 == 0) goto code_r0x00023a3a;\n        }\n        puVar13 = auStack_6c;\n        if (*local_5c[0] == 0x5c) goto code_r0x00023a2b;\n      }" { (expression_statement "bVar21 = pbVar7[1];" (assignment_expression "bVar21 = pbVar7[1]" identifier = (subscript_expression "pbVar7[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar12 = (byte *)(int)(char)bVar21;" (assignment_expression "pbVar12 = (byte *)(int)(char)bVar21" identifier = (cast_expression "(byte *)(int)(char)bVar21" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)(char)bVar21" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar21" ( (type_descriptor "char" primitive_type) ) identifier)))) ;) (if_statement "if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar7 = (byte *)0xffffffff;\n          local_60 = pbVar12;\n          do {\n            pbVar3 = local_60;\n            if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }\n            pbVar7 = pbVar3 + -0x30;\n            param_1[0x9a] = (uint)pbVar7;\n            local_5c[0] = local_5c[0] + 1;\n            if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }\n            bVar21 = *local_5c[0];\n            local_60 = (byte *)(int)(char)bVar21;\n            pbVar12 = (byte *)(int)(char)bVar21 + -0x30;\n          } while ((byte)pbVar12 < 10);\n          if (bVar21 == 0x2c) {\n            if ((int)pbVar7 < 0) goto code_r0x00023bed;\ncode_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;\n            if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }\n            bVar21 = local_5c[0][1];\n            if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            local_5c[0] = pbVar12;\n            goto code_r0x00023bd8;\n          }\n          param_1[0x9b] = (uint)pbVar7;\n          puVar17 = auStack_6c;\n          if (bStack_51 == 0) goto code_r0x00023a30;\n        }\n        else {\n          if (bVar21 == 0x2c) {\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }\ncode_r0x00023bd8:\n          if (bStack_51 == 0) goto code_r0x00023a3a;\n        }" if (parenthesized_expression "((byte)(bVar21 - 0x30) < 10)" ( (binary_expression "(byte)(bVar21 - 0x30) < 10" (call_expression "(byte)(bVar21 - 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar21 - 0x30)" ( (binary_expression "bVar21 - 0x30" identifier - number_literal) ))) < number_literal) )) (compound_statement "{\n          pbVar7 = (byte *)0xffffffff;\n          local_60 = pbVar12;\n          do {\n            pbVar3 = local_60;\n            if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }\n            pbVar7 = pbVar3 + -0x30;\n            param_1[0x9a] = (uint)pbVar7;\n            local_5c[0] = local_5c[0] + 1;\n            if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }\n            bVar21 = *local_5c[0];\n            local_60 = (byte *)(int)(char)bVar21;\n            pbVar12 = (byte *)(int)(char)bVar21 + -0x30;\n          } while ((byte)pbVar12 < 10);\n          if (bVar21 == 0x2c) {\n            if ((int)pbVar7 < 0) goto code_r0x00023bed;\ncode_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;\n            if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }\n            bVar21 = local_5c[0][1];\n            if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            local_5c[0] = pbVar12;\n            goto code_r0x00023bd8;\n          }\n          param_1[0x9b] = (uint)pbVar7;\n          puVar17 = auStack_6c;\n          if (bStack_51 == 0) goto code_r0x00023a30;\n        }" { (expression_statement "pbVar7 = (byte *)0xffffffff;" (assignment_expression "pbVar7 = (byte *)0xffffffff" identifier = (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_60 = pbVar12;" (assignment_expression "local_60 = pbVar12" identifier = identifier) ;) (do_statement "do {\n            pbVar3 = local_60;\n            if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }\n            pbVar7 = pbVar3 + -0x30;\n            param_1[0x9a] = (uint)pbVar7;\n            local_5c[0] = local_5c[0] + 1;\n            if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }\n            bVar21 = *local_5c[0];\n            local_60 = (byte *)(int)(char)bVar21;\n            pbVar12 = (byte *)(int)(char)bVar21 + -0x30;\n          } while ((byte)pbVar12 < 10);" do (compound_statement "{\n            pbVar3 = local_60;\n            if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }\n            pbVar7 = pbVar3 + -0x30;\n            param_1[0x9a] = (uint)pbVar7;\n            local_5c[0] = local_5c[0] + 1;\n            if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }\n            bVar21 = *local_5c[0];\n            local_60 = (byte *)(int)(char)bVar21;\n            pbVar12 = (byte *)(int)(char)bVar21 + -0x30;\n          }" { (expression_statement "pbVar3 = local_60;" (assignment_expression "pbVar3 = local_60" identifier = identifier) ;) (if_statement "if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }" if (parenthesized_expression "((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))" ( (binary_expression "(-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10))" (parenthesized_expression "(-1 < (int)pbVar7)" ( (binary_expression "-1 < (int)pbVar7" number_literal < (cast_expression "(int)pbVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10))" ( (comma_expression "pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)" (assignment_expression "pbVar3 = local_60 + (int)pbVar7 * 10" identifier = (binary_expression "local_60 + (int)pbVar7 * 10" identifier + (binary_expression "(int)pbVar7 * 10" (cast_expression "(int)pbVar7" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) , (binary_expression "0x8030 < (int)(local_60 + (int)pbVar7 * 10)" number_literal < (cast_expression "(int)(local_60 + (int)pbVar7 * 10)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_60 + (int)pbVar7 * 10)" ( (binary_expression "local_60 + (int)pbVar7 * 10" identifier + (binary_expression "(int)pbVar7 * 10" (cast_expression "(int)pbVar7" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ))) )) (compound_statement "{\n              pbVar3 = (byte *)0x8030;\n            }" { (expression_statement "pbVar3 = (byte *)0x8030;" (assignment_expression "pbVar3 = (byte *)0x8030" identifier = (cast_expression "(byte *)0x8030" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "pbVar7 = pbVar3 + -0x30;" (assignment_expression "pbVar7 = pbVar3 + -0x30" identifier = (binary_expression "pbVar3 + -0x30" identifier + number_literal)) ;) (expression_statement "param_1[0x9a] = (uint)pbVar7;" (assignment_expression "param_1[0x9a] = (uint)pbVar7" (subscript_expression "param_1[0x9a]" identifier [ number_literal ]) = (cast_expression "(uint)pbVar7" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_5c[0] = local_5c[0] + 1;" (assignment_expression "local_5c[0] = local_5c[0] + 1" (subscript_expression "local_5c[0]" identifier [ number_literal ]) = (binary_expression "local_5c[0] + 1" (subscript_expression "local_5c[0]" identifier [ number_literal ]) + number_literal)) ;) (if_statement "if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }" if (parenthesized_expression "(local_5c[1] == local_5c[0])" ( (binary_expression "local_5c[1] == local_5c[0]" (subscript_expression "local_5c[1]" identifier [ number_literal ]) == (subscript_expression "local_5c[0]" identifier [ number_literal ])) )) (compound_statement "{\n              goto code_r0x00023b5a;\n            }" { (goto_statement "goto code_r0x00023b5a;" goto statement_identifier ;) })) (expression_statement "bVar21 = *local_5c[0];" (assignment_expression "bVar21 = *local_5c[0]" identifier = (pointer_expression "*local_5c[0]" * (subscript_expression "local_5c[0]" identifier [ number_literal ]))) ;) (expression_statement "local_60 = (byte *)(int)(char)bVar21;" (assignment_expression "local_60 = (byte *)(int)(char)bVar21" identifier = (cast_expression "(byte *)(int)(char)bVar21" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)(char)bVar21" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar21" ( (type_descriptor "char" primitive_type) ) identifier)))) ;) (expression_statement "pbVar12 = (byte *)(int)(char)bVar21 + -0x30;" (assignment_expression "pbVar12 = (byte *)(int)(char)bVar21 + -0x30" identifier = (binary_expression "(byte *)(int)(char)bVar21 + -0x30" (cast_expression "(byte *)(int)(char)bVar21" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)(char)bVar21" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar21" ( (type_descriptor "char" primitive_type) ) identifier))) + number_literal)) ;) }) while (parenthesized_expression "((byte)pbVar12 < 10)" ( (binary_expression "(byte)pbVar12 < 10" (cast_expression "(byte)pbVar12" ( (type_descriptor "byte" type_identifier) ) identifier) < number_literal) )) ;) (if_statement "if (bVar21 == 0x2c) {\n            if ((int)pbVar7 < 0) goto code_r0x00023bed;\ncode_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;\n            if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }\n            bVar21 = local_5c[0][1];\n            if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            local_5c[0] = pbVar12;\n            goto code_r0x00023bd8;\n          }" if (parenthesized_expression "(bVar21 == 0x2c)" ( (binary_expression "bVar21 == 0x2c" identifier == number_literal) )) (compound_statement "{\n            if ((int)pbVar7 < 0) goto code_r0x00023bed;\ncode_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;\n            if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }\n            bVar21 = local_5c[0][1];\n            if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            local_5c[0] = pbVar12;\n            goto code_r0x00023bd8;\n          }" { (if_statement "if ((int)pbVar7 < 0) goto code_r0x00023bed;" if (parenthesized_expression "((int)pbVar7 < 0)" ( (binary_expression "(int)pbVar7 < 0" (cast_expression "(int)pbVar7" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto code_r0x00023bed;" goto statement_identifier ;)) (labeled_statement "code_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;" statement_identifier : (expression_statement "pbVar12 = local_5c[0] + 1;" (assignment_expression "pbVar12 = local_5c[0] + 1" identifier = (binary_expression "local_5c[0] + 1" (subscript_expression "local_5c[0]" identifier [ number_literal ]) + number_literal)) ;)) (if_statement "if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }" if (parenthesized_expression "(local_5c[1] == pbVar12)" ( (binary_expression "local_5c[1] == pbVar12" (subscript_expression "local_5c[1]" identifier [ number_literal ]) == identifier) )) (compound_statement "{\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }" { (labeled_statement "code_r0x00023bca:\n              local_5c[0] = local_5c[1];" statement_identifier : (expression_statement "local_5c[0] = local_5c[1];" (assignment_expression "local_5c[0] = local_5c[1]" (subscript_expression "local_5c[0]" identifier [ number_literal ]) = (subscript_expression "local_5c[1]" identifier [ number_literal ])) ;)) (goto_statement "goto code_r0x00023b5a;" goto statement_identifier ;) })) (expression_statement "bVar21 = local_5c[0][1];" (assignment_expression "bVar21 = local_5c[0][1]" identifier = (subscript_expression "local_5c[0][1]" (subscript_expression "local_5c[0]" identifier [ number_literal ]) [ number_literal ])) ;) (if_statement "if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }" if (parenthesized_expression "((byte)(bVar21 - 0x30) < 10)" ( (binary_expression "(byte)(bVar21 - 0x30) < 10" (call_expression "(byte)(bVar21 - 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar21 - 0x30)" ( (binary_expression "bVar21 - 0x30" identifier - number_literal) ))) < number_literal) )) (compound_statement "{\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }" { (expression_statement "uVar19 = 0xffffffff;" (assignment_expression "uVar19 = 0xffffffff" identifier = number_literal) ;) (do_statement "do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);" do (compound_statement "{\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              }" { (expression_statement "iVar10 = (int)(char)bVar21;" (assignment_expression "iVar10 = (int)(char)bVar21" identifier = (cast_expression "(int)(char)bVar21" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar21" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (if_statement "if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }" if (parenthesized_expression "((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10))" ( (binary_expression "(-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)" (parenthesized_expression "(-1 < (int)uVar19)" ( (binary_expression "-1 < (int)uVar19" number_literal < (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)" ( (comma_expression "iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10" (assignment_expression "iVar10 = iVar10 + uVar19 * 10" identifier = (binary_expression "iVar10 + uVar19 * 10" identifier + (binary_expression "uVar19 * 10" identifier * number_literal))) , (binary_expression "0x8030 < iVar10" number_literal < identifier)) ))) )) (compound_statement "{\n                  iVar10 = 0x8030;\n                }" { (expression_statement "iVar10 = 0x8030;" (assignment_expression "iVar10 = 0x8030" identifier = number_literal) ;) })) (expression_statement "uVar19 = iVar10 - 0x30;" (assignment_expression "uVar19 = iVar10 - 0x30" identifier = (binary_expression "iVar10 - 0x30" identifier - number_literal)) ;) (expression_statement "param_1[0x9b] = uVar19;" (assignment_expression "param_1[0x9b] = uVar19" (subscript_expression "param_1[0x9b]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (if_statement "if (local_5c[1] == pbVar12) goto code_r0x00023bca;" if (parenthesized_expression "(local_5c[1] == pbVar12)" ( (binary_expression "local_5c[1] == pbVar12" (subscript_expression "local_5c[1]" identifier [ number_literal ]) == identifier) )) (goto_statement "goto code_r0x00023bca;" goto statement_identifier ;)) (expression_statement "bVar21 = *pbVar12;" (assignment_expression "bVar21 = *pbVar12" identifier = (pointer_expression "*pbVar12" * identifier)) ;) }) while (parenthesized_expression "((byte)(bVar21 - 0x30) < 10)" ( (binary_expression "(byte)(bVar21 - 0x30) < 10" (call_expression "(byte)(bVar21 - 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar21 - 0x30)" ( (binary_expression "bVar21 - 0x30" identifier - number_literal) ))) < number_literal) )) ;) })) (expression_statement "local_5c[0] = pbVar12;" (assignment_expression "local_5c[0] = pbVar12" (subscript_expression "local_5c[0]" identifier [ number_literal ]) = identifier) ;) (goto_statement "goto code_r0x00023bd8;" goto statement_identifier ;) })) (expression_statement "param_1[0x9b] = (uint)pbVar7;" (assignment_expression "param_1[0x9b] = (uint)pbVar7" (subscript_expression "param_1[0x9b]" identifier [ number_literal ]) = (cast_expression "(uint)pbVar7" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar17 = auStack_6c;" (assignment_expression "puVar17 = auStack_6c" identifier = identifier) ;) (if_statement "if (bStack_51 == 0) goto code_r0x00023a30;" if (parenthesized_expression "(bStack_51 == 0)" ( (binary_expression "bStack_51 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x00023a30;" goto statement_identifier ;)) }) (else_clause "else {\n          if (bVar21 == 0x2c) {\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }\ncode_r0x00023bd8:\n          if (bStack_51 == 0) goto code_r0x00023a3a;\n        }" else (compound_statement "{\n          if (bVar21 == 0x2c) {\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }\ncode_r0x00023bd8:\n          if (bStack_51 == 0) goto code_r0x00023a3a;\n        }" { (if_statement "if (bVar21 == 0x2c) {\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }" if (parenthesized_expression "(bVar21 == 0x2c)" ( (binary_expression "bVar21 == 0x2c" identifier == number_literal) )) (compound_statement "{\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }" { (labeled_statement "code_r0x00023bed:\n            param_1[0x9a] = 0;" statement_identifier : (expression_statement "param_1[0x9a] = 0;" (assignment_expression "param_1[0x9a] = 0" (subscript_expression "param_1[0x9a]" identifier [ number_literal ]) = number_literal) ;)) (goto_statement "goto code_r0x00023b6e;" goto statement_identifier ;) })) (labeled_statement "code_r0x00023bd8:\n          if (bStack_51 == 0) goto code_r0x00023a3a;" statement_identifier : (if_statement "if (bStack_51 == 0) goto code_r0x00023a3a;" if (parenthesized_expression "(bStack_51 == 0)" ( (binary_expression "bStack_51 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x00023a3a;" goto statement_identifier ;))) }))) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (if_statement "if (*local_5c[0] == 0x5c) goto code_r0x00023a2b;" if (parenthesized_expression "(*local_5c[0] == 0x5c)" ( (binary_expression "*local_5c[0] == 0x5c" (pointer_expression "*local_5c[0]" * (subscript_expression "local_5c[0]" identifier [ number_literal ])) == number_literal) )) (goto_statement "goto code_r0x00023a2b;" goto statement_identifier ;)) }))) (labeled_statement "code_r0x00023a04:\n      if ((*(uint *)(puVar13 + 0x1c) & 0x200000) == 0) {\n        *(byte **)(puVar13 + -4) = pbVar12;\n        pcVar8 = "invalid content of \\{\\}";\n        ppbVar15 = (byte **)(puVar13 + -8);\n        *(undefined4 *)(puVar13 + -8) = 5;\ncode_r0x00023a1b:\n        while( true ) {\n          *(char **)((int)ppbVar15 + -4) = pcVar8;\n          puVar16 = (undefined1 *)((int)ppbVar15 + -8);\n          *(undefined4 *)((int)ppbVar15 + -8) = 0;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23;\n          uVar11 = dcgettext();\n          *(undefined4 *)((int)ppbVar15 + -8) = uVar11;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b;\n          FUN_0001be40();\n          pbVar12 = extraout_ECX;\ncode_r0x00023a2b:\n          *(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;\n          puVar17 = puVar16;\ncode_r0x00023a30:\n          puVar13 = puVar17;\n          puVar18 = puVar17;\n          if (*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)) break;\ncode_r0x00023a3a:\n          puVar13 = puVar18;\n          if ((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))\n          break;\n          uVar5 = param_1[0x9b];\n          if ((int)uVar5 < 0) {\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }\n          if ((int)uVar5 < (int)uVar19) break;\n          if ((int)uVar5 < 0x8000) goto code_r0x00023a66;\n          pcVar8 = "regular expression too big";\n          *(uint *)(puVar18 + -4) = uVar19;\n          ppbVar15 = (byte **)(puVar18 + -8);\n          *(undefined4 *)(puVar18 + -8) = 5;\n        }\n        goto code_r0x00023a04;\n      }" statement_identifier : (if_statement "if ((*(uint *)(puVar13 + 0x1c) & 0x200000) == 0) {\n        *(byte **)(puVar13 + -4) = pbVar12;\n        pcVar8 = "invalid content of \\{\\}";\n        ppbVar15 = (byte **)(puVar13 + -8);\n        *(undefined4 *)(puVar13 + -8) = 5;\ncode_r0x00023a1b:\n        while( true ) {\n          *(char **)((int)ppbVar15 + -4) = pcVar8;\n          puVar16 = (undefined1 *)((int)ppbVar15 + -8);\n          *(undefined4 *)((int)ppbVar15 + -8) = 0;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23;\n          uVar11 = dcgettext();\n          *(undefined4 *)((int)ppbVar15 + -8) = uVar11;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b;\n          FUN_0001be40();\n          pbVar12 = extraout_ECX;\ncode_r0x00023a2b:\n          *(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;\n          puVar17 = puVar16;\ncode_r0x00023a30:\n          puVar13 = puVar17;\n          puVar18 = puVar17;\n          if (*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)) break;\ncode_r0x00023a3a:\n          puVar13 = puVar18;\n          if ((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))\n          break;\n          uVar5 = param_1[0x9b];\n          if ((int)uVar5 < 0) {\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }\n          if ((int)uVar5 < (int)uVar19) break;\n          if ((int)uVar5 < 0x8000) goto code_r0x00023a66;\n          pcVar8 = "regular expression too big";\n          *(uint *)(puVar18 + -4) = uVar19;\n          ppbVar15 = (byte **)(puVar18 + -8);\n          *(undefined4 *)(puVar18 + -8) = 5;\n        }\n        goto code_r0x00023a04;\n      }" if (parenthesized_expression "((*(uint *)(puVar13 + 0x1c) & 0x200000) == 0)" ( (binary_expression "(*(uint *)(puVar13 + 0x1c) & 0x200000) == 0" (parenthesized_expression "(*(uint *)(puVar13 + 0x1c) & 0x200000)" ( (binary_expression "*(uint *)(puVar13 + 0x1c) & 0x200000" (pointer_expression "*(uint *)(puVar13 + 0x1c)" * (cast_expression "(uint *)(puVar13 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x1c)" ( (binary_expression "puVar13 + 0x1c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(byte **)(puVar13 + -4) = pbVar12;\n        pcVar8 = "invalid content of \\{\\}";\n        ppbVar15 = (byte **)(puVar13 + -8);\n        *(undefined4 *)(puVar13 + -8) = 5;\ncode_r0x00023a1b:\n        while( true ) {\n          *(char **)((int)ppbVar15 + -4) = pcVar8;\n          puVar16 = (undefined1 *)((int)ppbVar15 + -8);\n          *(undefined4 *)((int)ppbVar15 + -8) = 0;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23;\n          uVar11 = dcgettext();\n          *(undefined4 *)((int)ppbVar15 + -8) = uVar11;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b;\n          FUN_0001be40();\n          pbVar12 = extraout_ECX;\ncode_r0x00023a2b:\n          *(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;\n          puVar17 = puVar16;\ncode_r0x00023a30:\n          puVar13 = puVar17;\n          puVar18 = puVar17;\n          if (*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)) break;\ncode_r0x00023a3a:\n          puVar13 = puVar18;\n          if ((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))\n          break;\n          uVar5 = param_1[0x9b];\n          if ((int)uVar5 < 0) {\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }\n          if ((int)uVar5 < (int)uVar19) break;\n          if ((int)uVar5 < 0x8000) goto code_r0x00023a66;\n          pcVar8 = "regular expression too big";\n          *(uint *)(puVar18 + -4) = uVar19;\n          ppbVar15 = (byte **)(puVar18 + -8);\n          *(undefined4 *)(puVar18 + -8) = 5;\n        }\n        goto code_r0x00023a04;\n      }" { (expression_statement "*(byte **)(puVar13 + -4) = pbVar12;" (assignment_expression "*(byte **)(puVar13 + -4) = pbVar12" (pointer_expression "*(byte **)(puVar13 + -4)" * (cast_expression "(byte **)(puVar13 + -4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -4)" ( (binary_expression "puVar13 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar8 = "invalid content of \\{\\}";" (assignment_expression "pcVar8 = "invalid content of \\{\\}"" identifier = (string_literal ""invalid content of \\{\\}"" " string_content escape_sequence string_content escape_sequence string_content ")) ;) (expression_statement "ppbVar15 = (byte **)(puVar13 + -8);" (assignment_expression "ppbVar15 = (byte **)(puVar13 + -8)" identifier = (cast_expression "(byte **)(puVar13 + -8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -8)" ( (binary_expression "puVar13 + -8" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *)(puVar13 + -8) = 5;" (assignment_expression "*(undefined4 *)(puVar13 + -8) = 5" (pointer_expression "*(undefined4 *)(puVar13 + -8)" * (cast_expression "(undefined4 *)(puVar13 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -8)" ( (binary_expression "puVar13 + -8" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "code_r0x00023a1b:\n        while( true ) {\n          *(char **)((int)ppbVar15 + -4) = pcVar8;\n          puVar16 = (undefined1 *)((int)ppbVar15 + -8);\n          *(undefined4 *)((int)ppbVar15 + -8) = 0;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23;\n          uVar11 = dcgettext();\n          *(undefined4 *)((int)ppbVar15 + -8) = uVar11;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b;\n          FUN_0001be40();\n          pbVar12 = extraout_ECX;\ncode_r0x00023a2b:\n          *(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;\n          puVar17 = puVar16;\ncode_r0x00023a30:\n          puVar13 = puVar17;\n          puVar18 = puVar17;\n          if (*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)) break;\ncode_r0x00023a3a:\n          puVar13 = puVar18;\n          if ((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))\n          break;\n          uVar5 = param_1[0x9b];\n          if ((int)uVar5 < 0) {\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }\n          if ((int)uVar5 < (int)uVar19) break;\n          if ((int)uVar5 < 0x8000) goto code_r0x00023a66;\n          pcVar8 = "regular expression too big";\n          *(uint *)(puVar18 + -4) = uVar19;\n          ppbVar15 = (byte **)(puVar18 + -8);\n          *(undefined4 *)(puVar18 + -8) = 5;\n        }" statement_identifier : (while_statement "while( true ) {\n          *(char **)((int)ppbVar15 + -4) = pcVar8;\n          puVar16 = (undefined1 *)((int)ppbVar15 + -8);\n          *(undefined4 *)((int)ppbVar15 + -8) = 0;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23;\n          uVar11 = dcgettext();\n          *(undefined4 *)((int)ppbVar15 + -8) = uVar11;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b;\n          FUN_0001be40();\n          pbVar12 = extraout_ECX;\ncode_r0x00023a2b:\n          *(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;\n          puVar17 = puVar16;\ncode_r0x00023a30:\n          puVar13 = puVar17;\n          puVar18 = puVar17;\n          if (*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)) break;\ncode_r0x00023a3a:\n          puVar13 = puVar18;\n          if ((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))\n          break;\n          uVar5 = param_1[0x9b];\n          if ((int)uVar5 < 0) {\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }\n          if ((int)uVar5 < (int)uVar19) break;\n          if ((int)uVar5 < 0x8000) goto code_r0x00023a66;\n          pcVar8 = "regular expression too big";\n          *(uint *)(puVar18 + -4) = uVar19;\n          ppbVar15 = (byte **)(puVar18 + -8);\n          *(undefined4 *)(puVar18 + -8) = 5;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          *(char **)((int)ppbVar15 + -4) = pcVar8;\n          puVar16 = (undefined1 *)((int)ppbVar15 + -8);\n          *(undefined4 *)((int)ppbVar15 + -8) = 0;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23;\n          uVar11 = dcgettext();\n          *(undefined4 *)((int)ppbVar15 + -8) = uVar11;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b;\n          FUN_0001be40();\n          pbVar12 = extraout_ECX;\ncode_r0x00023a2b:\n          *(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;\n          puVar17 = puVar16;\ncode_r0x00023a30:\n          puVar13 = puVar17;\n          puVar18 = puVar17;\n          if (*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)) break;\ncode_r0x00023a3a:\n          puVar13 = puVar18;\n          if ((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))\n          break;\n          uVar5 = param_1[0x9b];\n          if ((int)uVar5 < 0) {\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }\n          if ((int)uVar5 < (int)uVar19) break;\n          if ((int)uVar5 < 0x8000) goto code_r0x00023a66;\n          pcVar8 = "regular expression too big";\n          *(uint *)(puVar18 + -4) = uVar19;\n          ppbVar15 = (byte **)(puVar18 + -8);\n          *(undefined4 *)(puVar18 + -8) = 5;\n        }" { (expression_statement "*(char **)((int)ppbVar15 + -4) = pcVar8;" (assignment_expression "*(char **)((int)ppbVar15 + -4) = pcVar8" (pointer_expression "*(char **)((int)ppbVar15 + -4)" * (cast_expression "(char **)((int)ppbVar15 + -4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -4)" ( (binary_expression "(int)ppbVar15 + -4" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "puVar16 = (undefined1 *)((int)ppbVar15 + -8);" (assignment_expression "puVar16 = (undefined1 *)((int)ppbVar15 + -8)" identifier = (cast_expression "(undefined1 *)((int)ppbVar15 + -8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -8)" ( (binary_expression "(int)ppbVar15 + -8" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*(undefined4 *)((int)ppbVar15 + -8) = 0;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -8) = 0" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -8)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -8)" ( (binary_expression "(int)ppbVar15 + -8" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23;" (assignment_expression "*(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23" (pointer_expression "*(undefined **)((int)ppbVar15 + -0xc)" * (cast_expression "(undefined **)((int)ppbVar15 + -0xc)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -0xc)" ( (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&UNK_00023a23" & identifier)) ;) (expression_statement "uVar11 = dcgettext();" (assignment_expression "uVar11 = dcgettext()" identifier = (call_expression "dcgettext()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)((int)ppbVar15 + -8) = uVar11;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -8) = uVar11" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -8)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -8)" ( (binary_expression "(int)ppbVar15 + -8" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b;" (assignment_expression "*(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b" (pointer_expression "*(undefined **)((int)ppbVar15 + -0xc)" * (cast_expression "(undefined **)((int)ppbVar15 + -0xc)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -0xc)" ( (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&UNK_00023a2b" & identifier)) ;) (expression_statement "FUN_0001be40();" (call_expression "FUN_0001be40()" identifier (argument_list "()" ( ))) ;) (expression_statement "pbVar12 = extraout_ECX;" (assignment_expression "pbVar12 = extraout_ECX" identifier = identifier) ;) (labeled_statement "code_r0x00023a2b:\n          *(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;" statement_identifier : (expression_statement "*(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;" (assignment_expression "*(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1" (pointer_expression "*(int *)(puVar16 + 0x10)" * (cast_expression "(int *)(puVar16 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x10)" ( (binary_expression "puVar16 + 0x10" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar16 + 0x10) + 1" (pointer_expression "*(int *)(puVar16 + 0x10)" * (cast_expression "(int *)(puVar16 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x10)" ( (binary_expression "puVar16 + 0x10" identifier + number_literal) )))) + number_literal)) ;)) (expression_statement "puVar17 = puVar16;" (assignment_expression "puVar17 = puVar16" identifier = identifier) ;) (labeled_statement "code_r0x00023a30:\n          puVar13 = puVar17;" statement_identifier : (expression_statement "puVar13 = puVar17;" (assignment_expression "puVar13 = puVar17" identifier = identifier) ;)) (expression_statement "puVar18 = puVar17;" (assignment_expression "puVar18 = puVar17" identifier = identifier) ;) (if_statement "if (*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)) break;" if (parenthesized_expression "(*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10))" ( (binary_expression "*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)" (pointer_expression "*(int *)(puVar17 + 0x14)" * (cast_expression "(int *)(puVar17 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x14)" ( (binary_expression "puVar17 + 0x14" identifier + number_literal) )))) == (pointer_expression "*(int *)(puVar17 + 0x10)" * (cast_expression "(int *)(puVar17 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x10)" ( (binary_expression "puVar17 + 0x10" identifier + number_literal) ))))) )) (break_statement "break;" break ;)) (labeled_statement "code_r0x00023a3a:\n          puVar13 = puVar18;" statement_identifier : (expression_statement "puVar13 = puVar18;" (assignment_expression "puVar13 = puVar18" identifier = identifier) ;)) (if_statement "if ((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))\n          break;" if (parenthesized_expression "((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))" ( (binary_expression "(**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0)" (parenthesized_expression "(**(char **)(puVar18 + 0x10) != '}')" ( (binary_expression "**(char **)(puVar18 + 0x10) != '}'" (pointer_expression "**(char **)(puVar18 + 0x10)" * (pointer_expression "*(char **)(puVar18 + 0x10)" * (cast_expression "(char **)(puVar18 + 0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x10)" ( (binary_expression "puVar18 + 0x10" identifier + number_literal) ))))) != (char_literal "'}'" ' character ')) )) || (parenthesized_expression "(uVar19 = param_1[0x9a], (int)uVar19 < 0)" ( (comma_expression "uVar19 = param_1[0x9a], (int)uVar19 < 0" (assignment_expression "uVar19 = param_1[0x9a]" identifier = (subscript_expression "param_1[0x9a]" identifier [ number_literal ])) , (binary_expression "(int)uVar19 < 0" (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ))) )) (break_statement "break;" break ;)) (expression_statement "uVar5 = param_1[0x9b];" (assignment_expression "uVar5 = param_1[0x9b]" identifier = (subscript_expression "param_1[0x9b]" identifier [ number_literal ])) ;) (if_statement "if ((int)uVar5 < 0) {\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }" if (parenthesized_expression "((int)uVar5 < 0)" ( (binary_expression "(int)uVar5 < 0" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }" { (labeled_statement "code_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);" statement_identifier : (expression_statement "iVar10 = *(int *)(puVar18 + 0x10);" (assignment_expression "iVar10 = *(int *)(puVar18 + 0x10)" identifier = (pointer_expression "*(int *)(puVar18 + 0x10)" * (cast_expression "(int *)(puVar18 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x10)" ( (binary_expression "puVar18 + 0x10" identifier + number_literal) ))))) ;)) (expression_statement "iVar1 = *(int *)(puVar18 + 0x14);" (assignment_expression "iVar1 = *(int *)(puVar18 + 0x14)" identifier = (pointer_expression "*(int *)(puVar18 + 0x14)" * (cast_expression "(int *)(puVar18 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x14)" ( (binary_expression "puVar18 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(byte *)(param_1 + 0xa3) = 0;" (assignment_expression "*(byte *)(param_1 + 0xa3) = 0" (pointer_expression "*(byte *)(param_1 + 0xa3)" * (cast_expression "(byte *)(param_1 + 0xa3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa3)" ( (binary_expression "param_1 + 0xa3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar19 = 0x104;" (assignment_expression "uVar19 = 0x104" identifier = number_literal) ;) (expression_statement "param_1[0x98] = 0x104;" (assignment_expression "param_1[0x98] = 0x104" (subscript_expression "param_1[0x98]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x96] = iVar10 + 1U;" (assignment_expression "param_1[0x96] = iVar10 + 1U" (subscript_expression "param_1[0x96]" identifier [ number_literal ]) = (binary_expression "iVar10 + 1U" identifier + number_literal)) ;) (expression_statement "param_1[0x97] = iVar1 - (iVar10 + 1U);" (assignment_expression "param_1[0x97] = iVar1 - (iVar10 + 1U)" (subscript_expression "param_1[0x97]" identifier [ number_literal ]) = (binary_expression "iVar1 - (iVar10 + 1U)" identifier - (parenthesized_expression "(iVar10 + 1U)" ( (binary_expression "iVar10 + 1U" identifier + number_literal) )))) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) })) (if_statement "if ((int)uVar5 < (int)uVar19) break;" if (parenthesized_expression "((int)uVar5 < (int)uVar19)" ( (binary_expression "(int)uVar5 < (int)uVar19" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) (break_statement "break;" break ;)) (if_statement "if ((int)uVar5 < 0x8000) goto code_r0x00023a66;" if (parenthesized_expression "((int)uVar5 < 0x8000)" ( (binary_expression "(int)uVar5 < 0x8000" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto code_r0x00023a66;" goto statement_identifier ;)) (expression_statement "pcVar8 = "regular expression too big";" (assignment_expression "pcVar8 = "regular expression too big"" identifier = (string_literal ""regular expression too big"" " string_content ")) ;) (expression_statement "*(uint *)(puVar18 + -4) = uVar19;" (assignment_expression "*(uint *)(puVar18 + -4) = uVar19" (pointer_expression "*(uint *)(puVar18 + -4)" * (cast_expression "(uint *)(puVar18 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -4)" ( (binary_expression "puVar18 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "ppbVar15 = (byte **)(puVar18 + -8);" (assignment_expression "ppbVar15 = (byte **)(puVar18 + -8)" identifier = (cast_expression "(byte **)(puVar18 + -8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *)(puVar18 + -8) = 5;" (assignment_expression "*(undefined4 *)(puVar18 + -8) = 5" (pointer_expression "*(undefined4 *)(puVar18 + -8)" * (cast_expression "(undefined4 *)(puVar18 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = number_literal) ;) }))) (goto_statement "goto code_r0x00023a04;" goto statement_identifier ;) }))) })) (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;) (expression_statement "uVar19 = 0x7b;" (assignment_expression "uVar19 = 0x7b" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x72:\n    bVar21 = 0;\ncode_r0x000233fa:\n    if (((*param_1 & 0x400) != 0) || ((((byte)(*param_1 >> 0xf) ^ 1) & 1) != bVar21)) {\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x7c;\n      puVar13 = auStack_6c;\n      break;\n    }\ncode_r0x000238f1:\n    *(byte *)(param_1 + 0xa3) = 1;\n    uVar19 = 0x106;\n    param_1[0x98] = 0x106;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;" case number_literal : (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" identifier = number_literal) ;) (labeled_statement "code_r0x000233fa:\n    if (((*param_1 & 0x400) != 0) || ((((byte)(*param_1 >> 0xf) ^ 1) & 1) != bVar21)) {\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x7c;\n      puVar13 = auStack_6c;\n      break;\n    }" statement_identifier : (if_statement "if (((*param_1 & 0x400) != 0) || ((((byte)(*param_1 >> 0xf) ^ 1) & 1) != bVar21)) {\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x7c;\n      puVar13 = auStack_6c;\n      break;\n    }" if (parenthesized_expression "(((*param_1 & 0x400) != 0) || ((((byte)(*param_1 >> 0xf) ^ 1) & 1) != bVar21))" ( (binary_expression "((*param_1 & 0x400) != 0) || ((((byte)(*param_1 >> 0xf) ^ 1) & 1) != bVar21)" (parenthesized_expression "((*param_1 & 0x400) != 0)" ( (binary_expression "(*param_1 & 0x400) != 0" (parenthesized_expression "(*param_1 & 0x400)" ( (binary_expression "*param_1 & 0x400" (pointer_expression "*param_1" * identifier) & number_literal) )) != number_literal) )) || (parenthesized_expression "((((byte)(*param_1 >> 0xf) ^ 1) & 1) != bVar21)" ( (binary_expression "(((byte)(*param_1 >> 0xf) ^ 1) & 1) != bVar21" (parenthesized_expression "(((byte)(*param_1 >> 0xf) ^ 1) & 1)" ( (binary_expression "((byte)(*param_1 >> 0xf) ^ 1) & 1" (parenthesized_expression "((byte)(*param_1 >> 0xf) ^ 1)" ( (binary_expression "(byte)(*param_1 >> 0xf) ^ 1" (call_expression "(byte)(*param_1 >> 0xf)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*param_1 >> 0xf)" ( (binary_expression "*param_1 >> 0xf" (pointer_expression "*param_1" * identifier) >> number_literal) ))) ^ number_literal) )) & number_literal) )) != identifier) ))) )) (compound_statement "{\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x7c;\n      puVar13 = auStack_6c;\n      break;\n    }" { (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;) (expression_statement "uVar19 = 0x7c;" (assignment_expression "uVar19 = 0x7c" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (break_statement "break;" break ;) }))) (labeled_statement "code_r0x000238f1:\n    *(byte *)(param_1 + 0xa3) = 1;" statement_identifier : (expression_statement "*(byte *)(param_1 + 0xa3) = 1;" (assignment_expression "*(byte *)(param_1 + 0xa3) = 1" (pointer_expression "*(byte *)(param_1 + 0xa3)" * (cast_expression "(byte *)(param_1 + 0xa3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa3)" ( (binary_expression "param_1 + 0xa3" identifier + number_literal) )))) = number_literal) ;)) (expression_statement "uVar19 = 0x106;" (assignment_expression "uVar19 = 0x106" identifier = number_literal) ;) (expression_statement "param_1[0x98] = 0x106;" (assignment_expression "param_1[0x98] = 0x106" (subscript_expression "param_1[0x98]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;)) })) (labeled_statement "LAB_00023160:\n  puVar14 = puVar13;" statement_identifier : (expression_statement "puVar14 = puVar13;" (assignment_expression "puVar14 = puVar13" identifier = identifier) ;)) (expression_statement "*(byte *)(param_1 + 0xa3) = 0;" (assignment_expression "*(byte *)(param_1 + 0xa3) = 0" (pointer_expression "*(byte *)(param_1 + 0xa3)" * (cast_expression "(byte *)(param_1 + 0xa3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa3)" ( (binary_expression "param_1 + 0xa3" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (bVar21 == 0) {\n    if (*(byte *)((int)param_1 + 5) != 0) {\n      *(undefined4 *)(puVar14 + -4) = 0x2317a;\n      ppuVar6 = __ctype_b_loc();\n      if ((*(byte *)((int)*ppuVar6 + uVar19 * 2 + 1) & 4) != 0) {\n        uVar19 = 0;\n        do {\n          *(undefined4 *)(puVar14 + uVar19 + 0x2c) = 0;\n          uVar19 = uVar19 + 4;\n        } while (uVar19 < 0x20);\n        *(undefined4 *)(puVar14 + -4) = 0x237bd;\n        FUN_0001da50();\ncode_r0x000237bd:\n        *(undefined4 *)(puVar14 + -4) = 0x237c6;\n        iVar10 = FUN_0001e6a0();\n        uVar19 = iVar10 + 0x114;\n      }\n    }\n    param_1[0x98] = uVar19;\n    puVar13 = puVar14;\n  }\n  else {\n    param_1[0x98] = 0x109;\n    uVar19 = 0x109;\n    puVar13 = puVar14;\n  }" if (parenthesized_expression "(bVar21 == 0)" ( (binary_expression "bVar21 == 0" identifier == number_literal) )) (compound_statement "{\n    if (*(byte *)((int)param_1 + 5) != 0) {\n      *(undefined4 *)(puVar14 + -4) = 0x2317a;\n      ppuVar6 = __ctype_b_loc();\n      if ((*(byte *)((int)*ppuVar6 + uVar19 * 2 + 1) & 4) != 0) {\n        uVar19 = 0;\n        do {\n          *(undefined4 *)(puVar14 + uVar19 + 0x2c) = 0;\n          uVar19 = uVar19 + 4;\n        } while (uVar19 < 0x20);\n        *(undefined4 *)(puVar14 + -4) = 0x237bd;\n        FUN_0001da50();\ncode_r0x000237bd:\n        *(undefined4 *)(puVar14 + -4) = 0x237c6;\n        iVar10 = FUN_0001e6a0();\n        uVar19 = iVar10 + 0x114;\n      }\n    }\n    param_1[0x98] = uVar19;\n    puVar13 = puVar14;\n  }" { (if_statement "if (*(byte *)((int)param_1 + 5) != 0) {\n      *(undefined4 *)(puVar14 + -4) = 0x2317a;\n      ppuVar6 = __ctype_b_loc();\n      if ((*(byte *)((int)*ppuVar6 + uVar19 * 2 + 1) & 4) != 0) {\n        uVar19 = 0;\n        do {\n          *(undefined4 *)(puVar14 + uVar19 + 0x2c) = 0;\n          uVar19 = uVar19 + 4;\n        } while (uVar19 < 0x20);\n        *(undefined4 *)(puVar14 + -4) = 0x237bd;\n        FUN_0001da50();\ncode_r0x000237bd:\n        *(undefined4 *)(puVar14 + -4) = 0x237c6;\n        iVar10 = FUN_0001e6a0();\n        uVar19 = iVar10 + 0x114;\n      }\n    }" if (parenthesized_expression "(*(byte *)((int)param_1 + 5) != 0)" ( (binary_expression "*(byte *)((int)param_1 + 5) != 0" (pointer_expression "*(byte *)((int)param_1 + 5)" * (cast_expression "(byte *)((int)param_1 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 5)" ( (binary_expression "(int)param_1 + 5" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n      *(undefined4 *)(puVar14 + -4) = 0x2317a;\n      ppuVar6 = __ctype_b_loc();\n      if ((*(byte *)((int)*ppuVar6 + uVar19 * 2 + 1) & 4) != 0) {\n        uVar19 = 0;\n        do {\n          *(undefined4 *)(puVar14 + uVar19 + 0x2c) = 0;\n          uVar19 = uVar19 + 4;\n        } while (uVar19 < 0x20);\n        *(undefined4 *)(puVar14 + -4) = 0x237bd;\n        FUN_0001da50();\ncode_r0x000237bd:\n        *(undefined4 *)(puVar14 + -4) = 0x237c6;\n        iVar10 = FUN_0001e6a0();\n        uVar19 = iVar10 + 0x114;\n      }\n    }" { (expression_statement "*(undefined4 *)(puVar14 + -4) = 0x2317a;" (assignment_expression "*(undefined4 *)(puVar14 + -4) = 0x2317a" (pointer_expression "*(undefined4 *)(puVar14 + -4)" * (cast_expression "(undefined4 *)(puVar14 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -4)" ( (binary_expression "puVar14 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "ppuVar6 = __ctype_b_loc();" (assignment_expression "ppuVar6 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((*(byte *)((int)*ppuVar6 + uVar19 * 2 + 1) & 4) != 0) {\n        uVar19 = 0;\n        do {\n          *(undefined4 *)(puVar14 + uVar19 + 0x2c) = 0;\n          uVar19 = uVar19 + 4;\n        } while (uVar19 < 0x20);\n        *(undefined4 *)(puVar14 + -4) = 0x237bd;\n        FUN_0001da50();\ncode_r0x000237bd:\n        *(undefined4 *)(puVar14 + -4) = 0x237c6;\n        iVar10 = FUN_0001e6a0();\n        uVar19 = iVar10 + 0x114;\n      }" if (parenthesized_expression "((*(byte *)((int)*ppuVar6 + uVar19 * 2 + 1) & 4) != 0)" ( (binary_expression "(*(byte *)((int)*ppuVar6 + uVar19 * 2 + 1) & 4) != 0" (parenthesized_expression "(*(byte *)((int)*ppuVar6 + uVar19 * 2 + 1) & 4)" ( (binary_expression "*(byte *)((int)*ppuVar6 + uVar19 * 2 + 1) & 4" (pointer_expression "*(byte *)((int)*ppuVar6 + uVar19 * 2 + 1)" * (cast_expression "(byte *)((int)*ppuVar6 + uVar19 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*ppuVar6 + uVar19 * 2 + 1)" ( (binary_expression "(int)*ppuVar6 + uVar19 * 2 + 1" (binary_expression "(int)*ppuVar6 + uVar19 * 2" (cast_expression "(int)*ppuVar6" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*ppuVar6" * identifier)) + (binary_expression "uVar19 * 2" identifier * number_literal)) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        uVar19 = 0;\n        do {\n          *(undefined4 *)(puVar14 + uVar19 + 0x2c) = 0;\n          uVar19 = uVar19 + 4;\n        } while (uVar19 < 0x20);\n        *(undefined4 *)(puVar14 + -4) = 0x237bd;\n        FUN_0001da50();\ncode_r0x000237bd:\n        *(undefined4 *)(puVar14 + -4) = 0x237c6;\n        iVar10 = FUN_0001e6a0();\n        uVar19 = iVar10 + 0x114;\n      }" { (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (do_statement "do {\n          *(undefined4 *)(puVar14 + uVar19 + 0x2c) = 0;\n          uVar19 = uVar19 + 4;\n        } while (uVar19 < 0x20);" do (compound_statement "{\n          *(undefined4 *)(puVar14 + uVar19 + 0x2c) = 0;\n          uVar19 = uVar19 + 4;\n        }" { (expression_statement "*(undefined4 *)(puVar14 + uVar19 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)(puVar14 + uVar19 + 0x2c) = 0" (pointer_expression "*(undefined4 *)(puVar14 + uVar19 + 0x2c)" * (cast_expression "(undefined4 *)(puVar14 + uVar19 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + uVar19 + 0x2c)" ( (binary_expression "puVar14 + uVar19 + 0x2c" (binary_expression "puVar14 + uVar19" identifier + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar19 = uVar19 + 4;" (assignment_expression "uVar19 = uVar19 + 4" identifier = (binary_expression "uVar19 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar19 < 0x20)" ( (binary_expression "uVar19 < 0x20" identifier < number_literal) )) ;) (expression_statement "*(undefined4 *)(puVar14 + -4) = 0x237bd;" (assignment_expression "*(undefined4 *)(puVar14 + -4) = 0x237bd" (pointer_expression "*(undefined4 *)(puVar14 + -4)" * (cast_expression "(undefined4 *)(puVar14 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -4)" ( (binary_expression "puVar14 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0001da50();" (call_expression "FUN_0001da50()" identifier (argument_list "()" ( ))) ;) (labeled_statement "code_r0x000237bd:\n        *(undefined4 *)(puVar14 + -4) = 0x237c6;" statement_identifier : (expression_statement "*(undefined4 *)(puVar14 + -4) = 0x237c6;" (assignment_expression "*(undefined4 *)(puVar14 + -4) = 0x237c6" (pointer_expression "*(undefined4 *)(puVar14 + -4)" * (cast_expression "(undefined4 *)(puVar14 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -4)" ( (binary_expression "puVar14 + -4" identifier + number_literal) )))) = number_literal) ;)) (expression_statement "iVar10 = FUN_0001e6a0();" (assignment_expression "iVar10 = FUN_0001e6a0()" identifier = (call_expression "FUN_0001e6a0()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar19 = iVar10 + 0x114;" (assignment_expression "uVar19 = iVar10 + 0x114" identifier = (binary_expression "iVar10 + 0x114" identifier + number_literal)) ;) })) })) (expression_statement "param_1[0x98] = uVar19;" (assignment_expression "param_1[0x98] = uVar19" (subscript_expression "param_1[0x98]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13 = puVar14;" (assignment_expression "puVar13 = puVar14" identifier = identifier) ;) }) (else_clause "else {\n    param_1[0x98] = 0x109;\n    uVar19 = 0x109;\n    puVar13 = puVar14;\n  }" else (compound_statement "{\n    param_1[0x98] = 0x109;\n    uVar19 = 0x109;\n    puVar13 = puVar14;\n  }" { (expression_statement "param_1[0x98] = 0x109;" (assignment_expression "param_1[0x98] = 0x109" (subscript_expression "param_1[0x98]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar19 = 0x109;" (assignment_expression "uVar19 = 0x109" identifier = number_literal) ;) (expression_statement "puVar13 = puVar14;" (assignment_expression "puVar13 = puVar14" identifier = identifier) ;) }))) (labeled_statement "LAB_0002318d:\n  if (*(int *)(puVar13 + 0x4c) == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar19;\n  }" statement_identifier : (if_statement "if (*(int *)(puVar13 + 0x4c) == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar19;\n  }" if (parenthesized_expression "(*(int *)(puVar13 + 0x4c) == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "*(int *)(puVar13 + 0x4c) == *(int *)(in_GS_OFFSET + 0x14)" (pointer_expression "*(int *)(puVar13 + 0x4c)" * (cast_expression "(int *)(puVar13 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x4c)" ( (binary_expression "puVar13 + 0x4c" identifier + number_literal) )))) == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return uVar19;\n  }" { (return_statement "return uVar19;" return identifier ;) }))) comment (expression_statement "*(undefined **)(puVar13 + -4) = &UNK_00023c01;" (assignment_expression "*(undefined **)(puVar13 + -4) = &UNK_00023c01" (pointer_expression "*(undefined **)(puVar13 + -4)" * (cast_expression "(undefined **)(puVar13 + -4)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -4)" ( (binary_expression "puVar13 + -4" identifier + number_literal) )))) = (pointer_expression "&UNK_00023c01" & identifier)) ;) (expression_statement "FUN_0002c430();" (call_expression "FUN_0002c430()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Type propagation algorithm not settling */\n\ntoken __regparm3 lex(dfa *dfa)\n\n{\n  byte *pbVar1;\n  size_t *psVar2;\n  int iVar3;\n  wint_t wVar4;\n  ushort *puVar5;\n  bool bVar6;\n  byte *pbVar7;\n  uint uVar8;\n  ushort **ppuVar9;\n  size_t sVar10;\n  size_t sVar11;\n  ptrdiff_t pVar12;\n  char *pcVar13;\n  int iVar14;\n  byte *pbVar15;\n  char cVar16;\n  byte *pbVar17;\n  uint uVar18;\n  int iVar19;\n  mbstate_t *pmVar20;\n  int in_GS_OFFSET;\n  byte bVar21;\n  byte *local_60;\n  byte *local_5c;\n  byte local_51;\n  wchar_t wch;\n  charclass ccl;\n  \n  bVar21 = 0;\n  local_60 = (byte *)(dfa->lex).left;\n  iVar3 = *(int *)(in_GS_OFFSET + 0x14);\n  if (local_60 == (byte *)0x0) {\n    (dfa->lex).lasttok = -1;\n    uVar18 = 0xffffffff;\n    goto LAB_0002318d;\n  }\n  local_5c = (byte *)(dfa->lex).ptr;\n  wVar4 = (dfa->localeinfo).sbctowc[*local_5c];\n  if (wVar4 == 0xffffffff) {\n    sVar10 = rpl_mbrtowc(&wch,(char *)local_5c,(size_t)local_60,&dfa->mbs);\n    if (0xfffffffc < sVar10 - 1) {\n      (dfa->mbs).__count = 0;\n      local_5c = (byte *)(dfa->lex).ptr;\n      (dfa->mbs).__value.__wch = 0;\n      local_60 = (byte *)(dfa->lex).left;\n      goto LAB_00023107;\n    }\n    local_60 = (byte *)(dfa->lex).left;\n    (dfa->lex).cur_mb_len = sVar10;\n    (dfa->lex).wctok = wch;\n    local_5c = (byte *)(dfa->lex).ptr;\n    if (sVar10 == 1) goto LAB_00023117;\nLAB_00023235:\n    uVar18 = 0xffffffff;\n    (dfa->lex).ptr = (char *)(local_5c + sVar10);\n    cVar16 = (dfa->localeinfo).multibyte;\n    (dfa->lex).left = (int)local_60 - sVar10;\n    goto LAB_00023160;\n  }\nLAB_00023107:\n  (dfa->lex).wctok = wVar4;\n  (dfa->lex).cur_mb_len = 1;\nLAB_00023117:\n  uVar18 = (uint)*local_5c;\n  pbVar1 = local_5c + 1;\n  (dfa->lex).ptr = (char *)pbVar1;\n  pbVar15 = local_60 + -1;\n  (dfa->lex).left = (size_t)pbVar15;\n  if (0x72 < (byte)(uVar18 - 10)) goto _L1538;\n  uVar8 = uVar18 - 10 & 0xff;\n  pbVar17 = (byte *)((int)&_GLOBAL_OFFSET_TABLE_ + (&switchD_00023149::switchdataD_0002ef08)[uVar8])\n  ;\n  switch(uVar8) {\n  case 0:\n    uVar18 = (dfa->syntax).syntax_bits;\n    if (((uVar18 & 0x400) != 0) || ((uVar18 & 0x800) == 0)) {\n_L1503:\n      cVar16 = (dfa->localeinfo).multibyte;\n      uVar18 = 10;\n      break;\n    }\n    goto LAB_000238f1;\n  default:\n    goto _L1538;\n  case 0x1a:\n    uVar18 = (dfa->syntax).syntax_bits;\n    if ((((((uVar18 & 8) != 0) || (pbVar15 == (byte *)0x0)) ||\n         ((pbVar17 = (byte *)((uVar18 >> 0xd ^ 1) & 1), pbVar17 < pbVar15 &&\n          (pbVar1[(uint)(local_5c[1] == 0x5c) & (uint)pbVar17] == 0x29)))) ||\n        ((pbVar17 = (byte *)((uVar18 >> 0xf ^ 1) & 1), pbVar17 < pbVar15 &&\n         (pbVar1[(uint)pbVar17 & (uint)(local_5c[1] == 0x5c)] == 0x7c)))) ||\n       (((uVar18 & 0x800) != 0 && (local_5c[1] == 10)))) {\nLAB_00023868:\n      (dfa->lex).lasttok = 0x10d;\n      uVar18 = 0x10d;\n      goto LAB_0002318d;\n    }\n_L1438:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x24;\n    break;\n  case 0x1d:\n_L1449:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x27;\n    break;\n  case 0x1e:\n    bVar21 = 0;\nLAB_00023262:\n    if ((((byte)((dfa->syntax).syntax_bits >> 0xd) ^ 1) & 1) == bVar21) {\n      psVar2 = &(dfa->lex).parens;\n      *psVar2 = *psVar2 + 1;\n      uVar18 = 0x107;\n      (dfa->lex).laststart = true;\n      (dfa->lex).lasttok = 0x107;\n      goto LAB_0002318d;\n    }\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x28;\n    break;\n  case 0x1f:\n    bVar21 = 0;\nLAB_0002351a:\n    uVar18 = (dfa->syntax).syntax_bits;\n    if (((((byte)(uVar18 >> 0xd) ^ 1) & 1) == bVar21) &&\n       ((sVar10 = (dfa->lex).parens, sVar10 != 0 || ((uVar18 & 0x20000) == 0)))) {\n      (dfa->lex).laststart = false;\n      uVar18 = 0x108;\n      (dfa->lex).parens = sVar10 - 1;\n      (dfa->lex).lasttok = 0x108;\n      goto LAB_0002318d;\n    }\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x29;\n    break;\n  case 0x20:\n    if ((((dfa->syntax).syntax_bits & 0x10) != 0) || ((dfa->lex).laststart == false)) {\n      (dfa->lex).lasttok = 0x102;\n      uVar18 = 0x102;\n      goto LAB_0002318d;\n    }\n_L1469:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x2a;\n    break;\n  case 0x21:\n    bVar21 = 0;\nLAB_000234d2:\n    uVar18 = (dfa->syntax).syntax_bits;\n    if ((((uVar18 & 0x400) == 0) && (((byte)(uVar18 >> 1) & 1) == bVar21)) &&\n       (((uVar18 & 0x10) != 0 || ((dfa->lex).laststart == false)))) {\n      (dfa->lex).lasttok = 0x103;\n      uVar18 = 0x103;\n      goto LAB_0002318d;\n    }\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x2b;\n    break;\n  case 0x24:\n    bVar6 = false;\nLAB_0002336a:\n    cVar16 = (dfa->localeinfo).multibyte;\n    if (!bVar6) {\n      sVar10 = dfa->canychar;\n      if (sVar10 == 0xffffffff) {\n        uVar18 = (dfa->syntax).syntax_bits;\n        ccl.w[0] = 0xffffffff;\n        ccl.w[1] = 0xffffffff;\n        ccl.w[2] = 0xffffffff;\n        ccl.w[3] = 0xffffffff;\n        ccl.w[4] = 0xffffffff;\n        ccl.w[5] = 0xffffffff;\n        ccl.w[6] = 0xffffffff;\n        ccl.w[7] = 0xffffffff;\n        if ((uVar18 & 0x40) == 0) {\n          ccl.w[0] = 0xfffffbff;\n        }\n        if ((uVar18 & 0x80) != 0) {\n          ccl.w[0] = ccl.w[0] & 0xfffffffe;\n        }\n        if ((_Bool)cVar16 != false) {\n          uVar18 = 0;\n          do {\n            if ((dfa->localeinfo).sbctowc[uVar18] == 0xffffffff) {\n              ccl.w[uVar18 >> 5] = ccl.w[uVar18 >> 5] & ~(1 << ((byte)uVar18 & 0x1f));\n            }\n            uVar18 = uVar18 + 1;\n          } while (uVar18 != 0x100);\n        }\n        sVar10 = charclass_index(dfa,&ccl);\n        cVar16 = (dfa->localeinfo).multibyte;\n        dfa->canychar = sVar10;\n      }\n      (dfa->lex).laststart = false;\n      uVar18 = 0x10a;\n      if (cVar16 == '\0') {\n        uVar18 = sVar10 + 0x114;\n      }\n      (dfa->lex).lasttok = uVar18;\n      goto LAB_0002318d;\n    }\n    uVar18 = 0x2e;\n    break;\n  case 0x32:\n_L1452:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x3c;\n    break;\n  case 0x34:\n_L1455:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x3e;\n    break;\n  case 0x35:\n    bVar21 = 0;\nLAB_000233b2:\n    uVar18 = (dfa->syntax).syntax_bits;\n    if ((((uVar18 & 0x400) == 0) && (((byte)(uVar18 >> 1) & 1) == bVar21)) &&\n       (((uVar18 & 0x10) != 0 || ((dfa->lex).laststart == false)))) {\n      (dfa->lex).lasttok = 0x101;\n      uVar18 = 0x101;\n      goto LAB_0002318d;\n    }\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x3f;\n    break;\n  case 0x38:\n_L1461:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x42;\n    break;\n  case 0x49:\n  case 0x69:\n    bVar6 = false;\n    local_60 = pbVar15;\n    local_5c = pbVar1;\nLAB_0002342a:\n    cVar16 = (dfa->localeinfo).multibyte;\n    if ((!bVar6) || (((dfa->syntax).syntax_bits & 0x80000) != 0)) break;\n    if ((_Bool)cVar16 != false) {\n      pcVar13 = &UNK_0002f468 + (uVar18 == 0x73);\nLAB_0002345c:\n      (dfa->lex).ptr = pcVar13;\n      sVar11 = strlen(pcVar13);\n      (dfa->lex).left = sVar11;\n      uVar18 = parse_bracket_exp(dfa);\n      (dfa->lex).laststart = false;\n      (dfa->lex).lasttok = uVar18;\n      (dfa->lex).ptr = (char *)local_5c;\n      (dfa->lex).left = (size_t)local_60;\n      goto LAB_0002318d;\n    }\n    uVar8 = 0;\n    do {\n      *(undefined4 *)((int)ccl.w + uVar8) = 0;\n      uVar8 = uVar8 + 4;\n    } while (uVar8 < 0x20);\n    ppuVar9 = __ctype_b_loc();\n    uVar8 = 0;\n    puVar5 = *ppuVar9;\n    do {\n      if ((*(byte *)((int)puVar5 + uVar8 * 2 + 1) & 0x20) != 0) {\n        ccl.w[uVar8 >> 5] = ccl.w[uVar8 >> 5] | 1 << ((byte)uVar8 & 0x1f);\n      }\n      uVar8 = uVar8 + 1;\n    } while (uVar8 != 0x100);\n    if (uVar18 == 0x53) {\nLAB_00023b34:\n      ccl.w[0] = ~ccl.w[0];\n      ccl.w[1] = ~ccl.w[1];\n      ccl.w[2] = ~ccl.w[2];\n      ccl.w[3] = ~ccl.w[3];\n      ccl.w[4] = ~ccl.w[4];\n      ccl.w[5] = ~ccl.w[5];\n      ccl.w[6] = ~ccl.w[6];\n      ccl.w[7] = ~ccl.w[7];\n    }\nLAB_00023ae7:\n    (dfa->lex).laststart = false;\n    goto LAB_000237bd;\n  case 0x51:\n    (dfa->lex).laststart = false;\n    uVar18 = parse_bracket_exp(dfa);\n    (dfa->lex).lasttok = uVar18;\n    goto LAB_0002318d;\n  case 0x52:\n    if (pbVar15 == (byte *)0x0) {\n      pcVar13 = "unfinished \\ escape";\n      goto LAB_00023a1b;\n    }\n    wVar4 = (dfa->localeinfo).sbctowc[local_5c[1]];\n    local_60 = pbVar15;\n    local_5c = pbVar1;\n    if (wVar4 == 0xffffffff) {\n      sVar10 = rpl_mbrtowc(&wch,(char *)pbVar1,(size_t)pbVar15,&dfa->mbs);\n      if (0xfffffffc < sVar10 - 1) {\n        pmVar20 = &dfa->mbs;\n        for (iVar14 = 2; iVar14 != 0; iVar14 = iVar14 + -1) {\n          pmVar20->__count = 0;\n          pmVar20 = (mbstate_t *)((int)(pmVar20 + -(uint)bVar21) + 4);\n        }\n        local_5c = (byte *)(dfa->lex).ptr;\n        local_60 = (byte *)(dfa->lex).left;\n        goto LAB_00023748;\n      }\n      local_60 = (byte *)(dfa->lex).left;\n      (dfa->lex).cur_mb_len = sVar10;\n      (dfa->lex).wctok = wch;\n      local_5c = (byte *)(dfa->lex).ptr;\n      if (sVar10 != 1) goto LAB_00023235;\n    }\n    else {\nLAB_00023748:\n      (dfa->lex).cur_mb_len = 1;\n      (dfa->lex).wctok = wVar4;\n    }\n    uVar18 = (uint)*local_5c;\n    pbVar1 = local_5c + 1;\n    (dfa->lex).ptr = (char *)pbVar1;\n    pbVar15 = local_60 + -1;\n    (dfa->lex).left = (size_t)pbVar15;\n    switch(uVar18 - 10 & 0xff) {\n    case 0:\n      goto _L1503;\n    case 0x1a:\n      goto _L1438;\n    case 0x1d:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) goto LAB_00023868;\n      goto _L1449;\n    case 0x1e:\n      bVar21 = 1;\n      goto LAB_00023262;\n    case 0x1f:\n      bVar21 = 1;\n      goto LAB_0002351a;\n    case 0x20:\n      goto _L1469;\n    case 0x21:\n      bVar21 = 1;\n      goto LAB_000234d2;\n    case 0x24:\n      bVar6 = true;\n      goto LAB_0002336a;\n    case 0x27:\n    case 0x28:\n    case 0x29:\n    case 0x2a:\n    case 0x2b:\n    case 0x2c:\n    case 0x2d:\n    case 0x2e:\n    case 0x2f:\n      if (((dfa->syntax).syntax_bits & 0x4000) == 0) {\n        (dfa->lex).laststart = false;\n        uVar18 = 0x112;\n        (dfa->lex).lasttok = 0x112;\n        goto LAB_0002318d;\n      }\n    default:\n_L1538:\n      cVar16 = (dfa->localeinfo).multibyte;\n      break;\n    case 0x32:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) {\n        (dfa->lex).lasttok = 0x10e;\n        uVar18 = 0x10e;\n        goto LAB_0002318d;\n      }\n      goto _L1452;\n    case 0x34:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) {\n        (dfa->lex).lasttok = 0x10f;\n        uVar18 = 0x10f;\n        goto LAB_0002318d;\n      }\n      goto _L1455;\n    case 0x35:\n      bVar21 = 1;\n      goto LAB_000233b2;\n    case 0x38:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) {\n        (dfa->lex).lasttok = 0x111;\n        uVar18 = 0x111;\n        goto LAB_0002318d;\n      }\n      goto _L1461;\n    case 0x49:\n    case 0x69:\n      bVar6 = true;\n      local_60 = pbVar15;\n      local_5c = pbVar1;\n      goto LAB_0002342a;\n    case 0x4d:\n    case 0x6d:\n      cVar16 = (dfa->localeinfo).multibyte;\n      if (((dfa->syntax).syntax_bits & 0x80000) != 0) break;\n      if ((_Bool)cVar16 != false) {\n        pcVar13 = &UNK_0002f474 + (uVar18 == 0x77);\n        local_60 = pbVar15;\n        local_5c = pbVar1;\n        goto LAB_0002345c;\n      }\n      uVar8 = 0;\n      do {\n        *(undefined4 *)((int)ccl.w + uVar8) = 0;\n        uVar8 = uVar8 + 4;\n      } while (uVar8 < 0x20);\n      uVar8 = 0;\n      do {\n        if ((dfa->syntax).sbit[uVar8] == '\x02') {\n          ccl.w[uVar8 >> 5] = ccl.w[uVar8 >> 5] | 1 << ((byte)uVar8 & 0x1f);\n        }\n        uVar8 = uVar8 + 1;\n      } while (uVar8 != 0x100);\n      if (uVar18 == 0x57) goto LAB_00023b34;\n      goto LAB_00023ae7;\n    case 0x51:\n      cVar16 = (dfa->localeinfo).multibyte;\n      uVar18 = 0x5b;\n      break;\n    case 0x52:\n      cVar16 = (dfa->localeinfo).multibyte;\n      uVar18 = 0x5c;\n      break;\n    case 0x54:\n      goto _L1433;\n    case 0x56:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) goto LAB_00023880;\n      goto _L1446;\n    case 0x58:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) {\n        (dfa->lex).lasttok = 0x110;\n        uVar18 = 0x110;\n        goto LAB_0002318d;\n      }\n      goto _L1458;\n    case 0x71:\n      local_51 = 1;\n      pbVar15 = local_60;\n      pbVar17 = local_5c;\n      local_5c = pbVar1;\n      goto LAB_00023295;\n    case 0x72:\n      bVar21 = 1;\n      goto LAB_000233fa;\n    }\n    break;\n  case 0x54:\n    if (((((dfa->syntax).syntax_bits & 8) != 0) ||\n        (iVar14 = (dfa->lex).lasttok, iVar14 - 0x106U < 2)) || (iVar14 == -1)) {\nLAB_00023880:\n      (dfa->lex).lasttok = 0x10c;\n      uVar18 = 0x10c;\n      goto LAB_0002318d;\n    }\n_L1433:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x5e;\n    break;\n  case 0x56:\n_L1446:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x60;\n    break;\n  case 0x58:\n_L1458:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x62;\n    break;\n  case 0x71:\n    local_51 = 0;\n    pbVar15 = local_60;\n    pbVar17 = local_5c;\n    local_5c = pbVar1;\nLAB_00023295:\n    uVar18 = (dfa->syntax).syntax_bits;\n    if ((((uVar18 & 0x200) != 0) && ((((byte)(uVar18 >> 0xc) ^ 1) & 1) == local_51)) &&\n       (((uVar18 & 0x10) != 0 || ((dfa->lex).laststart == false)))) {\n      pbVar1 = pbVar17 + (int)pbVar15;\n      (dfa->lex).maxrep = -1;\n      (dfa->lex).minrep = -1;\n      pbVar7 = local_5c;\n      if (pbVar1 == local_5c) {\nLAB_00023b5a:\n        local_5c = pbVar7;\n        if (local_51 == 0) {\nLAB_00023a30:\n          if (pbVar1 != local_5c) goto LAB_00023a3a;\n        }\n      }\n      else {\n        bVar21 = pbVar17[1];\n        pbVar15 = (byte *)(int)(char)bVar21;\n        if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar17 = (byte *)0xffffffff;\n          local_60 = pbVar15;\n          do {\n            if ((-1 < (int)pbVar17) &&\n               (local_60 = local_60 + (int)pbVar17 * 10, 0x8030 < (int)local_60)) {\n              local_60 = (byte *)0x8030;\n            }\n            pbVar17 = local_60 + -0x30;\n            (dfa->lex).minrep = (int)pbVar17;\n            local_5c = local_5c + 1;\n            pbVar7 = local_5c;\n            if (pbVar1 == local_5c) goto LAB_00023b5a;\n            local_60 = (byte *)(int)(char)*local_5c;\n            pbVar15 = local_60 + -0x30;\n          } while ((byte)pbVar15 < 10);\n          if (*local_5c == 0x2c) {\n            if ((int)pbVar17 < 0) goto LAB_00023bed;\nLAB_00023b6e:\n            pbVar15 = local_5c + 1;\n            pbVar7 = pbVar1;\n            if (pbVar1 == pbVar15) goto LAB_00023b5a;\n            bVar21 = local_5c[1];\n            local_5c = pbVar15;\n            if ((byte)(bVar21 - 0x30) < 10) {\n              iVar14 = -1;\n              do {\n                iVar19 = (int)(char)bVar21;\n                if ((-1 < iVar14) && (iVar19 = iVar19 + iVar14 * 10, 0x8030 < iVar19)) {\n                  iVar19 = 0x8030;\n                }\n                iVar14 = iVar19 + -0x30;\n                (dfa->lex).maxrep = iVar14;\n                pbVar15 = pbVar15 + 1;\n                if (pbVar1 == pbVar15) goto LAB_00023b5a;\n                bVar21 = *pbVar15;\n                local_5c = pbVar15;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            goto LAB_00023bd8;\n          }\n          (dfa->lex).maxrep = (int)pbVar17;\n          if (local_51 == 0) goto LAB_00023a30;\nLAB_000239fb:\n          if (*local_5c == 0x5c) {\n            local_5c = local_5c + 1;\n            goto LAB_00023a30;\n          }\n        }\n        else {\n          if (bVar21 == 0x2c) {\nLAB_00023bed:\n            (dfa->lex).minrep = 0;\n            goto LAB_00023b6e;\n          }\nLAB_00023bd8:\n          if (local_51 != 0) goto LAB_000239fb;\nLAB_00023a3a:\n          if ((*local_5c == 0x7d) && (pbVar17 = (byte *)(dfa->lex).minrep, -1 < (int)pbVar17)) {\n            iVar14 = (dfa->lex).maxrep;\n            if (-1 < iVar14) {\n              if (iVar14 < (int)pbVar17) goto LAB_00023a04;\n              if (0x7fff < iVar14) {\n                pcVar13 = "regular expression too big";\n                goto LAB_00023a1b;\n              }\n            }\n            (dfa->lex).laststart = false;\n            uVar18 = 0x104;\n            (dfa->lex).lasttok = 0x104;\n            (dfa->lex).ptr = (char *)(local_5c + 1);\n            (dfa->lex).left = (int)pbVar1 - (int)(local_5c + 1);\n            goto LAB_0002318d;\n          }\n        }\n      }\nLAB_00023a04:\n      if ((uVar18 & 0x200000) == 0) {\n        pcVar13 = "invalid content of \\{\\}";\n        pbVar17 = pbVar15;\nLAB_00023a1b:\n        pcVar13 = (char *)dcgettext(0,pcVar13,5,pbVar17);\n                    /* WARNING: Subroutine does not return */\n        dfaerror(pcVar13);\n      }\n    }\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x7b;\n    break;\n  case 0x72:\n    bVar21 = 0;\nLAB_000233fa:\n    uVar18 = (dfa->syntax).syntax_bits;\n    if (((uVar18 & 0x400) != 0) || ((((byte)(uVar18 >> 0xf) ^ 1) & 1) != bVar21)) {\n      cVar16 = (dfa->localeinfo).multibyte;\n      uVar18 = 0x7c;\n      break;\n    }\nLAB_000238f1:\n    (dfa->lex).laststart = true;\n    uVar18 = 0x106;\n    (dfa->lex).lasttok = 0x106;\n    goto LAB_0002318d;\n  }\nLAB_00023160:\n  (dfa->lex).laststart = false;\n  if (cVar16 == '\0') {\n    if (((dfa->syntax).case_fold != false) &&\n       (ppuVar9 = __ctype_b_loc(), (*(byte *)((int)*ppuVar9 + uVar18 * 2 + 1) & 4) != 0)) {\n      uVar8 = 0;\n      do {\n        *(undefined4 *)((int)ccl.w + uVar8) = 0;\n        uVar8 = uVar8 + 4;\n      } while (uVar8 < 0x20);\n      setbit_case_fold_c(uVar18,&ccl);\nLAB_000237bd:\n      pVar12 = charclass_index(dfa,&ccl);\n      uVar18 = pVar12 + 0x114;\n    }\n    (dfa->lex).lasttok = uVar18;\n  }\n  else {\n    (dfa->lex).lasttok = 0x109;\n    uVar18 = 0x109;\n  }\nLAB_0002318d:\n  if (iVar3 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar18;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}\n\n" comment comment (function_definition "token __regparm3 lex(dfa *dfa)\n\n{\n  byte *pbVar1;\n  size_t *psVar2;\n  int iVar3;\n  wint_t wVar4;\n  ushort *puVar5;\n  bool bVar6;\n  byte *pbVar7;\n  uint uVar8;\n  ushort **ppuVar9;\n  size_t sVar10;\n  size_t sVar11;\n  ptrdiff_t pVar12;\n  char *pcVar13;\n  int iVar14;\n  byte *pbVar15;\n  char cVar16;\n  byte *pbVar17;\n  uint uVar18;\n  int iVar19;\n  mbstate_t *pmVar20;\n  int in_GS_OFFSET;\n  byte bVar21;\n  byte *local_60;\n  byte *local_5c;\n  byte local_51;\n  wchar_t wch;\n  charclass ccl;\n  \n  bVar21 = 0;\n  local_60 = (byte *)(dfa->lex).left;\n  iVar3 = *(int *)(in_GS_OFFSET + 0x14);\n  if (local_60 == (byte *)0x0) {\n    (dfa->lex).lasttok = -1;\n    uVar18 = 0xffffffff;\n    goto LAB_0002318d;\n  }\n  local_5c = (byte *)(dfa->lex).ptr;\n  wVar4 = (dfa->localeinfo).sbctowc[*local_5c];\n  if (wVar4 == 0xffffffff) {\n    sVar10 = rpl_mbrtowc(&wch,(char *)local_5c,(size_t)local_60,&dfa->mbs);\n    if (0xfffffffc < sVar10 - 1) {\n      (dfa->mbs).__count = 0;\n      local_5c = (byte *)(dfa->lex).ptr;\n      (dfa->mbs).__value.__wch = 0;\n      local_60 = (byte *)(dfa->lex).left;\n      goto LAB_00023107;\n    }\n    local_60 = (byte *)(dfa->lex).left;\n    (dfa->lex).cur_mb_len = sVar10;\n    (dfa->lex).wctok = wch;\n    local_5c = (byte *)(dfa->lex).ptr;\n    if (sVar10 == 1) goto LAB_00023117;\nLAB_00023235:\n    uVar18 = 0xffffffff;\n    (dfa->lex).ptr = (char *)(local_5c + sVar10);\n    cVar16 = (dfa->localeinfo).multibyte;\n    (dfa->lex).left = (int)local_60 - sVar10;\n    goto LAB_00023160;\n  }\nLAB_00023107:\n  (dfa->lex).wctok = wVar4;\n  (dfa->lex).cur_mb_len = 1;\nLAB_00023117:\n  uVar18 = (uint)*local_5c;\n  pbVar1 = local_5c + 1;\n  (dfa->lex).ptr = (char *)pbVar1;\n  pbVar15 = local_60 + -1;\n  (dfa->lex).left = (size_t)pbVar15;\n  if (0x72 < (byte)(uVar18 - 10)) goto _L1538;\n  uVar8 = uVar18 - 10 & 0xff;\n  pbVar17 = (byte *)((int)&_GLOBAL_OFFSET_TABLE_ + (&switchD_00023149::switchdataD_0002ef08)[uVar8])\n  ;\n  switch(uVar8) {\n  case 0:\n    uVar18 = (dfa->syntax).syntax_bits;\n    if (((uVar18 & 0x400) != 0) || ((uVar18 & 0x800) == 0)) {\n_L1503:\n      cVar16 = (dfa->localeinfo).multibyte;\n      uVar18 = 10;\n      break;\n    }\n    goto LAB_000238f1;\n  default:\n    goto _L1538;\n  case 0x1a:\n    uVar18 = (dfa->syntax).syntax_bits;\n    if ((((((uVar18 & 8) != 0) || (pbVar15 == (byte *)0x0)) ||\n         ((pbVar17 = (byte *)((uVar18 >> 0xd ^ 1) & 1), pbVar17 < pbVar15 &&\n          (pbVar1[(uint)(local_5c[1] == 0x5c) & (uint)pbVar17] == 0x29)))) ||\n        ((pbVar17 = (byte *)((uVar18 >> 0xf ^ 1) & 1), pbVar17 < pbVar15 &&\n         (pbVar1[(uint)pbVar17 & (uint)(local_5c[1] == 0x5c)] == 0x7c)))) ||\n       (((uVar18 & 0x800) != 0 && (local_5c[1] == 10)))) {\nLAB_00023868:\n      (dfa->lex).lasttok = 0x10d;\n      uVar18 = 0x10d;\n      goto LAB_0002318d;\n    }\n_L1438:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x24;\n    break;\n  case 0x1d:\n_L1449:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x27;\n    break;\n  case 0x1e:\n    bVar21 = 0;\nLAB_00023262:\n    if ((((byte)((dfa->syntax).syntax_bits >> 0xd) ^ 1) & 1) == bVar21) {\n      psVar2 = &(dfa->lex).parens;\n      *psVar2 = *psVar2 + 1;\n      uVar18 = 0x107;\n      (dfa->lex).laststart = true;\n      (dfa->lex).lasttok = 0x107;\n      goto LAB_0002318d;\n    }\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x28;\n    break;\n  case 0x1f:\n    bVar21 = 0;\nLAB_0002351a:\n    uVar18 = (dfa->syntax).syntax_bits;\n    if (((((byte)(uVar18 >> 0xd) ^ 1) & 1) == bVar21) &&\n       ((sVar10 = (dfa->lex).parens, sVar10 != 0 || ((uVar18 & 0x20000) == 0)))) {\n      (dfa->lex).laststart = false;\n      uVar18 = 0x108;\n      (dfa->lex).parens = sVar10 - 1;\n      (dfa->lex).lasttok = 0x108;\n      goto LAB_0002318d;\n    }\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x29;\n    break;\n  case 0x20:\n    if ((((dfa->syntax).syntax_bits & 0x10) != 0) || ((dfa->lex).laststart == false)) {\n      (dfa->lex).lasttok = 0x102;\n      uVar18 = 0x102;\n      goto LAB_0002318d;\n    }\n_L1469:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x2a;\n    break;\n  case 0x21:\n    bVar21 = 0;\nLAB_000234d2:\n    uVar18 = (dfa->syntax).syntax_bits;\n    if ((((uVar18 & 0x400) == 0) && (((byte)(uVar18 >> 1) & 1) == bVar21)) &&\n       (((uVar18 & 0x10) != 0 || ((dfa->lex).laststart == false)))) {\n      (dfa->lex).lasttok = 0x103;\n      uVar18 = 0x103;\n      goto LAB_0002318d;\n    }\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x2b;\n    break;\n  case 0x24:\n    bVar6 = false;\nLAB_0002336a:\n    cVar16 = (dfa->localeinfo).multibyte;\n    if (!bVar6) {\n      sVar10 = dfa->canychar;\n      if (sVar10 == 0xffffffff) {\n        uVar18 = (dfa->syntax).syntax_bits;\n        ccl.w[0] = 0xffffffff;\n        ccl.w[1] = 0xffffffff;\n        ccl.w[2] = 0xffffffff;\n        ccl.w[3] = 0xffffffff;\n        ccl.w[4] = 0xffffffff;\n        ccl.w[5] = 0xffffffff;\n        ccl.w[6] = 0xffffffff;\n        ccl.w[7] = 0xffffffff;\n        if ((uVar18 & 0x40) == 0) {\n          ccl.w[0] = 0xfffffbff;\n        }\n        if ((uVar18 & 0x80) != 0) {\n          ccl.w[0] = ccl.w[0] & 0xfffffffe;\n        }\n        if ((_Bool)cVar16 != false) {\n          uVar18 = 0;\n          do {\n            if ((dfa->localeinfo).sbctowc[uVar18] == 0xffffffff) {\n              ccl.w[uVar18 >> 5] = ccl.w[uVar18 >> 5] & ~(1 << ((byte)uVar18 & 0x1f));\n            }\n            uVar18 = uVar18 + 1;\n          } while (uVar18 != 0x100);\n        }\n        sVar10 = charclass_index(dfa,&ccl);\n        cVar16 = (dfa->localeinfo).multibyte;\n        dfa->canychar = sVar10;\n      }\n      (dfa->lex).laststart = false;\n      uVar18 = 0x10a;\n      if (cVar16 == '\0') {\n        uVar18 = sVar10 + 0x114;\n      }\n      (dfa->lex).lasttok = uVar18;\n      goto LAB_0002318d;\n    }\n    uVar18 = 0x2e;\n    break;\n  case 0x32:\n_L1452:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x3c;\n    break;\n  case 0x34:\n_L1455:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x3e;\n    break;\n  case 0x35:\n    bVar21 = 0;\nLAB_000233b2:\n    uVar18 = (dfa->syntax).syntax_bits;\n    if ((((uVar18 & 0x400) == 0) && (((byte)(uVar18 >> 1) & 1) == bVar21)) &&\n       (((uVar18 & 0x10) != 0 || ((dfa->lex).laststart == false)))) {\n      (dfa->lex).lasttok = 0x101;\n      uVar18 = 0x101;\n      goto LAB_0002318d;\n    }\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x3f;\n    break;\n  case 0x38:\n_L1461:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x42;\n    break;\n  case 0x49:\n  case 0x69:\n    bVar6 = false;\n    local_60 = pbVar15;\n    local_5c = pbVar1;\nLAB_0002342a:\n    cVar16 = (dfa->localeinfo).multibyte;\n    if ((!bVar6) || (((dfa->syntax).syntax_bits & 0x80000) != 0)) break;\n    if ((_Bool)cVar16 != false) {\n      pcVar13 = &UNK_0002f468 + (uVar18 == 0x73);\nLAB_0002345c:\n      (dfa->lex).ptr = pcVar13;\n      sVar11 = strlen(pcVar13);\n      (dfa->lex).left = sVar11;\n      uVar18 = parse_bracket_exp(dfa);\n      (dfa->lex).laststart = false;\n      (dfa->lex).lasttok = uVar18;\n      (dfa->lex).ptr = (char *)local_5c;\n      (dfa->lex).left = (size_t)local_60;\n      goto LAB_0002318d;\n    }\n    uVar8 = 0;\n    do {\n      *(undefined4 *)((int)ccl.w + uVar8) = 0;\n      uVar8 = uVar8 + 4;\n    } while (uVar8 < 0x20);\n    ppuVar9 = __ctype_b_loc();\n    uVar8 = 0;\n    puVar5 = *ppuVar9;\n    do {\n      if ((*(byte *)((int)puVar5 + uVar8 * 2 + 1) & 0x20) != 0) {\n        ccl.w[uVar8 >> 5] = ccl.w[uVar8 >> 5] | 1 << ((byte)uVar8 & 0x1f);\n      }\n      uVar8 = uVar8 + 1;\n    } while (uVar8 != 0x100);\n    if (uVar18 == 0x53) {\nLAB_00023b34:\n      ccl.w[0] = ~ccl.w[0];\n      ccl.w[1] = ~ccl.w[1];\n      ccl.w[2] = ~ccl.w[2];\n      ccl.w[3] = ~ccl.w[3];\n      ccl.w[4] = ~ccl.w[4];\n      ccl.w[5] = ~ccl.w[5];\n      ccl.w[6] = ~ccl.w[6];\n      ccl.w[7] = ~ccl.w[7];\n    }\nLAB_00023ae7:\n    (dfa->lex).laststart = false;\n    goto LAB_000237bd;\n  case 0x51:\n    (dfa->lex).laststart = false;\n    uVar18 = parse_bracket_exp(dfa);\n    (dfa->lex).lasttok = uVar18;\n    goto LAB_0002318d;\n  case 0x52:\n    if (pbVar15 == (byte *)0x0) {\n      pcVar13 = "unfinished \\ escape";\n      goto LAB_00023a1b;\n    }\n    wVar4 = (dfa->localeinfo).sbctowc[local_5c[1]];\n    local_60 = pbVar15;\n    local_5c = pbVar1;\n    if (wVar4 == 0xffffffff) {\n      sVar10 = rpl_mbrtowc(&wch,(char *)pbVar1,(size_t)pbVar15,&dfa->mbs);\n      if (0xfffffffc < sVar10 - 1) {\n        pmVar20 = &dfa->mbs;\n        for (iVar14 = 2; iVar14 != 0; iVar14 = iVar14 + -1) {\n          pmVar20->__count = 0;\n          pmVar20 = (mbstate_t *)((int)(pmVar20 + -(uint)bVar21) + 4);\n        }\n        local_5c = (byte *)(dfa->lex).ptr;\n        local_60 = (byte *)(dfa->lex).left;\n        goto LAB_00023748;\n      }\n      local_60 = (byte *)(dfa->lex).left;\n      (dfa->lex).cur_mb_len = sVar10;\n      (dfa->lex).wctok = wch;\n      local_5c = (byte *)(dfa->lex).ptr;\n      if (sVar10 != 1) goto LAB_00023235;\n    }\n    else {\nLAB_00023748:\n      (dfa->lex).cur_mb_len = 1;\n      (dfa->lex).wctok = wVar4;\n    }\n    uVar18 = (uint)*local_5c;\n    pbVar1 = local_5c + 1;\n    (dfa->lex).ptr = (char *)pbVar1;\n    pbVar15 = local_60 + -1;\n    (dfa->lex).left = (size_t)pbVar15;\n    switch(uVar18 - 10 & 0xff) {\n    case 0:\n      goto _L1503;\n    case 0x1a:\n      goto _L1438;\n    case 0x1d:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) goto LAB_00023868;\n      goto _L1449;\n    case 0x1e:\n      bVar21 = 1;\n      goto LAB_00023262;\n    case 0x1f:\n      bVar21 = 1;\n      goto LAB_0002351a;\n    case 0x20:\n      goto _L1469;\n    case 0x21:\n      bVar21 = 1;\n      goto LAB_000234d2;\n    case 0x24:\n      bVar6 = true;\n      goto LAB_0002336a;\n    case 0x27:\n    case 0x28:\n    case 0x29:\n    case 0x2a:\n    case 0x2b:\n    case 0x2c:\n    case 0x2d:\n    case 0x2e:\n    case 0x2f:\n      if (((dfa->syntax).syntax_bits & 0x4000) == 0) {\n        (dfa->lex).laststart = false;\n        uVar18 = 0x112;\n        (dfa->lex).lasttok = 0x112;\n        goto LAB_0002318d;\n      }\n    default:\n_L1538:\n      cVar16 = (dfa->localeinfo).multibyte;\n      break;\n    case 0x32:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) {\n        (dfa->lex).lasttok = 0x10e;\n        uVar18 = 0x10e;\n        goto LAB_0002318d;\n      }\n      goto _L1452;\n    case 0x34:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) {\n        (dfa->lex).lasttok = 0x10f;\n        uVar18 = 0x10f;\n        goto LAB_0002318d;\n      }\n      goto _L1455;\n    case 0x35:\n      bVar21 = 1;\n      goto LAB_000233b2;\n    case 0x38:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) {\n        (dfa->lex).lasttok = 0x111;\n        uVar18 = 0x111;\n        goto LAB_0002318d;\n      }\n      goto _L1461;\n    case 0x49:\n    case 0x69:\n      bVar6 = true;\n      local_60 = pbVar15;\n      local_5c = pbVar1;\n      goto LAB_0002342a;\n    case 0x4d:\n    case 0x6d:\n      cVar16 = (dfa->localeinfo).multibyte;\n      if (((dfa->syntax).syntax_bits & 0x80000) != 0) break;\n      if ((_Bool)cVar16 != false) {\n        pcVar13 = &UNK_0002f474 + (uVar18 == 0x77);\n        local_60 = pbVar15;\n        local_5c = pbVar1;\n        goto LAB_0002345c;\n      }\n      uVar8 = 0;\n      do {\n        *(undefined4 *)((int)ccl.w + uVar8) = 0;\n        uVar8 = uVar8 + 4;\n      } while (uVar8 < 0x20);\n      uVar8 = 0;\n      do {\n        if ((dfa->syntax).sbit[uVar8] == '\x02') {\n          ccl.w[uVar8 >> 5] = ccl.w[uVar8 >> 5] | 1 << ((byte)uVar8 & 0x1f);\n        }\n        uVar8 = uVar8 + 1;\n      } while (uVar8 != 0x100);\n      if (uVar18 == 0x57) goto LAB_00023b34;\n      goto LAB_00023ae7;\n    case 0x51:\n      cVar16 = (dfa->localeinfo).multibyte;\n      uVar18 = 0x5b;\n      break;\n    case 0x52:\n      cVar16 = (dfa->localeinfo).multibyte;\n      uVar18 = 0x5c;\n      break;\n    case 0x54:\n      goto _L1433;\n    case 0x56:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) goto LAB_00023880;\n      goto _L1446;\n    case 0x58:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) {\n        (dfa->lex).lasttok = 0x110;\n        uVar18 = 0x110;\n        goto LAB_0002318d;\n      }\n      goto _L1458;\n    case 0x71:\n      local_51 = 1;\n      pbVar15 = local_60;\n      pbVar17 = local_5c;\n      local_5c = pbVar1;\n      goto LAB_00023295;\n    case 0x72:\n      bVar21 = 1;\n      goto LAB_000233fa;\n    }\n    break;\n  case 0x54:\n    if (((((dfa->syntax).syntax_bits & 8) != 0) ||\n        (iVar14 = (dfa->lex).lasttok, iVar14 - 0x106U < 2)) || (iVar14 == -1)) {\nLAB_00023880:\n      (dfa->lex).lasttok = 0x10c;\n      uVar18 = 0x10c;\n      goto LAB_0002318d;\n    }\n_L1433:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x5e;\n    break;\n  case 0x56:\n_L1446:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x60;\n    break;\n  case 0x58:\n_L1458:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x62;\n    break;\n  case 0x71:\n    local_51 = 0;\n    pbVar15 = local_60;\n    pbVar17 = local_5c;\n    local_5c = pbVar1;\nLAB_00023295:\n    uVar18 = (dfa->syntax).syntax_bits;\n    if ((((uVar18 & 0x200) != 0) && ((((byte)(uVar18 >> 0xc) ^ 1) & 1) == local_51)) &&\n       (((uVar18 & 0x10) != 0 || ((dfa->lex).laststart == false)))) {\n      pbVar1 = pbVar17 + (int)pbVar15;\n      (dfa->lex).maxrep = -1;\n      (dfa->lex).minrep = -1;\n      pbVar7 = local_5c;\n      if (pbVar1 == local_5c) {\nLAB_00023b5a:\n        local_5c = pbVar7;\n        if (local_51 == 0) {\nLAB_00023a30:\n          if (pbVar1 != local_5c) goto LAB_00023a3a;\n        }\n      }\n      else {\n        bVar21 = pbVar17[1];\n        pbVar15 = (byte *)(int)(char)bVar21;\n        if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar17 = (byte *)0xffffffff;\n          local_60 = pbVar15;\n          do {\n            if ((-1 < (int)pbVar17) &&\n               (local_60 = local_60 + (int)pbVar17 * 10, 0x8030 < (int)local_60)) {\n              local_60 = (byte *)0x8030;\n            }\n            pbVar17 = local_60 + -0x30;\n            (dfa->lex).minrep = (int)pbVar17;\n            local_5c = local_5c + 1;\n            pbVar7 = local_5c;\n            if (pbVar1 == local_5c) goto LAB_00023b5a;\n            local_60 = (byte *)(int)(char)*local_5c;\n            pbVar15 = local_60 + -0x30;\n          } while ((byte)pbVar15 < 10);\n          if (*local_5c == 0x2c) {\n            if ((int)pbVar17 < 0) goto LAB_00023bed;\nLAB_00023b6e:\n            pbVar15 = local_5c + 1;\n            pbVar7 = pbVar1;\n            if (pbVar1 == pbVar15) goto LAB_00023b5a;\n            bVar21 = local_5c[1];\n            local_5c = pbVar15;\n            if ((byte)(bVar21 - 0x30) < 10) {\n              iVar14 = -1;\n              do {\n                iVar19 = (int)(char)bVar21;\n                if ((-1 < iVar14) && (iVar19 = iVar19 + iVar14 * 10, 0x8030 < iVar19)) {\n                  iVar19 = 0x8030;\n                }\n                iVar14 = iVar19 + -0x30;\n                (dfa->lex).maxrep = iVar14;\n                pbVar15 = pbVar15 + 1;\n                if (pbVar1 == pbVar15) goto LAB_00023b5a;\n                bVar21 = *pbVar15;\n                local_5c = pbVar15;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            goto LAB_00023bd8;\n          }\n          (dfa->lex).maxrep = (int)pbVar17;\n          if (local_51 == 0) goto LAB_00023a30;\nLAB_000239fb:\n          if (*local_5c == 0x5c) {\n            local_5c = local_5c + 1;\n            goto LAB_00023a30;\n          }\n        }\n        else {\n          if (bVar21 == 0x2c) {\nLAB_00023bed:\n            (dfa->lex).minrep = 0;\n            goto LAB_00023b6e;\n          }\nLAB_00023bd8:\n          if (local_51 != 0) goto LAB_000239fb;\nLAB_00023a3a:\n          if ((*local_5c == 0x7d) && (pbVar17 = (byte *)(dfa->lex).minrep, -1 < (int)pbVar17)) {\n            iVar14 = (dfa->lex).maxrep;\n            if (-1 < iVar14) {\n              if (iVar14 < (int)pbVar17) goto LAB_00023a04;\n              if (0x7fff < iVar14) {\n                pcVar13 = "regular expression too big";\n                goto LAB_00023a1b;\n              }\n            }\n            (dfa->lex).laststart = false;\n            uVar18 = 0x104;\n            (dfa->lex).lasttok = 0x104;\n            (dfa->lex).ptr = (char *)(local_5c + 1);\n            (dfa->lex).left = (int)pbVar1 - (int)(local_5c + 1);\n            goto LAB_0002318d;\n          }\n        }\n      }\nLAB_00023a04:\n      if ((uVar18 & 0x200000) == 0) {\n        pcVar13 = "invalid content of \\{\\}";\n        pbVar17 = pbVar15;\nLAB_00023a1b:\n        pcVar13 = (char *)dcgettext(0,pcVar13,5,pbVar17);\n                    /* WARNING: Subroutine does not return */\n        dfaerror(pcVar13);\n      }\n    }\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x7b;\n    break;\n  case 0x72:\n    bVar21 = 0;\nLAB_000233fa:\n    uVar18 = (dfa->syntax).syntax_bits;\n    if (((uVar18 & 0x400) != 0) || ((((byte)(uVar18 >> 0xf) ^ 1) & 1) != bVar21)) {\n      cVar16 = (dfa->localeinfo).multibyte;\n      uVar18 = 0x7c;\n      break;\n    }\nLAB_000238f1:\n    (dfa->lex).laststart = true;\n    uVar18 = 0x106;\n    (dfa->lex).lasttok = 0x106;\n    goto LAB_0002318d;\n  }\nLAB_00023160:\n  (dfa->lex).laststart = false;\n  if (cVar16 == '\0') {\n    if (((dfa->syntax).case_fold != false) &&\n       (ppuVar9 = __ctype_b_loc(), (*(byte *)((int)*ppuVar9 + uVar18 * 2 + 1) & 4) != 0)) {\n      uVar8 = 0;\n      do {\n        *(undefined4 *)((int)ccl.w + uVar8) = 0;\n        uVar8 = uVar8 + 4;\n      } while (uVar8 < 0x20);\n      setbit_case_fold_c(uVar18,&ccl);\nLAB_000237bd:\n      pVar12 = charclass_index(dfa,&ccl);\n      uVar18 = pVar12 + 0x114;\n    }\n    (dfa->lex).lasttok = uVar18;\n  }\n  else {\n    (dfa->lex).lasttok = 0x109;\n    uVar18 = 0x109;\n  }\nLAB_0002318d:\n  if (iVar3 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar18;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "lex(dfa *dfa)" identifier (parameter_list "(dfa *dfa)" ( (parameter_declaration "dfa *dfa" type_identifier (pointer_declarator "*dfa" * identifier)) ))) (compound_statement "{\n  byte *pbVar1;\n  size_t *psVar2;\n  int iVar3;\n  wint_t wVar4;\n  ushort *puVar5;\n  bool bVar6;\n  byte *pbVar7;\n  uint uVar8;\n  ushort **ppuVar9;\n  size_t sVar10;\n  size_t sVar11;\n  ptrdiff_t pVar12;\n  char *pcVar13;\n  int iVar14;\n  byte *pbVar15;\n  char cVar16;\n  byte *pbVar17;\n  uint uVar18;\n  int iVar19;\n  mbstate_t *pmVar20;\n  int in_GS_OFFSET;\n  byte bVar21;\n  byte *local_60;\n  byte *local_5c;\n  byte local_51;\n  wchar_t wch;\n  charclass ccl;\n  \n  bVar21 = 0;\n  local_60 = (byte *)(dfa->lex).left;\n  iVar3 = *(int *)(in_GS_OFFSET + 0x14);\n  if (local_60 == (byte *)0x0) {\n    (dfa->lex).lasttok = -1;\n    uVar18 = 0xffffffff;\n    goto LAB_0002318d;\n  }\n  local_5c = (byte *)(dfa->lex).ptr;\n  wVar4 = (dfa->localeinfo).sbctowc[*local_5c];\n  if (wVar4 == 0xffffffff) {\n    sVar10 = rpl_mbrtowc(&wch,(char *)local_5c,(size_t)local_60,&dfa->mbs);\n    if (0xfffffffc < sVar10 - 1) {\n      (dfa->mbs).__count = 0;\n      local_5c = (byte *)(dfa->lex).ptr;\n      (dfa->mbs).__value.__wch = 0;\n      local_60 = (byte *)(dfa->lex).left;\n      goto LAB_00023107;\n    }\n    local_60 = (byte *)(dfa->lex).left;\n    (dfa->lex).cur_mb_len = sVar10;\n    (dfa->lex).wctok = wch;\n    local_5c = (byte *)(dfa->lex).ptr;\n    if (sVar10 == 1) goto LAB_00023117;\nLAB_00023235:\n    uVar18 = 0xffffffff;\n    (dfa->lex).ptr = (char *)(local_5c + sVar10);\n    cVar16 = (dfa->localeinfo).multibyte;\n    (dfa->lex).left = (int)local_60 - sVar10;\n    goto LAB_00023160;\n  }\nLAB_00023107:\n  (dfa->lex).wctok = wVar4;\n  (dfa->lex).cur_mb_len = 1;\nLAB_00023117:\n  uVar18 = (uint)*local_5c;\n  pbVar1 = local_5c + 1;\n  (dfa->lex).ptr = (char *)pbVar1;\n  pbVar15 = local_60 + -1;\n  (dfa->lex).left = (size_t)pbVar15;\n  if (0x72 < (byte)(uVar18 - 10)) goto _L1538;\n  uVar8 = uVar18 - 10 & 0xff;\n  pbVar17 = (byte *)((int)&_GLOBAL_OFFSET_TABLE_ + (&switchD_00023149::switchdataD_0002ef08)[uVar8])\n  ;\n  switch(uVar8) {\n  case 0:\n    uVar18 = (dfa->syntax).syntax_bits;\n    if (((uVar18 & 0x400) != 0) || ((uVar18 & 0x800) == 0)) {\n_L1503:\n      cVar16 = (dfa->localeinfo).multibyte;\n      uVar18 = 10;\n      break;\n    }\n    goto LAB_000238f1;\n  default:\n    goto _L1538;\n  case 0x1a:\n    uVar18 = (dfa->syntax).syntax_bits;\n    if ((((((uVar18 & 8) != 0) || (pbVar15 == (byte *)0x0)) ||\n         ((pbVar17 = (byte *)((uVar18 >> 0xd ^ 1) & 1), pbVar17 < pbVar15 &&\n          (pbVar1[(uint)(local_5c[1] == 0x5c) & (uint)pbVar17] == 0x29)))) ||\n        ((pbVar17 = (byte *)((uVar18 >> 0xf ^ 1) & 1), pbVar17 < pbVar15 &&\n         (pbVar1[(uint)pbVar17 & (uint)(local_5c[1] == 0x5c)] == 0x7c)))) ||\n       (((uVar18 & 0x800) != 0 && (local_5c[1] == 10)))) {\nLAB_00023868:\n      (dfa->lex).lasttok = 0x10d;\n      uVar18 = 0x10d;\n      goto LAB_0002318d;\n    }\n_L1438:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x24;\n    break;\n  case 0x1d:\n_L1449:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x27;\n    break;\n  case 0x1e:\n    bVar21 = 0;\nLAB_00023262:\n    if ((((byte)((dfa->syntax).syntax_bits >> 0xd) ^ 1) & 1) == bVar21) {\n      psVar2 = &(dfa->lex).parens;\n      *psVar2 = *psVar2 + 1;\n      uVar18 = 0x107;\n      (dfa->lex).laststart = true;\n      (dfa->lex).lasttok = 0x107;\n      goto LAB_0002318d;\n    }\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x28;\n    break;\n  case 0x1f:\n    bVar21 = 0;\nLAB_0002351a:\n    uVar18 = (dfa->syntax).syntax_bits;\n    if (((((byte)(uVar18 >> 0xd) ^ 1) & 1) == bVar21) &&\n       ((sVar10 = (dfa->lex).parens, sVar10 != 0 || ((uVar18 & 0x20000) == 0)))) {\n      (dfa->lex).laststart = false;\n      uVar18 = 0x108;\n      (dfa->lex).parens = sVar10 - 1;\n      (dfa->lex).lasttok = 0x108;\n      goto LAB_0002318d;\n    }\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x29;\n    break;\n  case 0x20:\n    if ((((dfa->syntax).syntax_bits & 0x10) != 0) || ((dfa->lex).laststart == false)) {\n      (dfa->lex).lasttok = 0x102;\n      uVar18 = 0x102;\n      goto LAB_0002318d;\n    }\n_L1469:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x2a;\n    break;\n  case 0x21:\n    bVar21 = 0;\nLAB_000234d2:\n    uVar18 = (dfa->syntax).syntax_bits;\n    if ((((uVar18 & 0x400) == 0) && (((byte)(uVar18 >> 1) & 1) == bVar21)) &&\n       (((uVar18 & 0x10) != 0 || ((dfa->lex).laststart == false)))) {\n      (dfa->lex).lasttok = 0x103;\n      uVar18 = 0x103;\n      goto LAB_0002318d;\n    }\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x2b;\n    break;\n  case 0x24:\n    bVar6 = false;\nLAB_0002336a:\n    cVar16 = (dfa->localeinfo).multibyte;\n    if (!bVar6) {\n      sVar10 = dfa->canychar;\n      if (sVar10 == 0xffffffff) {\n        uVar18 = (dfa->syntax).syntax_bits;\n        ccl.w[0] = 0xffffffff;\n        ccl.w[1] = 0xffffffff;\n        ccl.w[2] = 0xffffffff;\n        ccl.w[3] = 0xffffffff;\n        ccl.w[4] = 0xffffffff;\n        ccl.w[5] = 0xffffffff;\n        ccl.w[6] = 0xffffffff;\n        ccl.w[7] = 0xffffffff;\n        if ((uVar18 & 0x40) == 0) {\n          ccl.w[0] = 0xfffffbff;\n        }\n        if ((uVar18 & 0x80) != 0) {\n          ccl.w[0] = ccl.w[0] & 0xfffffffe;\n        }\n        if ((_Bool)cVar16 != false) {\n          uVar18 = 0;\n          do {\n            if ((dfa->localeinfo).sbctowc[uVar18] == 0xffffffff) {\n              ccl.w[uVar18 >> 5] = ccl.w[uVar18 >> 5] & ~(1 << ((byte)uVar18 & 0x1f));\n            }\n            uVar18 = uVar18 + 1;\n          } while (uVar18 != 0x100);\n        }\n        sVar10 = charclass_index(dfa,&ccl);\n        cVar16 = (dfa->localeinfo).multibyte;\n        dfa->canychar = sVar10;\n      }\n      (dfa->lex).laststart = false;\n      uVar18 = 0x10a;\n      if (cVar16 == '\0') {\n        uVar18 = sVar10 + 0x114;\n      }\n      (dfa->lex).lasttok = uVar18;\n      goto LAB_0002318d;\n    }\n    uVar18 = 0x2e;\n    break;\n  case 0x32:\n_L1452:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x3c;\n    break;\n  case 0x34:\n_L1455:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x3e;\n    break;\n  case 0x35:\n    bVar21 = 0;\nLAB_000233b2:\n    uVar18 = (dfa->syntax).syntax_bits;\n    if ((((uVar18 & 0x400) == 0) && (((byte)(uVar18 >> 1) & 1) == bVar21)) &&\n       (((uVar18 & 0x10) != 0 || ((dfa->lex).laststart == false)))) {\n      (dfa->lex).lasttok = 0x101;\n      uVar18 = 0x101;\n      goto LAB_0002318d;\n    }\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x3f;\n    break;\n  case 0x38:\n_L1461:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x42;\n    break;\n  case 0x49:\n  case 0x69:\n    bVar6 = false;\n    local_60 = pbVar15;\n    local_5c = pbVar1;\nLAB_0002342a:\n    cVar16 = (dfa->localeinfo).multibyte;\n    if ((!bVar6) || (((dfa->syntax).syntax_bits & 0x80000) != 0)) break;\n    if ((_Bool)cVar16 != false) {\n      pcVar13 = &UNK_0002f468 + (uVar18 == 0x73);\nLAB_0002345c:\n      (dfa->lex).ptr = pcVar13;\n      sVar11 = strlen(pcVar13);\n      (dfa->lex).left = sVar11;\n      uVar18 = parse_bracket_exp(dfa);\n      (dfa->lex).laststart = false;\n      (dfa->lex).lasttok = uVar18;\n      (dfa->lex).ptr = (char *)local_5c;\n      (dfa->lex).left = (size_t)local_60;\n      goto LAB_0002318d;\n    }\n    uVar8 = 0;\n    do {\n      *(undefined4 *)((int)ccl.w + uVar8) = 0;\n      uVar8 = uVar8 + 4;\n    } while (uVar8 < 0x20);\n    ppuVar9 = __ctype_b_loc();\n    uVar8 = 0;\n    puVar5 = *ppuVar9;\n    do {\n      if ((*(byte *)((int)puVar5 + uVar8 * 2 + 1) & 0x20) != 0) {\n        ccl.w[uVar8 >> 5] = ccl.w[uVar8 >> 5] | 1 << ((byte)uVar8 & 0x1f);\n      }\n      uVar8 = uVar8 + 1;\n    } while (uVar8 != 0x100);\n    if (uVar18 == 0x53) {\nLAB_00023b34:\n      ccl.w[0] = ~ccl.w[0];\n      ccl.w[1] = ~ccl.w[1];\n      ccl.w[2] = ~ccl.w[2];\n      ccl.w[3] = ~ccl.w[3];\n      ccl.w[4] = ~ccl.w[4];\n      ccl.w[5] = ~ccl.w[5];\n      ccl.w[6] = ~ccl.w[6];\n      ccl.w[7] = ~ccl.w[7];\n    }\nLAB_00023ae7:\n    (dfa->lex).laststart = false;\n    goto LAB_000237bd;\n  case 0x51:\n    (dfa->lex).laststart = false;\n    uVar18 = parse_bracket_exp(dfa);\n    (dfa->lex).lasttok = uVar18;\n    goto LAB_0002318d;\n  case 0x52:\n    if (pbVar15 == (byte *)0x0) {\n      pcVar13 = "unfinished \\ escape";\n      goto LAB_00023a1b;\n    }\n    wVar4 = (dfa->localeinfo).sbctowc[local_5c[1]];\n    local_60 = pbVar15;\n    local_5c = pbVar1;\n    if (wVar4 == 0xffffffff) {\n      sVar10 = rpl_mbrtowc(&wch,(char *)pbVar1,(size_t)pbVar15,&dfa->mbs);\n      if (0xfffffffc < sVar10 - 1) {\n        pmVar20 = &dfa->mbs;\n        for (iVar14 = 2; iVar14 != 0; iVar14 = iVar14 + -1) {\n          pmVar20->__count = 0;\n          pmVar20 = (mbstate_t *)((int)(pmVar20 + -(uint)bVar21) + 4);\n        }\n        local_5c = (byte *)(dfa->lex).ptr;\n        local_60 = (byte *)(dfa->lex).left;\n        goto LAB_00023748;\n      }\n      local_60 = (byte *)(dfa->lex).left;\n      (dfa->lex).cur_mb_len = sVar10;\n      (dfa->lex).wctok = wch;\n      local_5c = (byte *)(dfa->lex).ptr;\n      if (sVar10 != 1) goto LAB_00023235;\n    }\n    else {\nLAB_00023748:\n      (dfa->lex).cur_mb_len = 1;\n      (dfa->lex).wctok = wVar4;\n    }\n    uVar18 = (uint)*local_5c;\n    pbVar1 = local_5c + 1;\n    (dfa->lex).ptr = (char *)pbVar1;\n    pbVar15 = local_60 + -1;\n    (dfa->lex).left = (size_t)pbVar15;\n    switch(uVar18 - 10 & 0xff) {\n    case 0:\n      goto _L1503;\n    case 0x1a:\n      goto _L1438;\n    case 0x1d:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) goto LAB_00023868;\n      goto _L1449;\n    case 0x1e:\n      bVar21 = 1;\n      goto LAB_00023262;\n    case 0x1f:\n      bVar21 = 1;\n      goto LAB_0002351a;\n    case 0x20:\n      goto _L1469;\n    case 0x21:\n      bVar21 = 1;\n      goto LAB_000234d2;\n    case 0x24:\n      bVar6 = true;\n      goto LAB_0002336a;\n    case 0x27:\n    case 0x28:\n    case 0x29:\n    case 0x2a:\n    case 0x2b:\n    case 0x2c:\n    case 0x2d:\n    case 0x2e:\n    case 0x2f:\n      if (((dfa->syntax).syntax_bits & 0x4000) == 0) {\n        (dfa->lex).laststart = false;\n        uVar18 = 0x112;\n        (dfa->lex).lasttok = 0x112;\n        goto LAB_0002318d;\n      }\n    default:\n_L1538:\n      cVar16 = (dfa->localeinfo).multibyte;\n      break;\n    case 0x32:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) {\n        (dfa->lex).lasttok = 0x10e;\n        uVar18 = 0x10e;\n        goto LAB_0002318d;\n      }\n      goto _L1452;\n    case 0x34:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) {\n        (dfa->lex).lasttok = 0x10f;\n        uVar18 = 0x10f;\n        goto LAB_0002318d;\n      }\n      goto _L1455;\n    case 0x35:\n      bVar21 = 1;\n      goto LAB_000233b2;\n    case 0x38:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) {\n        (dfa->lex).lasttok = 0x111;\n        uVar18 = 0x111;\n        goto LAB_0002318d;\n      }\n      goto _L1461;\n    case 0x49:\n    case 0x69:\n      bVar6 = true;\n      local_60 = pbVar15;\n      local_5c = pbVar1;\n      goto LAB_0002342a;\n    case 0x4d:\n    case 0x6d:\n      cVar16 = (dfa->localeinfo).multibyte;\n      if (((dfa->syntax).syntax_bits & 0x80000) != 0) break;\n      if ((_Bool)cVar16 != false) {\n        pcVar13 = &UNK_0002f474 + (uVar18 == 0x77);\n        local_60 = pbVar15;\n        local_5c = pbVar1;\n        goto LAB_0002345c;\n      }\n      uVar8 = 0;\n      do {\n        *(undefined4 *)((int)ccl.w + uVar8) = 0;\n        uVar8 = uVar8 + 4;\n      } while (uVar8 < 0x20);\n      uVar8 = 0;\n      do {\n        if ((dfa->syntax).sbit[uVar8] == '\x02') {\n          ccl.w[uVar8 >> 5] = ccl.w[uVar8 >> 5] | 1 << ((byte)uVar8 & 0x1f);\n        }\n        uVar8 = uVar8 + 1;\n      } while (uVar8 != 0x100);\n      if (uVar18 == 0x57) goto LAB_00023b34;\n      goto LAB_00023ae7;\n    case 0x51:\n      cVar16 = (dfa->localeinfo).multibyte;\n      uVar18 = 0x5b;\n      break;\n    case 0x52:\n      cVar16 = (dfa->localeinfo).multibyte;\n      uVar18 = 0x5c;\n      break;\n    case 0x54:\n      goto _L1433;\n    case 0x56:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) goto LAB_00023880;\n      goto _L1446;\n    case 0x58:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) {\n        (dfa->lex).lasttok = 0x110;\n        uVar18 = 0x110;\n        goto LAB_0002318d;\n      }\n      goto _L1458;\n    case 0x71:\n      local_51 = 1;\n      pbVar15 = local_60;\n      pbVar17 = local_5c;\n      local_5c = pbVar1;\n      goto LAB_00023295;\n    case 0x72:\n      bVar21 = 1;\n      goto LAB_000233fa;\n    }\n    break;\n  case 0x54:\n    if (((((dfa->syntax).syntax_bits & 8) != 0) ||\n        (iVar14 = (dfa->lex).lasttok, iVar14 - 0x106U < 2)) || (iVar14 == -1)) {\nLAB_00023880:\n      (dfa->lex).lasttok = 0x10c;\n      uVar18 = 0x10c;\n      goto LAB_0002318d;\n    }\n_L1433:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x5e;\n    break;\n  case 0x56:\n_L1446:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x60;\n    break;\n  case 0x58:\n_L1458:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x62;\n    break;\n  case 0x71:\n    local_51 = 0;\n    pbVar15 = local_60;\n    pbVar17 = local_5c;\n    local_5c = pbVar1;\nLAB_00023295:\n    uVar18 = (dfa->syntax).syntax_bits;\n    if ((((uVar18 & 0x200) != 0) && ((((byte)(uVar18 >> 0xc) ^ 1) & 1) == local_51)) &&\n       (((uVar18 & 0x10) != 0 || ((dfa->lex).laststart == false)))) {\n      pbVar1 = pbVar17 + (int)pbVar15;\n      (dfa->lex).maxrep = -1;\n      (dfa->lex).minrep = -1;\n      pbVar7 = local_5c;\n      if (pbVar1 == local_5c) {\nLAB_00023b5a:\n        local_5c = pbVar7;\n        if (local_51 == 0) {\nLAB_00023a30:\n          if (pbVar1 != local_5c) goto LAB_00023a3a;\n        }\n      }\n      else {\n        bVar21 = pbVar17[1];\n        pbVar15 = (byte *)(int)(char)bVar21;\n        if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar17 = (byte *)0xffffffff;\n          local_60 = pbVar15;\n          do {\n            if ((-1 < (int)pbVar17) &&\n               (local_60 = local_60 + (int)pbVar17 * 10, 0x8030 < (int)local_60)) {\n              local_60 = (byte *)0x8030;\n            }\n            pbVar17 = local_60 + -0x30;\n            (dfa->lex).minrep = (int)pbVar17;\n            local_5c = local_5c + 1;\n            pbVar7 = local_5c;\n            if (pbVar1 == local_5c) goto LAB_00023b5a;\n            local_60 = (byte *)(int)(char)*local_5c;\n            pbVar15 = local_60 + -0x30;\n          } while ((byte)pbVar15 < 10);\n          if (*local_5c == 0x2c) {\n            if ((int)pbVar17 < 0) goto LAB_00023bed;\nLAB_00023b6e:\n            pbVar15 = local_5c + 1;\n            pbVar7 = pbVar1;\n            if (pbVar1 == pbVar15) goto LAB_00023b5a;\n            bVar21 = local_5c[1];\n            local_5c = pbVar15;\n            if ((byte)(bVar21 - 0x30) < 10) {\n              iVar14 = -1;\n              do {\n                iVar19 = (int)(char)bVar21;\n                if ((-1 < iVar14) && (iVar19 = iVar19 + iVar14 * 10, 0x8030 < iVar19)) {\n                  iVar19 = 0x8030;\n                }\n                iVar14 = iVar19 + -0x30;\n                (dfa->lex).maxrep = iVar14;\n                pbVar15 = pbVar15 + 1;\n                if (pbVar1 == pbVar15) goto LAB_00023b5a;\n                bVar21 = *pbVar15;\n                local_5c = pbVar15;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            goto LAB_00023bd8;\n          }\n          (dfa->lex).maxrep = (int)pbVar17;\n          if (local_51 == 0) goto LAB_00023a30;\nLAB_000239fb:\n          if (*local_5c == 0x5c) {\n            local_5c = local_5c + 1;\n            goto LAB_00023a30;\n          }\n        }\n        else {\n          if (bVar21 == 0x2c) {\nLAB_00023bed:\n            (dfa->lex).minrep = 0;\n            goto LAB_00023b6e;\n          }\nLAB_00023bd8:\n          if (local_51 != 0) goto LAB_000239fb;\nLAB_00023a3a:\n          if ((*local_5c == 0x7d) && (pbVar17 = (byte *)(dfa->lex).minrep, -1 < (int)pbVar17)) {\n            iVar14 = (dfa->lex).maxrep;\n            if (-1 < iVar14) {\n              if (iVar14 < (int)pbVar17) goto LAB_00023a04;\n              if (0x7fff < iVar14) {\n                pcVar13 = "regular expression too big";\n                goto LAB_00023a1b;\n              }\n            }\n            (dfa->lex).laststart = false;\n            uVar18 = 0x104;\n            (dfa->lex).lasttok = 0x104;\n            (dfa->lex).ptr = (char *)(local_5c + 1);\n            (dfa->lex).left = (int)pbVar1 - (int)(local_5c + 1);\n            goto LAB_0002318d;\n          }\n        }\n      }\nLAB_00023a04:\n      if ((uVar18 & 0x200000) == 0) {\n        pcVar13 = "invalid content of \\{\\}";\n        pbVar17 = pbVar15;\nLAB_00023a1b:\n        pcVar13 = (char *)dcgettext(0,pcVar13,5,pbVar17);\n                    /* WARNING: Subroutine does not return */\n        dfaerror(pcVar13);\n      }\n    }\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x7b;\n    break;\n  case 0x72:\n    bVar21 = 0;\nLAB_000233fa:\n    uVar18 = (dfa->syntax).syntax_bits;\n    if (((uVar18 & 0x400) != 0) || ((((byte)(uVar18 >> 0xf) ^ 1) & 1) != bVar21)) {\n      cVar16 = (dfa->localeinfo).multibyte;\n      uVar18 = 0x7c;\n      break;\n    }\nLAB_000238f1:\n    (dfa->lex).laststart = true;\n    uVar18 = 0x106;\n    (dfa->lex).lasttok = 0x106;\n    goto LAB_0002318d;\n  }\nLAB_00023160:\n  (dfa->lex).laststart = false;\n  if (cVar16 == '\0') {\n    if (((dfa->syntax).case_fold != false) &&\n       (ppuVar9 = __ctype_b_loc(), (*(byte *)((int)*ppuVar9 + uVar18 * 2 + 1) & 4) != 0)) {\n      uVar8 = 0;\n      do {\n        *(undefined4 *)((int)ccl.w + uVar8) = 0;\n        uVar8 = uVar8 + 4;\n      } while (uVar8 < 0x20);\n      setbit_case_fold_c(uVar18,&ccl);\nLAB_000237bd:\n      pVar12 = charclass_index(dfa,&ccl);\n      uVar18 = pVar12 + 0x114;\n    }\n    (dfa->lex).lasttok = uVar18;\n  }\n  else {\n    (dfa->lex).lasttok = 0x109;\n    uVar18 = 0x109;\n  }\nLAB_0002318d:\n  if (iVar3 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar18;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" { (declaration "byte *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "size_t *psVar2;" primitive_type (pointer_declarator "*psVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "wint_t wVar4;" type_identifier identifier ;) (declaration "ushort *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "bool bVar6;" primitive_type identifier ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "ushort **ppuVar9;" type_identifier (pointer_declarator "**ppuVar9" * (pointer_declarator "*ppuVar9" * identifier)) ;) (declaration "size_t sVar10;" primitive_type identifier ;) (declaration "size_t sVar11;" primitive_type identifier ;) (declaration "ptrdiff_t pVar12;" primitive_type identifier ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "char cVar16;" primitive_type identifier ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "mbstate_t *pmVar20;" type_identifier (pointer_declarator "*pmVar20" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "byte bVar21;" type_identifier identifier ;) (declaration "byte *local_60;" type_identifier (pointer_declarator "*local_60" * identifier) ;) (declaration "byte *local_5c;" type_identifier (pointer_declarator "*local_5c" * identifier) ;) (declaration "byte local_51;" type_identifier identifier ;) (declaration "wchar_t wch;" type_identifier identifier ;) (declaration "charclass ccl;" type_identifier identifier ;) (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" identifier = number_literal) ;) (expression_statement "local_60 = (byte *)(dfa->lex).left;" (assignment_expression "local_60 = (byte *)(dfa->lex).left" identifier = (cast_expression "(byte *)(dfa->lex).left" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(dfa->lex).left" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "iVar3 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar3 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (local_60 == (byte *)0x0) {\n    (dfa->lex).lasttok = -1;\n    uVar18 = 0xffffffff;\n    goto LAB_0002318d;\n  }" if (parenthesized_expression "(local_60 == (byte *)0x0)" ( (binary_expression "local_60 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (dfa->lex).lasttok = -1;\n    uVar18 = 0xffffffff;\n    goto LAB_0002318d;\n  }" { (expression_statement "(dfa->lex).lasttok = -1;" (assignment_expression "(dfa->lex).lasttok = -1" (field_expression "(dfa->lex).lasttok" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "uVar18 = 0xffffffff;" (assignment_expression "uVar18 = 0xffffffff" identifier = number_literal) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) })) (expression_statement "local_5c = (byte *)(dfa->lex).ptr;" (assignment_expression "local_5c = (byte *)(dfa->lex).ptr" identifier = (cast_expression "(byte *)(dfa->lex).ptr" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(dfa->lex).ptr" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "wVar4 = (dfa->localeinfo).sbctowc[*local_5c];" (assignment_expression "wVar4 = (dfa->localeinfo).sbctowc[*local_5c]" identifier = (subscript_expression "(dfa->localeinfo).sbctowc[*local_5c]" (field_expression "(dfa->localeinfo).sbctowc" (parenthesized_expression "(dfa->localeinfo)" ( (field_expression "dfa->localeinfo" identifier -> field_identifier) )) . field_identifier) [ (pointer_expression "*local_5c" * identifier) ])) ;) (if_statement "if (wVar4 == 0xffffffff) {\n    sVar10 = rpl_mbrtowc(&wch,(char *)local_5c,(size_t)local_60,&dfa->mbs);\n    if (0xfffffffc < sVar10 - 1) {\n      (dfa->mbs).__count = 0;\n      local_5c = (byte *)(dfa->lex).ptr;\n      (dfa->mbs).__value.__wch = 0;\n      local_60 = (byte *)(dfa->lex).left;\n      goto LAB_00023107;\n    }\n    local_60 = (byte *)(dfa->lex).left;\n    (dfa->lex).cur_mb_len = sVar10;\n    (dfa->lex).wctok = wch;\n    local_5c = (byte *)(dfa->lex).ptr;\n    if (sVar10 == 1) goto LAB_00023117;\nLAB_00023235:\n    uVar18 = 0xffffffff;\n    (dfa->lex).ptr = (char *)(local_5c + sVar10);\n    cVar16 = (dfa->localeinfo).multibyte;\n    (dfa->lex).left = (int)local_60 - sVar10;\n    goto LAB_00023160;\n  }" if (parenthesized_expression "(wVar4 == 0xffffffff)" ( (binary_expression "wVar4 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n    sVar10 = rpl_mbrtowc(&wch,(char *)local_5c,(size_t)local_60,&dfa->mbs);\n    if (0xfffffffc < sVar10 - 1) {\n      (dfa->mbs).__count = 0;\n      local_5c = (byte *)(dfa->lex).ptr;\n      (dfa->mbs).__value.__wch = 0;\n      local_60 = (byte *)(dfa->lex).left;\n      goto LAB_00023107;\n    }\n    local_60 = (byte *)(dfa->lex).left;\n    (dfa->lex).cur_mb_len = sVar10;\n    (dfa->lex).wctok = wch;\n    local_5c = (byte *)(dfa->lex).ptr;\n    if (sVar10 == 1) goto LAB_00023117;\nLAB_00023235:\n    uVar18 = 0xffffffff;\n    (dfa->lex).ptr = (char *)(local_5c + sVar10);\n    cVar16 = (dfa->localeinfo).multibyte;\n    (dfa->lex).left = (int)local_60 - sVar10;\n    goto LAB_00023160;\n  }" { (expression_statement "sVar10 = rpl_mbrtowc(&wch,(char *)local_5c,(size_t)local_60,&dfa->mbs);" (assignment_expression "sVar10 = rpl_mbrtowc(&wch,(char *)local_5c,(size_t)local_60,&dfa->mbs)" identifier = (call_expression "rpl_mbrtowc(&wch,(char *)local_5c,(size_t)local_60,&dfa->mbs)" identifier (argument_list "(&wch,(char *)local_5c,(size_t)local_60,&dfa->mbs)" ( (pointer_expression "&wch" & identifier) , (cast_expression "(char *)local_5c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(size_t)local_60" ( (type_descriptor "size_t" primitive_type) ) identifier) , (pointer_expression "&dfa->mbs" & (field_expression "dfa->mbs" identifier -> field_identifier)) )))) ;) (if_statement "if (0xfffffffc < sVar10 - 1) {\n      (dfa->mbs).__count = 0;\n      local_5c = (byte *)(dfa->lex).ptr;\n      (dfa->mbs).__value.__wch = 0;\n      local_60 = (byte *)(dfa->lex).left;\n      goto LAB_00023107;\n    }" if (parenthesized_expression "(0xfffffffc < sVar10 - 1)" ( (binary_expression "0xfffffffc < sVar10 - 1" number_literal < (binary_expression "sVar10 - 1" identifier - number_literal)) )) (compound_statement "{\n      (dfa->mbs).__count = 0;\n      local_5c = (byte *)(dfa->lex).ptr;\n      (dfa->mbs).__value.__wch = 0;\n      local_60 = (byte *)(dfa->lex).left;\n      goto LAB_00023107;\n    }" { (expression_statement "(dfa->mbs).__count = 0;" (assignment_expression "(dfa->mbs).__count = 0" (field_expression "(dfa->mbs).__count" (parenthesized_expression "(dfa->mbs)" ( (field_expression "dfa->mbs" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "local_5c = (byte *)(dfa->lex).ptr;" (assignment_expression "local_5c = (byte *)(dfa->lex).ptr" identifier = (cast_expression "(byte *)(dfa->lex).ptr" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(dfa->lex).ptr" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "(dfa->mbs).__value.__wch = 0;" (assignment_expression "(dfa->mbs).__value.__wch = 0" (field_expression "(dfa->mbs).__value.__wch" (field_expression "(dfa->mbs).__value" (parenthesized_expression "(dfa->mbs)" ( (field_expression "dfa->mbs" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "local_60 = (byte *)(dfa->lex).left;" (assignment_expression "local_60 = (byte *)(dfa->lex).left" identifier = (cast_expression "(byte *)(dfa->lex).left" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(dfa->lex).left" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier))) ;) (goto_statement "goto LAB_00023107;" goto statement_identifier ;) })) (expression_statement "local_60 = (byte *)(dfa->lex).left;" (assignment_expression "local_60 = (byte *)(dfa->lex).left" identifier = (cast_expression "(byte *)(dfa->lex).left" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(dfa->lex).left" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "(dfa->lex).cur_mb_len = sVar10;" (assignment_expression "(dfa->lex).cur_mb_len = sVar10" (field_expression "(dfa->lex).cur_mb_len" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(dfa->lex).wctok = wch;" (assignment_expression "(dfa->lex).wctok = wch" (field_expression "(dfa->lex).wctok" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "local_5c = (byte *)(dfa->lex).ptr;" (assignment_expression "local_5c = (byte *)(dfa->lex).ptr" identifier = (cast_expression "(byte *)(dfa->lex).ptr" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(dfa->lex).ptr" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier))) ;) (if_statement "if (sVar10 == 1) goto LAB_00023117;" if (parenthesized_expression "(sVar10 == 1)" ( (binary_expression "sVar10 == 1" identifier == number_literal) )) (goto_statement "goto LAB_00023117;" goto statement_identifier ;)) (labeled_statement "LAB_00023235:\n    uVar18 = 0xffffffff;" statement_identifier : (expression_statement "uVar18 = 0xffffffff;" (assignment_expression "uVar18 = 0xffffffff" identifier = number_literal) ;)) (expression_statement "(dfa->lex).ptr = (char *)(local_5c + sVar10);" (assignment_expression "(dfa->lex).ptr = (char *)(local_5c + sVar10)" (field_expression "(dfa->lex).ptr" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(char *)(local_5c + sVar10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_5c + sVar10)" ( (binary_expression "local_5c + sVar10" identifier + identifier) )))) ;) (expression_statement "cVar16 = (dfa->localeinfo).multibyte;" (assignment_expression "cVar16 = (dfa->localeinfo).multibyte" identifier = (field_expression "(dfa->localeinfo).multibyte" (parenthesized_expression "(dfa->localeinfo)" ( (field_expression "dfa->localeinfo" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "(dfa->lex).left = (int)local_60 - sVar10;" (assignment_expression "(dfa->lex).left = (int)local_60 - sVar10" (field_expression "(dfa->lex).left" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = (binary_expression "(int)local_60 - sVar10" (cast_expression "(int)local_60" ( (type_descriptor "int" primitive_type) ) identifier) - identifier)) ;) (goto_statement "goto LAB_00023160;" goto statement_identifier ;) })) (labeled_statement "LAB_00023107:\n  (dfa->lex).wctok = wVar4;" statement_identifier : (expression_statement "(dfa->lex).wctok = wVar4;" (assignment_expression "(dfa->lex).wctok = wVar4" (field_expression "(dfa->lex).wctok" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = identifier) ;)) (expression_statement "(dfa->lex).cur_mb_len = 1;" (assignment_expression "(dfa->lex).cur_mb_len = 1" (field_expression "(dfa->lex).cur_mb_len" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (labeled_statement "LAB_00023117:\n  uVar18 = (uint)*local_5c;" statement_identifier : (expression_statement "uVar18 = (uint)*local_5c;" (assignment_expression "uVar18 = (uint)*local_5c" identifier = (binary_expression "(uint)*local_5c" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;)) (expression_statement "pbVar1 = local_5c + 1;" (assignment_expression "pbVar1 = local_5c + 1" identifier = (binary_expression "local_5c + 1" identifier + number_literal)) ;) (expression_statement "(dfa->lex).ptr = (char *)pbVar1;" (assignment_expression "(dfa->lex).ptr = (char *)pbVar1" (field_expression "(dfa->lex).ptr" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(char *)pbVar1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar15 = local_60 + -1;" (assignment_expression "pbVar15 = local_60 + -1" identifier = (binary_expression "local_60 + -1" identifier + number_literal)) ;) (expression_statement "(dfa->lex).left = (size_t)pbVar15;" (assignment_expression "(dfa->lex).left = (size_t)pbVar15" (field_expression "(dfa->lex).left" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(size_t)pbVar15" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) (if_statement "if (0x72 < (byte)(uVar18 - 10)) goto _L1538;" if (parenthesized_expression "(0x72 < (byte)(uVar18 - 10))" ( (binary_expression "0x72 < (byte)(uVar18 - 10)" number_literal < (call_expression "(byte)(uVar18 - 10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar18 - 10)" ( (binary_expression "uVar18 - 10" identifier - number_literal) )))) )) (goto_statement "goto _L1538;" goto statement_identifier ;)) (expression_statement "uVar8 = uVar18 - 10 & 0xff;" (assignment_expression "uVar8 = uVar18 - 10 & 0xff" identifier = (binary_expression "uVar18 - 10 & 0xff" (binary_expression "uVar18 - 10" identifier - number_literal) & number_literal)) ;) (expression_statement "pbVar17 = (byte *)((int)&_GLOBAL_OFFSET_TABLE_ + (&switchD_00023149::switchdataD_0002ef08)[uVar8])\n  ;" (assignment_expression "pbVar17 = (byte *)((int)&_GLOBAL_OFFSET_TABLE_ + (&switchD_00023149::switchdataD_0002ef08)[uVar8])" identifier = (cast_expression "(byte *)((int)&_GLOBAL_OFFSET_TABLE_ + (&switchD_00023149::switchdataD_0002ef08)[uVar8])" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&_GLOBAL_OFFSET_TABLE_ + (&switchD_00023149::switchdataD_0002ef08)[uVar8])" ( (binary_expression "(int)&_GLOBAL_OFFSET_TABLE_ + (&switchD_00023149::switchdataD_0002ef08)[uVar8]" (cast_expression "(int)&_GLOBAL_OFFSET_TABLE_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&_GLOBAL_OFFSET_TABLE_" & identifier)) + (subscript_expression "(&switchD_00023149::switchdataD_0002ef08)[uVar8]" (parenthesized_expression "(&switchD_00023149::switchdataD_0002ef08)" ( (ERROR "&switchD_00023149::" (pointer_expression "&switchD_00023149" & identifier) : :) identifier )) [ identifier ])) )))) ;) (switch_statement "switch(uVar8) {\n  case 0:\n    uVar18 = (dfa->syntax).syntax_bits;\n    if (((uVar18 & 0x400) != 0) || ((uVar18 & 0x800) == 0)) {\n_L1503:\n      cVar16 = (dfa->localeinfo).multibyte;\n      uVar18 = 10;\n      break;\n    }\n    goto LAB_000238f1;\n  default:\n    goto _L1538;\n  case 0x1a:\n    uVar18 = (dfa->syntax).syntax_bits;\n    if ((((((uVar18 & 8) != 0) || (pbVar15 == (byte *)0x0)) ||\n         ((pbVar17 = (byte *)((uVar18 >> 0xd ^ 1) & 1), pbVar17 < pbVar15 &&\n          (pbVar1[(uint)(local_5c[1] == 0x5c) & (uint)pbVar17] == 0x29)))) ||\n        ((pbVar17 = (byte *)((uVar18 >> 0xf ^ 1) & 1), pbVar17 < pbVar15 &&\n         (pbVar1[(uint)pbVar17 & (uint)(local_5c[1] == 0x5c)] == 0x7c)))) ||\n       (((uVar18 & 0x800) != 0 && (local_5c[1] == 10)))) {\nLAB_00023868:\n      (dfa->lex).lasttok = 0x10d;\n      uVar18 = 0x10d;\n      goto LAB_0002318d;\n    }\n_L1438:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x24;\n    break;\n  case 0x1d:\n_L1449:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x27;\n    break;\n  case 0x1e:\n    bVar21 = 0;\nLAB_00023262:\n    if ((((byte)((dfa->syntax).syntax_bits >> 0xd) ^ 1) & 1) == bVar21) {\n      psVar2 = &(dfa->lex).parens;\n      *psVar2 = *psVar2 + 1;\n      uVar18 = 0x107;\n      (dfa->lex).laststart = true;\n      (dfa->lex).lasttok = 0x107;\n      goto LAB_0002318d;\n    }\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x28;\n    break;\n  case 0x1f:\n    bVar21 = 0;\nLAB_0002351a:\n    uVar18 = (dfa->syntax).syntax_bits;\n    if (((((byte)(uVar18 >> 0xd) ^ 1) & 1) == bVar21) &&\n       ((sVar10 = (dfa->lex).parens, sVar10 != 0 || ((uVar18 & 0x20000) == 0)))) {\n      (dfa->lex).laststart = false;\n      uVar18 = 0x108;\n      (dfa->lex).parens = sVar10 - 1;\n      (dfa->lex).lasttok = 0x108;\n      goto LAB_0002318d;\n    }\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x29;\n    break;\n  case 0x20:\n    if ((((dfa->syntax).syntax_bits & 0x10) != 0) || ((dfa->lex).laststart == false)) {\n      (dfa->lex).lasttok = 0x102;\n      uVar18 = 0x102;\n      goto LAB_0002318d;\n    }\n_L1469:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x2a;\n    break;\n  case 0x21:\n    bVar21 = 0;\nLAB_000234d2:\n    uVar18 = (dfa->syntax).syntax_bits;\n    if ((((uVar18 & 0x400) == 0) && (((byte)(uVar18 >> 1) & 1) == bVar21)) &&\n       (((uVar18 & 0x10) != 0 || ((dfa->lex).laststart == false)))) {\n      (dfa->lex).lasttok = 0x103;\n      uVar18 = 0x103;\n      goto LAB_0002318d;\n    }\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x2b;\n    break;\n  case 0x24:\n    bVar6 = false;\nLAB_0002336a:\n    cVar16 = (dfa->localeinfo).multibyte;\n    if (!bVar6) {\n      sVar10 = dfa->canychar;\n      if (sVar10 == 0xffffffff) {\n        uVar18 = (dfa->syntax).syntax_bits;\n        ccl.w[0] = 0xffffffff;\n        ccl.w[1] = 0xffffffff;\n        ccl.w[2] = 0xffffffff;\n        ccl.w[3] = 0xffffffff;\n        ccl.w[4] = 0xffffffff;\n        ccl.w[5] = 0xffffffff;\n        ccl.w[6] = 0xffffffff;\n        ccl.w[7] = 0xffffffff;\n        if ((uVar18 & 0x40) == 0) {\n          ccl.w[0] = 0xfffffbff;\n        }\n        if ((uVar18 & 0x80) != 0) {\n          ccl.w[0] = ccl.w[0] & 0xfffffffe;\n        }\n        if ((_Bool)cVar16 != false) {\n          uVar18 = 0;\n          do {\n            if ((dfa->localeinfo).sbctowc[uVar18] == 0xffffffff) {\n              ccl.w[uVar18 >> 5] = ccl.w[uVar18 >> 5] & ~(1 << ((byte)uVar18 & 0x1f));\n            }\n            uVar18 = uVar18 + 1;\n          } while (uVar18 != 0x100);\n        }\n        sVar10 = charclass_index(dfa,&ccl);\n        cVar16 = (dfa->localeinfo).multibyte;\n        dfa->canychar = sVar10;\n      }\n      (dfa->lex).laststart = false;\n      uVar18 = 0x10a;\n      if (cVar16 == '\0') {\n        uVar18 = sVar10 + 0x114;\n      }\n      (dfa->lex).lasttok = uVar18;\n      goto LAB_0002318d;\n    }\n    uVar18 = 0x2e;\n    break;\n  case 0x32:\n_L1452:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x3c;\n    break;\n  case 0x34:\n_L1455:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x3e;\n    break;\n  case 0x35:\n    bVar21 = 0;\nLAB_000233b2:\n    uVar18 = (dfa->syntax).syntax_bits;\n    if ((((uVar18 & 0x400) == 0) && (((byte)(uVar18 >> 1) & 1) == bVar21)) &&\n       (((uVar18 & 0x10) != 0 || ((dfa->lex).laststart == false)))) {\n      (dfa->lex).lasttok = 0x101;\n      uVar18 = 0x101;\n      goto LAB_0002318d;\n    }\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x3f;\n    break;\n  case 0x38:\n_L1461:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x42;\n    break;\n  case 0x49:\n  case 0x69:\n    bVar6 = false;\n    local_60 = pbVar15;\n    local_5c = pbVar1;\nLAB_0002342a:\n    cVar16 = (dfa->localeinfo).multibyte;\n    if ((!bVar6) || (((dfa->syntax).syntax_bits & 0x80000) != 0)) break;\n    if ((_Bool)cVar16 != false) {\n      pcVar13 = &UNK_0002f468 + (uVar18 == 0x73);\nLAB_0002345c:\n      (dfa->lex).ptr = pcVar13;\n      sVar11 = strlen(pcVar13);\n      (dfa->lex).left = sVar11;\n      uVar18 = parse_bracket_exp(dfa);\n      (dfa->lex).laststart = false;\n      (dfa->lex).lasttok = uVar18;\n      (dfa->lex).ptr = (char *)local_5c;\n      (dfa->lex).left = (size_t)local_60;\n      goto LAB_0002318d;\n    }\n    uVar8 = 0;\n    do {\n      *(undefined4 *)((int)ccl.w + uVar8) = 0;\n      uVar8 = uVar8 + 4;\n    } while (uVar8 < 0x20);\n    ppuVar9 = __ctype_b_loc();\n    uVar8 = 0;\n    puVar5 = *ppuVar9;\n    do {\n      if ((*(byte *)((int)puVar5 + uVar8 * 2 + 1) & 0x20) != 0) {\n        ccl.w[uVar8 >> 5] = ccl.w[uVar8 >> 5] | 1 << ((byte)uVar8 & 0x1f);\n      }\n      uVar8 = uVar8 + 1;\n    } while (uVar8 != 0x100);\n    if (uVar18 == 0x53) {\nLAB_00023b34:\n      ccl.w[0] = ~ccl.w[0];\n      ccl.w[1] = ~ccl.w[1];\n      ccl.w[2] = ~ccl.w[2];\n      ccl.w[3] = ~ccl.w[3];\n      ccl.w[4] = ~ccl.w[4];\n      ccl.w[5] = ~ccl.w[5];\n      ccl.w[6] = ~ccl.w[6];\n      ccl.w[7] = ~ccl.w[7];\n    }\nLAB_00023ae7:\n    (dfa->lex).laststart = false;\n    goto LAB_000237bd;\n  case 0x51:\n    (dfa->lex).laststart = false;\n    uVar18 = parse_bracket_exp(dfa);\n    (dfa->lex).lasttok = uVar18;\n    goto LAB_0002318d;\n  case 0x52:\n    if (pbVar15 == (byte *)0x0) {\n      pcVar13 = "unfinished \\ escape";\n      goto LAB_00023a1b;\n    }\n    wVar4 = (dfa->localeinfo).sbctowc[local_5c[1]];\n    local_60 = pbVar15;\n    local_5c = pbVar1;\n    if (wVar4 == 0xffffffff) {\n      sVar10 = rpl_mbrtowc(&wch,(char *)pbVar1,(size_t)pbVar15,&dfa->mbs);\n      if (0xfffffffc < sVar10 - 1) {\n        pmVar20 = &dfa->mbs;\n        for (iVar14 = 2; iVar14 != 0; iVar14 = iVar14 + -1) {\n          pmVar20->__count = 0;\n          pmVar20 = (mbstate_t *)((int)(pmVar20 + -(uint)bVar21) + 4);\n        }\n        local_5c = (byte *)(dfa->lex).ptr;\n        local_60 = (byte *)(dfa->lex).left;\n        goto LAB_00023748;\n      }\n      local_60 = (byte *)(dfa->lex).left;\n      (dfa->lex).cur_mb_len = sVar10;\n      (dfa->lex).wctok = wch;\n      local_5c = (byte *)(dfa->lex).ptr;\n      if (sVar10 != 1) goto LAB_00023235;\n    }\n    else {\nLAB_00023748:\n      (dfa->lex).cur_mb_len = 1;\n      (dfa->lex).wctok = wVar4;\n    }\n    uVar18 = (uint)*local_5c;\n    pbVar1 = local_5c + 1;\n    (dfa->lex).ptr = (char *)pbVar1;\n    pbVar15 = local_60 + -1;\n    (dfa->lex).left = (size_t)pbVar15;\n    switch(uVar18 - 10 & 0xff) {\n    case 0:\n      goto _L1503;\n    case 0x1a:\n      goto _L1438;\n    case 0x1d:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) goto LAB_00023868;\n      goto _L1449;\n    case 0x1e:\n      bVar21 = 1;\n      goto LAB_00023262;\n    case 0x1f:\n      bVar21 = 1;\n      goto LAB_0002351a;\n    case 0x20:\n      goto _L1469;\n    case 0x21:\n      bVar21 = 1;\n      goto LAB_000234d2;\n    case 0x24:\n      bVar6 = true;\n      goto LAB_0002336a;\n    case 0x27:\n    case 0x28:\n    case 0x29:\n    case 0x2a:\n    case 0x2b:\n    case 0x2c:\n    case 0x2d:\n    case 0x2e:\n    case 0x2f:\n      if (((dfa->syntax).syntax_bits & 0x4000) == 0) {\n        (dfa->lex).laststart = false;\n        uVar18 = 0x112;\n        (dfa->lex).lasttok = 0x112;\n        goto LAB_0002318d;\n      }\n    default:\n_L1538:\n      cVar16 = (dfa->localeinfo).multibyte;\n      break;\n    case 0x32:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) {\n        (dfa->lex).lasttok = 0x10e;\n        uVar18 = 0x10e;\n        goto LAB_0002318d;\n      }\n      goto _L1452;\n    case 0x34:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) {\n        (dfa->lex).lasttok = 0x10f;\n        uVar18 = 0x10f;\n        goto LAB_0002318d;\n      }\n      goto _L1455;\n    case 0x35:\n      bVar21 = 1;\n      goto LAB_000233b2;\n    case 0x38:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) {\n        (dfa->lex).lasttok = 0x111;\n        uVar18 = 0x111;\n        goto LAB_0002318d;\n      }\n      goto _L1461;\n    case 0x49:\n    case 0x69:\n      bVar6 = true;\n      local_60 = pbVar15;\n      local_5c = pbVar1;\n      goto LAB_0002342a;\n    case 0x4d:\n    case 0x6d:\n      cVar16 = (dfa->localeinfo).multibyte;\n      if (((dfa->syntax).syntax_bits & 0x80000) != 0) break;\n      if ((_Bool)cVar16 != false) {\n        pcVar13 = &UNK_0002f474 + (uVar18 == 0x77);\n        local_60 = pbVar15;\n        local_5c = pbVar1;\n        goto LAB_0002345c;\n      }\n      uVar8 = 0;\n      do {\n        *(undefined4 *)((int)ccl.w + uVar8) = 0;\n        uVar8 = uVar8 + 4;\n      } while (uVar8 < 0x20);\n      uVar8 = 0;\n      do {\n        if ((dfa->syntax).sbit[uVar8] == '\x02') {\n          ccl.w[uVar8 >> 5] = ccl.w[uVar8 >> 5] | 1 << ((byte)uVar8 & 0x1f);\n        }\n        uVar8 = uVar8 + 1;\n      } while (uVar8 != 0x100);\n      if (uVar18 == 0x57) goto LAB_00023b34;\n      goto LAB_00023ae7;\n    case 0x51:\n      cVar16 = (dfa->localeinfo).multibyte;\n      uVar18 = 0x5b;\n      break;\n    case 0x52:\n      cVar16 = (dfa->localeinfo).multibyte;\n      uVar18 = 0x5c;\n      break;\n    case 0x54:\n      goto _L1433;\n    case 0x56:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) goto LAB_00023880;\n      goto _L1446;\n    case 0x58:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) {\n        (dfa->lex).lasttok = 0x110;\n        uVar18 = 0x110;\n        goto LAB_0002318d;\n      }\n      goto _L1458;\n    case 0x71:\n      local_51 = 1;\n      pbVar15 = local_60;\n      pbVar17 = local_5c;\n      local_5c = pbVar1;\n      goto LAB_00023295;\n    case 0x72:\n      bVar21 = 1;\n      goto LAB_000233fa;\n    }\n    break;\n  case 0x54:\n    if (((((dfa->syntax).syntax_bits & 8) != 0) ||\n        (iVar14 = (dfa->lex).lasttok, iVar14 - 0x106U < 2)) || (iVar14 == -1)) {\nLAB_00023880:\n      (dfa->lex).lasttok = 0x10c;\n      uVar18 = 0x10c;\n      goto LAB_0002318d;\n    }\n_L1433:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x5e;\n    break;\n  case 0x56:\n_L1446:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x60;\n    break;\n  case 0x58:\n_L1458:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x62;\n    break;\n  case 0x71:\n    local_51 = 0;\n    pbVar15 = local_60;\n    pbVar17 = local_5c;\n    local_5c = pbVar1;\nLAB_00023295:\n    uVar18 = (dfa->syntax).syntax_bits;\n    if ((((uVar18 & 0x200) != 0) && ((((byte)(uVar18 >> 0xc) ^ 1) & 1) == local_51)) &&\n       (((uVar18 & 0x10) != 0 || ((dfa->lex).laststart == false)))) {\n      pbVar1 = pbVar17 + (int)pbVar15;\n      (dfa->lex).maxrep = -1;\n      (dfa->lex).minrep = -1;\n      pbVar7 = local_5c;\n      if (pbVar1 == local_5c) {\nLAB_00023b5a:\n        local_5c = pbVar7;\n        if (local_51 == 0) {\nLAB_00023a30:\n          if (pbVar1 != local_5c) goto LAB_00023a3a;\n        }\n      }\n      else {\n        bVar21 = pbVar17[1];\n        pbVar15 = (byte *)(int)(char)bVar21;\n        if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar17 = (byte *)0xffffffff;\n          local_60 = pbVar15;\n          do {\n            if ((-1 < (int)pbVar17) &&\n               (local_60 = local_60 + (int)pbVar17 * 10, 0x8030 < (int)local_60)) {\n              local_60 = (byte *)0x8030;\n            }\n            pbVar17 = local_60 + -0x30;\n            (dfa->lex).minrep = (int)pbVar17;\n            local_5c = local_5c + 1;\n            pbVar7 = local_5c;\n            if (pbVar1 == local_5c) goto LAB_00023b5a;\n            local_60 = (byte *)(int)(char)*local_5c;\n            pbVar15 = local_60 + -0x30;\n          } while ((byte)pbVar15 < 10);\n          if (*local_5c == 0x2c) {\n            if ((int)pbVar17 < 0) goto LAB_00023bed;\nLAB_00023b6e:\n            pbVar15 = local_5c + 1;\n            pbVar7 = pbVar1;\n            if (pbVar1 == pbVar15) goto LAB_00023b5a;\n            bVar21 = local_5c[1];\n            local_5c = pbVar15;\n            if ((byte)(bVar21 - 0x30) < 10) {\n              iVar14 = -1;\n              do {\n                iVar19 = (int)(char)bVar21;\n                if ((-1 < iVar14) && (iVar19 = iVar19 + iVar14 * 10, 0x8030 < iVar19)) {\n                  iVar19 = 0x8030;\n                }\n                iVar14 = iVar19 + -0x30;\n                (dfa->lex).maxrep = iVar14;\n                pbVar15 = pbVar15 + 1;\n                if (pbVar1 == pbVar15) goto LAB_00023b5a;\n                bVar21 = *pbVar15;\n                local_5c = pbVar15;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            goto LAB_00023bd8;\n          }\n          (dfa->lex).maxrep = (int)pbVar17;\n          if (local_51 == 0) goto LAB_00023a30;\nLAB_000239fb:\n          if (*local_5c == 0x5c) {\n            local_5c = local_5c + 1;\n            goto LAB_00023a30;\n          }\n        }\n        else {\n          if (bVar21 == 0x2c) {\nLAB_00023bed:\n            (dfa->lex).minrep = 0;\n            goto LAB_00023b6e;\n          }\nLAB_00023bd8:\n          if (local_51 != 0) goto LAB_000239fb;\nLAB_00023a3a:\n          if ((*local_5c == 0x7d) && (pbVar17 = (byte *)(dfa->lex).minrep, -1 < (int)pbVar17)) {\n            iVar14 = (dfa->lex).maxrep;\n            if (-1 < iVar14) {\n              if (iVar14 < (int)pbVar17) goto LAB_00023a04;\n              if (0x7fff < iVar14) {\n                pcVar13 = "regular expression too big";\n                goto LAB_00023a1b;\n              }\n            }\n            (dfa->lex).laststart = false;\n            uVar18 = 0x104;\n            (dfa->lex).lasttok = 0x104;\n            (dfa->lex).ptr = (char *)(local_5c + 1);\n            (dfa->lex).left = (int)pbVar1 - (int)(local_5c + 1);\n            goto LAB_0002318d;\n          }\n        }\n      }\nLAB_00023a04:\n      if ((uVar18 & 0x200000) == 0) {\n        pcVar13 = "invalid content of \\{\\}";\n        pbVar17 = pbVar15;\nLAB_00023a1b:\n        pcVar13 = (char *)dcgettext(0,pcVar13,5,pbVar17);\n                    /* WARNING: Subroutine does not return */\n        dfaerror(pcVar13);\n      }\n    }\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x7b;\n    break;\n  case 0x72:\n    bVar21 = 0;\nLAB_000233fa:\n    uVar18 = (dfa->syntax).syntax_bits;\n    if (((uVar18 & 0x400) != 0) || ((((byte)(uVar18 >> 0xf) ^ 1) & 1) != bVar21)) {\n      cVar16 = (dfa->localeinfo).multibyte;\n      uVar18 = 0x7c;\n      break;\n    }\nLAB_000238f1:\n    (dfa->lex).laststart = true;\n    uVar18 = 0x106;\n    (dfa->lex).lasttok = 0x106;\n    goto LAB_0002318d;\n  }" switch (parenthesized_expression "(uVar8)" ( identifier )) (compound_statement "{\n  case 0:\n    uVar18 = (dfa->syntax).syntax_bits;\n    if (((uVar18 & 0x400) != 0) || ((uVar18 & 0x800) == 0)) {\n_L1503:\n      cVar16 = (dfa->localeinfo).multibyte;\n      uVar18 = 10;\n      break;\n    }\n    goto LAB_000238f1;\n  default:\n    goto _L1538;\n  case 0x1a:\n    uVar18 = (dfa->syntax).syntax_bits;\n    if ((((((uVar18 & 8) != 0) || (pbVar15 == (byte *)0x0)) ||\n         ((pbVar17 = (byte *)((uVar18 >> 0xd ^ 1) & 1), pbVar17 < pbVar15 &&\n          (pbVar1[(uint)(local_5c[1] == 0x5c) & (uint)pbVar17] == 0x29)))) ||\n        ((pbVar17 = (byte *)((uVar18 >> 0xf ^ 1) & 1), pbVar17 < pbVar15 &&\n         (pbVar1[(uint)pbVar17 & (uint)(local_5c[1] == 0x5c)] == 0x7c)))) ||\n       (((uVar18 & 0x800) != 0 && (local_5c[1] == 10)))) {\nLAB_00023868:\n      (dfa->lex).lasttok = 0x10d;\n      uVar18 = 0x10d;\n      goto LAB_0002318d;\n    }\n_L1438:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x24;\n    break;\n  case 0x1d:\n_L1449:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x27;\n    break;\n  case 0x1e:\n    bVar21 = 0;\nLAB_00023262:\n    if ((((byte)((dfa->syntax).syntax_bits >> 0xd) ^ 1) & 1) == bVar21) {\n      psVar2 = &(dfa->lex).parens;\n      *psVar2 = *psVar2 + 1;\n      uVar18 = 0x107;\n      (dfa->lex).laststart = true;\n      (dfa->lex).lasttok = 0x107;\n      goto LAB_0002318d;\n    }\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x28;\n    break;\n  case 0x1f:\n    bVar21 = 0;\nLAB_0002351a:\n    uVar18 = (dfa->syntax).syntax_bits;\n    if (((((byte)(uVar18 >> 0xd) ^ 1) & 1) == bVar21) &&\n       ((sVar10 = (dfa->lex).parens, sVar10 != 0 || ((uVar18 & 0x20000) == 0)))) {\n      (dfa->lex).laststart = false;\n      uVar18 = 0x108;\n      (dfa->lex).parens = sVar10 - 1;\n      (dfa->lex).lasttok = 0x108;\n      goto LAB_0002318d;\n    }\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x29;\n    break;\n  case 0x20:\n    if ((((dfa->syntax).syntax_bits & 0x10) != 0) || ((dfa->lex).laststart == false)) {\n      (dfa->lex).lasttok = 0x102;\n      uVar18 = 0x102;\n      goto LAB_0002318d;\n    }\n_L1469:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x2a;\n    break;\n  case 0x21:\n    bVar21 = 0;\nLAB_000234d2:\n    uVar18 = (dfa->syntax).syntax_bits;\n    if ((((uVar18 & 0x400) == 0) && (((byte)(uVar18 >> 1) & 1) == bVar21)) &&\n       (((uVar18 & 0x10) != 0 || ((dfa->lex).laststart == false)))) {\n      (dfa->lex).lasttok = 0x103;\n      uVar18 = 0x103;\n      goto LAB_0002318d;\n    }\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x2b;\n    break;\n  case 0x24:\n    bVar6 = false;\nLAB_0002336a:\n    cVar16 = (dfa->localeinfo).multibyte;\n    if (!bVar6) {\n      sVar10 = dfa->canychar;\n      if (sVar10 == 0xffffffff) {\n        uVar18 = (dfa->syntax).syntax_bits;\n        ccl.w[0] = 0xffffffff;\n        ccl.w[1] = 0xffffffff;\n        ccl.w[2] = 0xffffffff;\n        ccl.w[3] = 0xffffffff;\n        ccl.w[4] = 0xffffffff;\n        ccl.w[5] = 0xffffffff;\n        ccl.w[6] = 0xffffffff;\n        ccl.w[7] = 0xffffffff;\n        if ((uVar18 & 0x40) == 0) {\n          ccl.w[0] = 0xfffffbff;\n        }\n        if ((uVar18 & 0x80) != 0) {\n          ccl.w[0] = ccl.w[0] & 0xfffffffe;\n        }\n        if ((_Bool)cVar16 != false) {\n          uVar18 = 0;\n          do {\n            if ((dfa->localeinfo).sbctowc[uVar18] == 0xffffffff) {\n              ccl.w[uVar18 >> 5] = ccl.w[uVar18 >> 5] & ~(1 << ((byte)uVar18 & 0x1f));\n            }\n            uVar18 = uVar18 + 1;\n          } while (uVar18 != 0x100);\n        }\n        sVar10 = charclass_index(dfa,&ccl);\n        cVar16 = (dfa->localeinfo).multibyte;\n        dfa->canychar = sVar10;\n      }\n      (dfa->lex).laststart = false;\n      uVar18 = 0x10a;\n      if (cVar16 == '\0') {\n        uVar18 = sVar10 + 0x114;\n      }\n      (dfa->lex).lasttok = uVar18;\n      goto LAB_0002318d;\n    }\n    uVar18 = 0x2e;\n    break;\n  case 0x32:\n_L1452:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x3c;\n    break;\n  case 0x34:\n_L1455:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x3e;\n    break;\n  case 0x35:\n    bVar21 = 0;\nLAB_000233b2:\n    uVar18 = (dfa->syntax).syntax_bits;\n    if ((((uVar18 & 0x400) == 0) && (((byte)(uVar18 >> 1) & 1) == bVar21)) &&\n       (((uVar18 & 0x10) != 0 || ((dfa->lex).laststart == false)))) {\n      (dfa->lex).lasttok = 0x101;\n      uVar18 = 0x101;\n      goto LAB_0002318d;\n    }\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x3f;\n    break;\n  case 0x38:\n_L1461:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x42;\n    break;\n  case 0x49:\n  case 0x69:\n    bVar6 = false;\n    local_60 = pbVar15;\n    local_5c = pbVar1;\nLAB_0002342a:\n    cVar16 = (dfa->localeinfo).multibyte;\n    if ((!bVar6) || (((dfa->syntax).syntax_bits & 0x80000) != 0)) break;\n    if ((_Bool)cVar16 != false) {\n      pcVar13 = &UNK_0002f468 + (uVar18 == 0x73);\nLAB_0002345c:\n      (dfa->lex).ptr = pcVar13;\n      sVar11 = strlen(pcVar13);\n      (dfa->lex).left = sVar11;\n      uVar18 = parse_bracket_exp(dfa);\n      (dfa->lex).laststart = false;\n      (dfa->lex).lasttok = uVar18;\n      (dfa->lex).ptr = (char *)local_5c;\n      (dfa->lex).left = (size_t)local_60;\n      goto LAB_0002318d;\n    }\n    uVar8 = 0;\n    do {\n      *(undefined4 *)((int)ccl.w + uVar8) = 0;\n      uVar8 = uVar8 + 4;\n    } while (uVar8 < 0x20);\n    ppuVar9 = __ctype_b_loc();\n    uVar8 = 0;\n    puVar5 = *ppuVar9;\n    do {\n      if ((*(byte *)((int)puVar5 + uVar8 * 2 + 1) & 0x20) != 0) {\n        ccl.w[uVar8 >> 5] = ccl.w[uVar8 >> 5] | 1 << ((byte)uVar8 & 0x1f);\n      }\n      uVar8 = uVar8 + 1;\n    } while (uVar8 != 0x100);\n    if (uVar18 == 0x53) {\nLAB_00023b34:\n      ccl.w[0] = ~ccl.w[0];\n      ccl.w[1] = ~ccl.w[1];\n      ccl.w[2] = ~ccl.w[2];\n      ccl.w[3] = ~ccl.w[3];\n      ccl.w[4] = ~ccl.w[4];\n      ccl.w[5] = ~ccl.w[5];\n      ccl.w[6] = ~ccl.w[6];\n      ccl.w[7] = ~ccl.w[7];\n    }\nLAB_00023ae7:\n    (dfa->lex).laststart = false;\n    goto LAB_000237bd;\n  case 0x51:\n    (dfa->lex).laststart = false;\n    uVar18 = parse_bracket_exp(dfa);\n    (dfa->lex).lasttok = uVar18;\n    goto LAB_0002318d;\n  case 0x52:\n    if (pbVar15 == (byte *)0x0) {\n      pcVar13 = "unfinished \\ escape";\n      goto LAB_00023a1b;\n    }\n    wVar4 = (dfa->localeinfo).sbctowc[local_5c[1]];\n    local_60 = pbVar15;\n    local_5c = pbVar1;\n    if (wVar4 == 0xffffffff) {\n      sVar10 = rpl_mbrtowc(&wch,(char *)pbVar1,(size_t)pbVar15,&dfa->mbs);\n      if (0xfffffffc < sVar10 - 1) {\n        pmVar20 = &dfa->mbs;\n        for (iVar14 = 2; iVar14 != 0; iVar14 = iVar14 + -1) {\n          pmVar20->__count = 0;\n          pmVar20 = (mbstate_t *)((int)(pmVar20 + -(uint)bVar21) + 4);\n        }\n        local_5c = (byte *)(dfa->lex).ptr;\n        local_60 = (byte *)(dfa->lex).left;\n        goto LAB_00023748;\n      }\n      local_60 = (byte *)(dfa->lex).left;\n      (dfa->lex).cur_mb_len = sVar10;\n      (dfa->lex).wctok = wch;\n      local_5c = (byte *)(dfa->lex).ptr;\n      if (sVar10 != 1) goto LAB_00023235;\n    }\n    else {\nLAB_00023748:\n      (dfa->lex).cur_mb_len = 1;\n      (dfa->lex).wctok = wVar4;\n    }\n    uVar18 = (uint)*local_5c;\n    pbVar1 = local_5c + 1;\n    (dfa->lex).ptr = (char *)pbVar1;\n    pbVar15 = local_60 + -1;\n    (dfa->lex).left = (size_t)pbVar15;\n    switch(uVar18 - 10 & 0xff) {\n    case 0:\n      goto _L1503;\n    case 0x1a:\n      goto _L1438;\n    case 0x1d:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) goto LAB_00023868;\n      goto _L1449;\n    case 0x1e:\n      bVar21 = 1;\n      goto LAB_00023262;\n    case 0x1f:\n      bVar21 = 1;\n      goto LAB_0002351a;\n    case 0x20:\n      goto _L1469;\n    case 0x21:\n      bVar21 = 1;\n      goto LAB_000234d2;\n    case 0x24:\n      bVar6 = true;\n      goto LAB_0002336a;\n    case 0x27:\n    case 0x28:\n    case 0x29:\n    case 0x2a:\n    case 0x2b:\n    case 0x2c:\n    case 0x2d:\n    case 0x2e:\n    case 0x2f:\n      if (((dfa->syntax).syntax_bits & 0x4000) == 0) {\n        (dfa->lex).laststart = false;\n        uVar18 = 0x112;\n        (dfa->lex).lasttok = 0x112;\n        goto LAB_0002318d;\n      }\n    default:\n_L1538:\n      cVar16 = (dfa->localeinfo).multibyte;\n      break;\n    case 0x32:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) {\n        (dfa->lex).lasttok = 0x10e;\n        uVar18 = 0x10e;\n        goto LAB_0002318d;\n      }\n      goto _L1452;\n    case 0x34:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) {\n        (dfa->lex).lasttok = 0x10f;\n        uVar18 = 0x10f;\n        goto LAB_0002318d;\n      }\n      goto _L1455;\n    case 0x35:\n      bVar21 = 1;\n      goto LAB_000233b2;\n    case 0x38:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) {\n        (dfa->lex).lasttok = 0x111;\n        uVar18 = 0x111;\n        goto LAB_0002318d;\n      }\n      goto _L1461;\n    case 0x49:\n    case 0x69:\n      bVar6 = true;\n      local_60 = pbVar15;\n      local_5c = pbVar1;\n      goto LAB_0002342a;\n    case 0x4d:\n    case 0x6d:\n      cVar16 = (dfa->localeinfo).multibyte;\n      if (((dfa->syntax).syntax_bits & 0x80000) != 0) break;\n      if ((_Bool)cVar16 != false) {\n        pcVar13 = &UNK_0002f474 + (uVar18 == 0x77);\n        local_60 = pbVar15;\n        local_5c = pbVar1;\n        goto LAB_0002345c;\n      }\n      uVar8 = 0;\n      do {\n        *(undefined4 *)((int)ccl.w + uVar8) = 0;\n        uVar8 = uVar8 + 4;\n      } while (uVar8 < 0x20);\n      uVar8 = 0;\n      do {\n        if ((dfa->syntax).sbit[uVar8] == '\x02') {\n          ccl.w[uVar8 >> 5] = ccl.w[uVar8 >> 5] | 1 << ((byte)uVar8 & 0x1f);\n        }\n        uVar8 = uVar8 + 1;\n      } while (uVar8 != 0x100);\n      if (uVar18 == 0x57) goto LAB_00023b34;\n      goto LAB_00023ae7;\n    case 0x51:\n      cVar16 = (dfa->localeinfo).multibyte;\n      uVar18 = 0x5b;\n      break;\n    case 0x52:\n      cVar16 = (dfa->localeinfo).multibyte;\n      uVar18 = 0x5c;\n      break;\n    case 0x54:\n      goto _L1433;\n    case 0x56:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) goto LAB_00023880;\n      goto _L1446;\n    case 0x58:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) {\n        (dfa->lex).lasttok = 0x110;\n        uVar18 = 0x110;\n        goto LAB_0002318d;\n      }\n      goto _L1458;\n    case 0x71:\n      local_51 = 1;\n      pbVar15 = local_60;\n      pbVar17 = local_5c;\n      local_5c = pbVar1;\n      goto LAB_00023295;\n    case 0x72:\n      bVar21 = 1;\n      goto LAB_000233fa;\n    }\n    break;\n  case 0x54:\n    if (((((dfa->syntax).syntax_bits & 8) != 0) ||\n        (iVar14 = (dfa->lex).lasttok, iVar14 - 0x106U < 2)) || (iVar14 == -1)) {\nLAB_00023880:\n      (dfa->lex).lasttok = 0x10c;\n      uVar18 = 0x10c;\n      goto LAB_0002318d;\n    }\n_L1433:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x5e;\n    break;\n  case 0x56:\n_L1446:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x60;\n    break;\n  case 0x58:\n_L1458:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x62;\n    break;\n  case 0x71:\n    local_51 = 0;\n    pbVar15 = local_60;\n    pbVar17 = local_5c;\n    local_5c = pbVar1;\nLAB_00023295:\n    uVar18 = (dfa->syntax).syntax_bits;\n    if ((((uVar18 & 0x200) != 0) && ((((byte)(uVar18 >> 0xc) ^ 1) & 1) == local_51)) &&\n       (((uVar18 & 0x10) != 0 || ((dfa->lex).laststart == false)))) {\n      pbVar1 = pbVar17 + (int)pbVar15;\n      (dfa->lex).maxrep = -1;\n      (dfa->lex).minrep = -1;\n      pbVar7 = local_5c;\n      if (pbVar1 == local_5c) {\nLAB_00023b5a:\n        local_5c = pbVar7;\n        if (local_51 == 0) {\nLAB_00023a30:\n          if (pbVar1 != local_5c) goto LAB_00023a3a;\n        }\n      }\n      else {\n        bVar21 = pbVar17[1];\n        pbVar15 = (byte *)(int)(char)bVar21;\n        if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar17 = (byte *)0xffffffff;\n          local_60 = pbVar15;\n          do {\n            if ((-1 < (int)pbVar17) &&\n               (local_60 = local_60 + (int)pbVar17 * 10, 0x8030 < (int)local_60)) {\n              local_60 = (byte *)0x8030;\n            }\n            pbVar17 = local_60 + -0x30;\n            (dfa->lex).minrep = (int)pbVar17;\n            local_5c = local_5c + 1;\n            pbVar7 = local_5c;\n            if (pbVar1 == local_5c) goto LAB_00023b5a;\n            local_60 = (byte *)(int)(char)*local_5c;\n            pbVar15 = local_60 + -0x30;\n          } while ((byte)pbVar15 < 10);\n          if (*local_5c == 0x2c) {\n            if ((int)pbVar17 < 0) goto LAB_00023bed;\nLAB_00023b6e:\n            pbVar15 = local_5c + 1;\n            pbVar7 = pbVar1;\n            if (pbVar1 == pbVar15) goto LAB_00023b5a;\n            bVar21 = local_5c[1];\n            local_5c = pbVar15;\n            if ((byte)(bVar21 - 0x30) < 10) {\n              iVar14 = -1;\n              do {\n                iVar19 = (int)(char)bVar21;\n                if ((-1 < iVar14) && (iVar19 = iVar19 + iVar14 * 10, 0x8030 < iVar19)) {\n                  iVar19 = 0x8030;\n                }\n                iVar14 = iVar19 + -0x30;\n                (dfa->lex).maxrep = iVar14;\n                pbVar15 = pbVar15 + 1;\n                if (pbVar1 == pbVar15) goto LAB_00023b5a;\n                bVar21 = *pbVar15;\n                local_5c = pbVar15;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            goto LAB_00023bd8;\n          }\n          (dfa->lex).maxrep = (int)pbVar17;\n          if (local_51 == 0) goto LAB_00023a30;\nLAB_000239fb:\n          if (*local_5c == 0x5c) {\n            local_5c = local_5c + 1;\n            goto LAB_00023a30;\n          }\n        }\n        else {\n          if (bVar21 == 0x2c) {\nLAB_00023bed:\n            (dfa->lex).minrep = 0;\n            goto LAB_00023b6e;\n          }\nLAB_00023bd8:\n          if (local_51 != 0) goto LAB_000239fb;\nLAB_00023a3a:\n          if ((*local_5c == 0x7d) && (pbVar17 = (byte *)(dfa->lex).minrep, -1 < (int)pbVar17)) {\n            iVar14 = (dfa->lex).maxrep;\n            if (-1 < iVar14) {\n              if (iVar14 < (int)pbVar17) goto LAB_00023a04;\n              if (0x7fff < iVar14) {\n                pcVar13 = "regular expression too big";\n                goto LAB_00023a1b;\n              }\n            }\n            (dfa->lex).laststart = false;\n            uVar18 = 0x104;\n            (dfa->lex).lasttok = 0x104;\n            (dfa->lex).ptr = (char *)(local_5c + 1);\n            (dfa->lex).left = (int)pbVar1 - (int)(local_5c + 1);\n            goto LAB_0002318d;\n          }\n        }\n      }\nLAB_00023a04:\n      if ((uVar18 & 0x200000) == 0) {\n        pcVar13 = "invalid content of \\{\\}";\n        pbVar17 = pbVar15;\nLAB_00023a1b:\n        pcVar13 = (char *)dcgettext(0,pcVar13,5,pbVar17);\n                    /* WARNING: Subroutine does not return */\n        dfaerror(pcVar13);\n      }\n    }\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x7b;\n    break;\n  case 0x72:\n    bVar21 = 0;\nLAB_000233fa:\n    uVar18 = (dfa->syntax).syntax_bits;\n    if (((uVar18 & 0x400) != 0) || ((((byte)(uVar18 >> 0xf) ^ 1) & 1) != bVar21)) {\n      cVar16 = (dfa->localeinfo).multibyte;\n      uVar18 = 0x7c;\n      break;\n    }\nLAB_000238f1:\n    (dfa->lex).laststart = true;\n    uVar18 = 0x106;\n    (dfa->lex).lasttok = 0x106;\n    goto LAB_0002318d;\n  }" { (case_statement "case 0:\n    uVar18 = (dfa->syntax).syntax_bits;\n    if (((uVar18 & 0x400) != 0) || ((uVar18 & 0x800) == 0)) {\n_L1503:\n      cVar16 = (dfa->localeinfo).multibyte;\n      uVar18 = 10;\n      break;\n    }\n    goto LAB_000238f1;" case number_literal : (expression_statement "uVar18 = (dfa->syntax).syntax_bits;" (assignment_expression "uVar18 = (dfa->syntax).syntax_bits" identifier = (field_expression "(dfa->syntax).syntax_bits" (parenthesized_expression "(dfa->syntax)" ( (field_expression "dfa->syntax" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (((uVar18 & 0x400) != 0) || ((uVar18 & 0x800) == 0)) {\n_L1503:\n      cVar16 = (dfa->localeinfo).multibyte;\n      uVar18 = 10;\n      break;\n    }" if (parenthesized_expression "(((uVar18 & 0x400) != 0) || ((uVar18 & 0x800) == 0))" ( (binary_expression "((uVar18 & 0x400) != 0) || ((uVar18 & 0x800) == 0)" (parenthesized_expression "((uVar18 & 0x400) != 0)" ( (binary_expression "(uVar18 & 0x400) != 0" (parenthesized_expression "(uVar18 & 0x400)" ( (binary_expression "uVar18 & 0x400" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "((uVar18 & 0x800) == 0)" ( (binary_expression "(uVar18 & 0x800) == 0" (parenthesized_expression "(uVar18 & 0x800)" ( (binary_expression "uVar18 & 0x800" identifier & number_literal) )) == number_literal) ))) )) (compound_statement "{\n_L1503:\n      cVar16 = (dfa->localeinfo).multibyte;\n      uVar18 = 10;\n      break;\n    }" { (labeled_statement "_L1503:\n      cVar16 = (dfa->localeinfo).multibyte;" statement_identifier : (expression_statement "cVar16 = (dfa->localeinfo).multibyte;" (assignment_expression "cVar16 = (dfa->localeinfo).multibyte" identifier = (field_expression "(dfa->localeinfo).multibyte" (parenthesized_expression "(dfa->localeinfo)" ( (field_expression "dfa->localeinfo" identifier -> field_identifier) )) . field_identifier)) ;)) (expression_statement "uVar18 = 10;" (assignment_expression "uVar18 = 10" identifier = number_literal) ;) (break_statement "break;" break ;) })) (goto_statement "goto LAB_000238f1;" goto statement_identifier ;)) (case_statement "default:\n    goto _L1538;" default : (goto_statement "goto _L1538;" goto statement_identifier ;)) (case_statement "case 0x1a:\n    uVar18 = (dfa->syntax).syntax_bits;\n    if ((((((uVar18 & 8) != 0) || (pbVar15 == (byte *)0x0)) ||\n         ((pbVar17 = (byte *)((uVar18 >> 0xd ^ 1) & 1), pbVar17 < pbVar15 &&\n          (pbVar1[(uint)(local_5c[1] == 0x5c) & (uint)pbVar17] == 0x29)))) ||\n        ((pbVar17 = (byte *)((uVar18 >> 0xf ^ 1) & 1), pbVar17 < pbVar15 &&\n         (pbVar1[(uint)pbVar17 & (uint)(local_5c[1] == 0x5c)] == 0x7c)))) ||\n       (((uVar18 & 0x800) != 0 && (local_5c[1] == 10)))) {\nLAB_00023868:\n      (dfa->lex).lasttok = 0x10d;\n      uVar18 = 0x10d;\n      goto LAB_0002318d;\n    }\n_L1438:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x24;\n    break;" case number_literal : (expression_statement "uVar18 = (dfa->syntax).syntax_bits;" (assignment_expression "uVar18 = (dfa->syntax).syntax_bits" identifier = (field_expression "(dfa->syntax).syntax_bits" (parenthesized_expression "(dfa->syntax)" ( (field_expression "dfa->syntax" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((((((uVar18 & 8) != 0) || (pbVar15 == (byte *)0x0)) ||\n         ((pbVar17 = (byte *)((uVar18 >> 0xd ^ 1) & 1), pbVar17 < pbVar15 &&\n          (pbVar1[(uint)(local_5c[1] == 0x5c) & (uint)pbVar17] == 0x29)))) ||\n        ((pbVar17 = (byte *)((uVar18 >> 0xf ^ 1) & 1), pbVar17 < pbVar15 &&\n         (pbVar1[(uint)pbVar17 & (uint)(local_5c[1] == 0x5c)] == 0x7c)))) ||\n       (((uVar18 & 0x800) != 0 && (local_5c[1] == 10)))) {\nLAB_00023868:\n      (dfa->lex).lasttok = 0x10d;\n      uVar18 = 0x10d;\n      goto LAB_0002318d;\n    }" if (parenthesized_expression "((((((uVar18 & 8) != 0) || (pbVar15 == (byte *)0x0)) ||\n         ((pbVar17 = (byte *)((uVar18 >> 0xd ^ 1) & 1), pbVar17 < pbVar15 &&\n          (pbVar1[(uint)(local_5c[1] == 0x5c) & (uint)pbVar17] == 0x29)))) ||\n        ((pbVar17 = (byte *)((uVar18 >> 0xf ^ 1) & 1), pbVar17 < pbVar15 &&\n         (pbVar1[(uint)pbVar17 & (uint)(local_5c[1] == 0x5c)] == 0x7c)))) ||\n       (((uVar18 & 0x800) != 0 && (local_5c[1] == 10))))" ( (binary_expression "(((((uVar18 & 8) != 0) || (pbVar15 == (byte *)0x0)) ||\n         ((pbVar17 = (byte *)((uVar18 >> 0xd ^ 1) & 1), pbVar17 < pbVar15 &&\n          (pbVar1[(uint)(local_5c[1] == 0x5c) & (uint)pbVar17] == 0x29)))) ||\n        ((pbVar17 = (byte *)((uVar18 >> 0xf ^ 1) & 1), pbVar17 < pbVar15 &&\n         (pbVar1[(uint)pbVar17 & (uint)(local_5c[1] == 0x5c)] == 0x7c)))) ||\n       (((uVar18 & 0x800) != 0 && (local_5c[1] == 10)))" (parenthesized_expression "(((((uVar18 & 8) != 0) || (pbVar15 == (byte *)0x0)) ||\n         ((pbVar17 = (byte *)((uVar18 >> 0xd ^ 1) & 1), pbVar17 < pbVar15 &&\n          (pbVar1[(uint)(local_5c[1] == 0x5c) & (uint)pbVar17] == 0x29)))) ||\n        ((pbVar17 = (byte *)((uVar18 >> 0xf ^ 1) & 1), pbVar17 < pbVar15 &&\n         (pbVar1[(uint)pbVar17 & (uint)(local_5c[1] == 0x5c)] == 0x7c))))" ( (binary_expression "((((uVar18 & 8) != 0) || (pbVar15 == (byte *)0x0)) ||\n         ((pbVar17 = (byte *)((uVar18 >> 0xd ^ 1) & 1), pbVar17 < pbVar15 &&\n          (pbVar1[(uint)(local_5c[1] == 0x5c) & (uint)pbVar17] == 0x29)))) ||\n        ((pbVar17 = (byte *)((uVar18 >> 0xf ^ 1) & 1), pbVar17 < pbVar15 &&\n         (pbVar1[(uint)pbVar17 & (uint)(local_5c[1] == 0x5c)] == 0x7c)))" (parenthesized_expression "((((uVar18 & 8) != 0) || (pbVar15 == (byte *)0x0)) ||\n         ((pbVar17 = (byte *)((uVar18 >> 0xd ^ 1) & 1), pbVar17 < pbVar15 &&\n          (pbVar1[(uint)(local_5c[1] == 0x5c) & (uint)pbVar17] == 0x29))))" ( (binary_expression "(((uVar18 & 8) != 0) || (pbVar15 == (byte *)0x0)) ||\n         ((pbVar17 = (byte *)((uVar18 >> 0xd ^ 1) & 1), pbVar17 < pbVar15 &&\n          (pbVar1[(uint)(local_5c[1] == 0x5c) & (uint)pbVar17] == 0x29)))" (parenthesized_expression "(((uVar18 & 8) != 0) || (pbVar15 == (byte *)0x0))" ( (binary_expression "((uVar18 & 8) != 0) || (pbVar15 == (byte *)0x0)" (parenthesized_expression "((uVar18 & 8) != 0)" ( (binary_expression "(uVar18 & 8) != 0" (parenthesized_expression "(uVar18 & 8)" ( (binary_expression "uVar18 & 8" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "(pbVar15 == (byte *)0x0)" ( (binary_expression "pbVar15 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) || (parenthesized_expression "((pbVar17 = (byte *)((uVar18 >> 0xd ^ 1) & 1), pbVar17 < pbVar15 &&\n          (pbVar1[(uint)(local_5c[1] == 0x5c) & (uint)pbVar17] == 0x29)))" ( (parenthesized_expression "(pbVar17 = (byte *)((uVar18 >> 0xd ^ 1) & 1), pbVar17 < pbVar15 &&\n          (pbVar1[(uint)(local_5c[1] == 0x5c) & (uint)pbVar17] == 0x29))" ( (comma_expression "pbVar17 = (byte *)((uVar18 >> 0xd ^ 1) & 1), pbVar17 < pbVar15 &&\n          (pbVar1[(uint)(local_5c[1] == 0x5c) & (uint)pbVar17] == 0x29)" (assignment_expression "pbVar17 = (byte *)((uVar18 >> 0xd ^ 1) & 1)" identifier = (cast_expression "(byte *)((uVar18 >> 0xd ^ 1) & 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uVar18 >> 0xd ^ 1) & 1)" ( (binary_expression "(uVar18 >> 0xd ^ 1) & 1" (parenthesized_expression "(uVar18 >> 0xd ^ 1)" ( (binary_expression "uVar18 >> 0xd ^ 1" (binary_expression "uVar18 >> 0xd" identifier >> number_literal) ^ number_literal) )) & number_literal) )))) , (binary_expression "pbVar17 < pbVar15 &&\n          (pbVar1[(uint)(local_5c[1] == 0x5c) & (uint)pbVar17] == 0x29)" (binary_expression "pbVar17 < pbVar15" identifier < identifier) && (parenthesized_expression "(pbVar1[(uint)(local_5c[1] == 0x5c) & (uint)pbVar17] == 0x29)" ( (binary_expression "pbVar1[(uint)(local_5c[1] == 0x5c) & (uint)pbVar17] == 0x29" (subscript_expression "pbVar1[(uint)(local_5c[1] == 0x5c) & (uint)pbVar17]" identifier [ (binary_expression "(uint)(local_5c[1] == 0x5c) & (uint)pbVar17" (call_expression "(uint)(local_5c[1] == 0x5c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_5c[1] == 0x5c)" ( (binary_expression "local_5c[1] == 0x5c" (subscript_expression "local_5c[1]" identifier [ number_literal ]) == number_literal) ))) & (cast_expression "(uint)pbVar17" ( (type_descriptor "uint" type_identifier) ) identifier)) ]) == number_literal) )))) )) ))) )) || (parenthesized_expression "((pbVar17 = (byte *)((uVar18 >> 0xf ^ 1) & 1), pbVar17 < pbVar15 &&\n         (pbVar1[(uint)pbVar17 & (uint)(local_5c[1] == 0x5c)] == 0x7c)))" ( (parenthesized_expression "(pbVar17 = (byte *)((uVar18 >> 0xf ^ 1) & 1), pbVar17 < pbVar15 &&\n         (pbVar1[(uint)pbVar17 & (uint)(local_5c[1] == 0x5c)] == 0x7c))" ( (comma_expression "pbVar17 = (byte *)((uVar18 >> 0xf ^ 1) & 1), pbVar17 < pbVar15 &&\n         (pbVar1[(uint)pbVar17 & (uint)(local_5c[1] == 0x5c)] == 0x7c)" (assignment_expression "pbVar17 = (byte *)((uVar18 >> 0xf ^ 1) & 1)" identifier = (cast_expression "(byte *)((uVar18 >> 0xf ^ 1) & 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uVar18 >> 0xf ^ 1) & 1)" ( (binary_expression "(uVar18 >> 0xf ^ 1) & 1" (parenthesized_expression "(uVar18 >> 0xf ^ 1)" ( (binary_expression "uVar18 >> 0xf ^ 1" (binary_expression "uVar18 >> 0xf" identifier >> number_literal) ^ number_literal) )) & number_literal) )))) , (binary_expression "pbVar17 < pbVar15 &&\n         (pbVar1[(uint)pbVar17 & (uint)(local_5c[1] == 0x5c)] == 0x7c)" (binary_expression "pbVar17 < pbVar15" identifier < identifier) && (parenthesized_expression "(pbVar1[(uint)pbVar17 & (uint)(local_5c[1] == 0x5c)] == 0x7c)" ( (binary_expression "pbVar1[(uint)pbVar17 & (uint)(local_5c[1] == 0x5c)] == 0x7c" (subscript_expression "pbVar1[(uint)pbVar17 & (uint)(local_5c[1] == 0x5c)]" identifier [ (binary_expression "(uint)pbVar17 & (uint)(local_5c[1] == 0x5c)" (cast_expression "(uint)pbVar17" ( (type_descriptor "uint" type_identifier) ) identifier) & (call_expression "(uint)(local_5c[1] == 0x5c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_5c[1] == 0x5c)" ( (binary_expression "local_5c[1] == 0x5c" (subscript_expression "local_5c[1]" identifier [ number_literal ]) == number_literal) )))) ]) == number_literal) )))) )) ))) )) || (parenthesized_expression "(((uVar18 & 0x800) != 0 && (local_5c[1] == 10)))" ( (parenthesized_expression "((uVar18 & 0x800) != 0 && (local_5c[1] == 10))" ( (binary_expression "(uVar18 & 0x800) != 0 && (local_5c[1] == 10)" (binary_expression "(uVar18 & 0x800) != 0" (parenthesized_expression "(uVar18 & 0x800)" ( (binary_expression "uVar18 & 0x800" identifier & number_literal) )) != number_literal) && (parenthesized_expression "(local_5c[1] == 10)" ( (binary_expression "local_5c[1] == 10" (subscript_expression "local_5c[1]" identifier [ number_literal ]) == number_literal) ))) )) ))) )) (compound_statement "{\nLAB_00023868:\n      (dfa->lex).lasttok = 0x10d;\n      uVar18 = 0x10d;\n      goto LAB_0002318d;\n    }" { (labeled_statement "LAB_00023868:\n      (dfa->lex).lasttok = 0x10d;" statement_identifier : (expression_statement "(dfa->lex).lasttok = 0x10d;" (assignment_expression "(dfa->lex).lasttok = 0x10d" (field_expression "(dfa->lex).lasttok" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = number_literal) ;)) (expression_statement "uVar18 = 0x10d;" (assignment_expression "uVar18 = 0x10d" identifier = number_literal) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) })) (labeled_statement "_L1438:\n    cVar16 = (dfa->localeinfo).multibyte;" statement_identifier : (expression_statement "cVar16 = (dfa->localeinfo).multibyte;" (assignment_expression "cVar16 = (dfa->localeinfo).multibyte" identifier = (field_expression "(dfa->localeinfo).multibyte" (parenthesized_expression "(dfa->localeinfo)" ( (field_expression "dfa->localeinfo" identifier -> field_identifier) )) . field_identifier)) ;)) (expression_statement "uVar18 = 0x24;" (assignment_expression "uVar18 = 0x24" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x1d:\n_L1449:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x27;\n    break;" case number_literal : (labeled_statement "_L1449:\n    cVar16 = (dfa->localeinfo).multibyte;" statement_identifier : (expression_statement "cVar16 = (dfa->localeinfo).multibyte;" (assignment_expression "cVar16 = (dfa->localeinfo).multibyte" identifier = (field_expression "(dfa->localeinfo).multibyte" (parenthesized_expression "(dfa->localeinfo)" ( (field_expression "dfa->localeinfo" identifier -> field_identifier) )) . field_identifier)) ;)) (expression_statement "uVar18 = 0x27;" (assignment_expression "uVar18 = 0x27" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x1e:\n    bVar21 = 0;\nLAB_00023262:\n    if ((((byte)((dfa->syntax).syntax_bits >> 0xd) ^ 1) & 1) == bVar21) {\n      psVar2 = &(dfa->lex).parens;\n      *psVar2 = *psVar2 + 1;\n      uVar18 = 0x107;\n      (dfa->lex).laststart = true;\n      (dfa->lex).lasttok = 0x107;\n      goto LAB_0002318d;\n    }\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x28;\n    break;" case number_literal : (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00023262:\n    if ((((byte)((dfa->syntax).syntax_bits >> 0xd) ^ 1) & 1) == bVar21) {\n      psVar2 = &(dfa->lex).parens;\n      *psVar2 = *psVar2 + 1;\n      uVar18 = 0x107;\n      (dfa->lex).laststart = true;\n      (dfa->lex).lasttok = 0x107;\n      goto LAB_0002318d;\n    }" statement_identifier : (if_statement "if ((((byte)((dfa->syntax).syntax_bits >> 0xd) ^ 1) & 1) == bVar21) {\n      psVar2 = &(dfa->lex).parens;\n      *psVar2 = *psVar2 + 1;\n      uVar18 = 0x107;\n      (dfa->lex).laststart = true;\n      (dfa->lex).lasttok = 0x107;\n      goto LAB_0002318d;\n    }" if (parenthesized_expression "((((byte)((dfa->syntax).syntax_bits >> 0xd) ^ 1) & 1) == bVar21)" ( (binary_expression "(((byte)((dfa->syntax).syntax_bits >> 0xd) ^ 1) & 1) == bVar21" (parenthesized_expression "(((byte)((dfa->syntax).syntax_bits >> 0xd) ^ 1) & 1)" ( (binary_expression "((byte)((dfa->syntax).syntax_bits >> 0xd) ^ 1) & 1" (parenthesized_expression "((byte)((dfa->syntax).syntax_bits >> 0xd) ^ 1)" ( (binary_expression "(byte)((dfa->syntax).syntax_bits >> 0xd) ^ 1" (call_expression "(byte)((dfa->syntax).syntax_bits >> 0xd)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((dfa->syntax).syntax_bits >> 0xd)" ( (binary_expression "(dfa->syntax).syntax_bits >> 0xd" (field_expression "(dfa->syntax).syntax_bits" (parenthesized_expression "(dfa->syntax)" ( (field_expression "dfa->syntax" identifier -> field_identifier) )) . field_identifier) >> number_literal) ))) ^ number_literal) )) & number_literal) )) == identifier) )) (compound_statement "{\n      psVar2 = &(dfa->lex).parens;\n      *psVar2 = *psVar2 + 1;\n      uVar18 = 0x107;\n      (dfa->lex).laststart = true;\n      (dfa->lex).lasttok = 0x107;\n      goto LAB_0002318d;\n    }" { (expression_statement "psVar2 = &(dfa->lex).parens;" (assignment_expression "psVar2 = &(dfa->lex).parens" identifier = (pointer_expression "&(dfa->lex).parens" & (field_expression "(dfa->lex).parens" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "*psVar2 = *psVar2 + 1;" (assignment_expression "*psVar2 = *psVar2 + 1" (pointer_expression "*psVar2" * identifier) = (binary_expression "*psVar2 + 1" (pointer_expression "*psVar2" * identifier) + number_literal)) ;) (expression_statement "uVar18 = 0x107;" (assignment_expression "uVar18 = 0x107" identifier = number_literal) ;) (expression_statement "(dfa->lex).laststart = true;" (assignment_expression "(dfa->lex).laststart = true" (field_expression "(dfa->lex).laststart" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = true) ;) (expression_statement "(dfa->lex).lasttok = 0x107;" (assignment_expression "(dfa->lex).lasttok = 0x107" (field_expression "(dfa->lex).lasttok" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) }))) (expression_statement "cVar16 = (dfa->localeinfo).multibyte;" (assignment_expression "cVar16 = (dfa->localeinfo).multibyte" identifier = (field_expression "(dfa->localeinfo).multibyte" (parenthesized_expression "(dfa->localeinfo)" ( (field_expression "dfa->localeinfo" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar18 = 0x28;" (assignment_expression "uVar18 = 0x28" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x1f:\n    bVar21 = 0;\nLAB_0002351a:\n    uVar18 = (dfa->syntax).syntax_bits;\n    if (((((byte)(uVar18 >> 0xd) ^ 1) & 1) == bVar21) &&\n       ((sVar10 = (dfa->lex).parens, sVar10 != 0 || ((uVar18 & 0x20000) == 0)))) {\n      (dfa->lex).laststart = false;\n      uVar18 = 0x108;\n      (dfa->lex).parens = sVar10 - 1;\n      (dfa->lex).lasttok = 0x108;\n      goto LAB_0002318d;\n    }\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x29;\n    break;" case number_literal : (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0002351a:\n    uVar18 = (dfa->syntax).syntax_bits;" statement_identifier : (expression_statement "uVar18 = (dfa->syntax).syntax_bits;" (assignment_expression "uVar18 = (dfa->syntax).syntax_bits" identifier = (field_expression "(dfa->syntax).syntax_bits" (parenthesized_expression "(dfa->syntax)" ( (field_expression "dfa->syntax" identifier -> field_identifier) )) . field_identifier)) ;)) (if_statement "if (((((byte)(uVar18 >> 0xd) ^ 1) & 1) == bVar21) &&\n       ((sVar10 = (dfa->lex).parens, sVar10 != 0 || ((uVar18 & 0x20000) == 0)))) {\n      (dfa->lex).laststart = false;\n      uVar18 = 0x108;\n      (dfa->lex).parens = sVar10 - 1;\n      (dfa->lex).lasttok = 0x108;\n      goto LAB_0002318d;\n    }" if (parenthesized_expression "(((((byte)(uVar18 >> 0xd) ^ 1) & 1) == bVar21) &&\n       ((sVar10 = (dfa->lex).parens, sVar10 != 0 || ((uVar18 & 0x20000) == 0))))" ( (binary_expression "((((byte)(uVar18 >> 0xd) ^ 1) & 1) == bVar21) &&\n       ((sVar10 = (dfa->lex).parens, sVar10 != 0 || ((uVar18 & 0x20000) == 0)))" (parenthesized_expression "((((byte)(uVar18 >> 0xd) ^ 1) & 1) == bVar21)" ( (binary_expression "(((byte)(uVar18 >> 0xd) ^ 1) & 1) == bVar21" (parenthesized_expression "(((byte)(uVar18 >> 0xd) ^ 1) & 1)" ( (binary_expression "((byte)(uVar18 >> 0xd) ^ 1) & 1" (parenthesized_expression "((byte)(uVar18 >> 0xd) ^ 1)" ( (binary_expression "(byte)(uVar18 >> 0xd) ^ 1" (call_expression "(byte)(uVar18 >> 0xd)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar18 >> 0xd)" ( (binary_expression "uVar18 >> 0xd" identifier >> number_literal) ))) ^ number_literal) )) & number_literal) )) == identifier) )) && (parenthesized_expression "((sVar10 = (dfa->lex).parens, sVar10 != 0 || ((uVar18 & 0x20000) == 0)))" ( (parenthesized_expression "(sVar10 = (dfa->lex).parens, sVar10 != 0 || ((uVar18 & 0x20000) == 0))" ( (comma_expression "sVar10 = (dfa->lex).parens, sVar10 != 0 || ((uVar18 & 0x20000) == 0)" (assignment_expression "sVar10 = (dfa->lex).parens" identifier = (field_expression "(dfa->lex).parens" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier)) , (binary_expression "sVar10 != 0 || ((uVar18 & 0x20000) == 0)" (binary_expression "sVar10 != 0" identifier != number_literal) || (parenthesized_expression "((uVar18 & 0x20000) == 0)" ( (binary_expression "(uVar18 & 0x20000) == 0" (parenthesized_expression "(uVar18 & 0x20000)" ( (binary_expression "uVar18 & 0x20000" identifier & number_literal) )) == number_literal) )))) )) ))) )) (compound_statement "{\n      (dfa->lex).laststart = false;\n      uVar18 = 0x108;\n      (dfa->lex).parens = sVar10 - 1;\n      (dfa->lex).lasttok = 0x108;\n      goto LAB_0002318d;\n    }" { (expression_statement "(dfa->lex).laststart = false;" (assignment_expression "(dfa->lex).laststart = false" (field_expression "(dfa->lex).laststart" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = false) ;) (expression_statement "uVar18 = 0x108;" (assignment_expression "uVar18 = 0x108" identifier = number_literal) ;) (expression_statement "(dfa->lex).parens = sVar10 - 1;" (assignment_expression "(dfa->lex).parens = sVar10 - 1" (field_expression "(dfa->lex).parens" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = (binary_expression "sVar10 - 1" identifier - number_literal)) ;) (expression_statement "(dfa->lex).lasttok = 0x108;" (assignment_expression "(dfa->lex).lasttok = 0x108" (field_expression "(dfa->lex).lasttok" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) })) (expression_statement "cVar16 = (dfa->localeinfo).multibyte;" (assignment_expression "cVar16 = (dfa->localeinfo).multibyte" identifier = (field_expression "(dfa->localeinfo).multibyte" (parenthesized_expression "(dfa->localeinfo)" ( (field_expression "dfa->localeinfo" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar18 = 0x29;" (assignment_expression "uVar18 = 0x29" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x20:\n    if ((((dfa->syntax).syntax_bits & 0x10) != 0) || ((dfa->lex).laststart == false)) {\n      (dfa->lex).lasttok = 0x102;\n      uVar18 = 0x102;\n      goto LAB_0002318d;\n    }\n_L1469:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x2a;\n    break;" case number_literal : (if_statement "if ((((dfa->syntax).syntax_bits & 0x10) != 0) || ((dfa->lex).laststart == false)) {\n      (dfa->lex).lasttok = 0x102;\n      uVar18 = 0x102;\n      goto LAB_0002318d;\n    }" if (parenthesized_expression "((((dfa->syntax).syntax_bits & 0x10) != 0) || ((dfa->lex).laststart == false))" ( (binary_expression "(((dfa->syntax).syntax_bits & 0x10) != 0) || ((dfa->lex).laststart == false)" (parenthesized_expression "(((dfa->syntax).syntax_bits & 0x10) != 0)" ( (binary_expression "((dfa->syntax).syntax_bits & 0x10) != 0" (parenthesized_expression "((dfa->syntax).syntax_bits & 0x10)" ( (binary_expression "(dfa->syntax).syntax_bits & 0x10" (field_expression "(dfa->syntax).syntax_bits" (parenthesized_expression "(dfa->syntax)" ( (field_expression "dfa->syntax" identifier -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) )) || (parenthesized_expression "((dfa->lex).laststart == false)" ( (binary_expression "(dfa->lex).laststart == false" (field_expression "(dfa->lex).laststart" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) == false) ))) )) (compound_statement "{\n      (dfa->lex).lasttok = 0x102;\n      uVar18 = 0x102;\n      goto LAB_0002318d;\n    }" { (expression_statement "(dfa->lex).lasttok = 0x102;" (assignment_expression "(dfa->lex).lasttok = 0x102" (field_expression "(dfa->lex).lasttok" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "uVar18 = 0x102;" (assignment_expression "uVar18 = 0x102" identifier = number_literal) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) })) (labeled_statement "_L1469:\n    cVar16 = (dfa->localeinfo).multibyte;" statement_identifier : (expression_statement "cVar16 = (dfa->localeinfo).multibyte;" (assignment_expression "cVar16 = (dfa->localeinfo).multibyte" identifier = (field_expression "(dfa->localeinfo).multibyte" (parenthesized_expression "(dfa->localeinfo)" ( (field_expression "dfa->localeinfo" identifier -> field_identifier) )) . field_identifier)) ;)) (expression_statement "uVar18 = 0x2a;" (assignment_expression "uVar18 = 0x2a" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x21:\n    bVar21 = 0;\nLAB_000234d2:\n    uVar18 = (dfa->syntax).syntax_bits;\n    if ((((uVar18 & 0x400) == 0) && (((byte)(uVar18 >> 1) & 1) == bVar21)) &&\n       (((uVar18 & 0x10) != 0 || ((dfa->lex).laststart == false)))) {\n      (dfa->lex).lasttok = 0x103;\n      uVar18 = 0x103;\n      goto LAB_0002318d;\n    }\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x2b;\n    break;" case number_literal : (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000234d2:\n    uVar18 = (dfa->syntax).syntax_bits;" statement_identifier : (expression_statement "uVar18 = (dfa->syntax).syntax_bits;" (assignment_expression "uVar18 = (dfa->syntax).syntax_bits" identifier = (field_expression "(dfa->syntax).syntax_bits" (parenthesized_expression "(dfa->syntax)" ( (field_expression "dfa->syntax" identifier -> field_identifier) )) . field_identifier)) ;)) (if_statement "if ((((uVar18 & 0x400) == 0) && (((byte)(uVar18 >> 1) & 1) == bVar21)) &&\n       (((uVar18 & 0x10) != 0 || ((dfa->lex).laststart == false)))) {\n      (dfa->lex).lasttok = 0x103;\n      uVar18 = 0x103;\n      goto LAB_0002318d;\n    }" if (parenthesized_expression "((((uVar18 & 0x400) == 0) && (((byte)(uVar18 >> 1) & 1) == bVar21)) &&\n       (((uVar18 & 0x10) != 0 || ((dfa->lex).laststart == false))))" ( (binary_expression "(((uVar18 & 0x400) == 0) && (((byte)(uVar18 >> 1) & 1) == bVar21)) &&\n       (((uVar18 & 0x10) != 0 || ((dfa->lex).laststart == false)))" (parenthesized_expression "(((uVar18 & 0x400) == 0) && (((byte)(uVar18 >> 1) & 1) == bVar21))" ( (binary_expression "((uVar18 & 0x400) == 0) && (((byte)(uVar18 >> 1) & 1) == bVar21)" (parenthesized_expression "((uVar18 & 0x400) == 0)" ( (binary_expression "(uVar18 & 0x400) == 0" (parenthesized_expression "(uVar18 & 0x400)" ( (binary_expression "uVar18 & 0x400" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(((byte)(uVar18 >> 1) & 1) == bVar21)" ( (binary_expression "((byte)(uVar18 >> 1) & 1) == bVar21" (parenthesized_expression "((byte)(uVar18 >> 1) & 1)" ( (binary_expression "(byte)(uVar18 >> 1) & 1" (call_expression "(byte)(uVar18 >> 1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar18 >> 1)" ( (binary_expression "uVar18 >> 1" identifier >> number_literal) ))) & number_literal) )) == identifier) ))) )) && (parenthesized_expression "(((uVar18 & 0x10) != 0 || ((dfa->lex).laststart == false)))" ( (parenthesized_expression "((uVar18 & 0x10) != 0 || ((dfa->lex).laststart == false))" ( (binary_expression "(uVar18 & 0x10) != 0 || ((dfa->lex).laststart == false)" (binary_expression "(uVar18 & 0x10) != 0" (parenthesized_expression "(uVar18 & 0x10)" ( (binary_expression "uVar18 & 0x10" identifier & number_literal) )) != number_literal) || (parenthesized_expression "((dfa->lex).laststart == false)" ( (binary_expression "(dfa->lex).laststart == false" (field_expression "(dfa->lex).laststart" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) == false) ))) )) ))) )) (compound_statement "{\n      (dfa->lex).lasttok = 0x103;\n      uVar18 = 0x103;\n      goto LAB_0002318d;\n    }" { (expression_statement "(dfa->lex).lasttok = 0x103;" (assignment_expression "(dfa->lex).lasttok = 0x103" (field_expression "(dfa->lex).lasttok" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "uVar18 = 0x103;" (assignment_expression "uVar18 = 0x103" identifier = number_literal) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) })) (expression_statement "cVar16 = (dfa->localeinfo).multibyte;" (assignment_expression "cVar16 = (dfa->localeinfo).multibyte" identifier = (field_expression "(dfa->localeinfo).multibyte" (parenthesized_expression "(dfa->localeinfo)" ( (field_expression "dfa->localeinfo" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar18 = 0x2b;" (assignment_expression "uVar18 = 0x2b" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x24:\n    bVar6 = false;\nLAB_0002336a:\n    cVar16 = (dfa->localeinfo).multibyte;\n    if (!bVar6) {\n      sVar10 = dfa->canychar;\n      if (sVar10 == 0xffffffff) {\n        uVar18 = (dfa->syntax).syntax_bits;\n        ccl.w[0] = 0xffffffff;\n        ccl.w[1] = 0xffffffff;\n        ccl.w[2] = 0xffffffff;\n        ccl.w[3] = 0xffffffff;\n        ccl.w[4] = 0xffffffff;\n        ccl.w[5] = 0xffffffff;\n        ccl.w[6] = 0xffffffff;\n        ccl.w[7] = 0xffffffff;\n        if ((uVar18 & 0x40) == 0) {\n          ccl.w[0] = 0xfffffbff;\n        }\n        if ((uVar18 & 0x80) != 0) {\n          ccl.w[0] = ccl.w[0] & 0xfffffffe;\n        }\n        if ((_Bool)cVar16 != false) {\n          uVar18 = 0;\n          do {\n            if ((dfa->localeinfo).sbctowc[uVar18] == 0xffffffff) {\n              ccl.w[uVar18 >> 5] = ccl.w[uVar18 >> 5] & ~(1 << ((byte)uVar18 & 0x1f));\n            }\n            uVar18 = uVar18 + 1;\n          } while (uVar18 != 0x100);\n        }\n        sVar10 = charclass_index(dfa,&ccl);\n        cVar16 = (dfa->localeinfo).multibyte;\n        dfa->canychar = sVar10;\n      }\n      (dfa->lex).laststart = false;\n      uVar18 = 0x10a;\n      if (cVar16 == '\0') {\n        uVar18 = sVar10 + 0x114;\n      }\n      (dfa->lex).lasttok = uVar18;\n      goto LAB_0002318d;\n    }\n    uVar18 = 0x2e;\n    break;" case number_literal : (expression_statement "bVar6 = false;" (assignment_expression "bVar6 = false" identifier = false) ;) (labeled_statement "LAB_0002336a:\n    cVar16 = (dfa->localeinfo).multibyte;" statement_identifier : (expression_statement "cVar16 = (dfa->localeinfo).multibyte;" (assignment_expression "cVar16 = (dfa->localeinfo).multibyte" identifier = (field_expression "(dfa->localeinfo).multibyte" (parenthesized_expression "(dfa->localeinfo)" ( (field_expression "dfa->localeinfo" identifier -> field_identifier) )) . field_identifier)) ;)) (if_statement "if (!bVar6) {\n      sVar10 = dfa->canychar;\n      if (sVar10 == 0xffffffff) {\n        uVar18 = (dfa->syntax).syntax_bits;\n        ccl.w[0] = 0xffffffff;\n        ccl.w[1] = 0xffffffff;\n        ccl.w[2] = 0xffffffff;\n        ccl.w[3] = 0xffffffff;\n        ccl.w[4] = 0xffffffff;\n        ccl.w[5] = 0xffffffff;\n        ccl.w[6] = 0xffffffff;\n        ccl.w[7] = 0xffffffff;\n        if ((uVar18 & 0x40) == 0) {\n          ccl.w[0] = 0xfffffbff;\n        }\n        if ((uVar18 & 0x80) != 0) {\n          ccl.w[0] = ccl.w[0] & 0xfffffffe;\n        }\n        if ((_Bool)cVar16 != false) {\n          uVar18 = 0;\n          do {\n            if ((dfa->localeinfo).sbctowc[uVar18] == 0xffffffff) {\n              ccl.w[uVar18 >> 5] = ccl.w[uVar18 >> 5] & ~(1 << ((byte)uVar18 & 0x1f));\n            }\n            uVar18 = uVar18 + 1;\n          } while (uVar18 != 0x100);\n        }\n        sVar10 = charclass_index(dfa,&ccl);\n        cVar16 = (dfa->localeinfo).multibyte;\n        dfa->canychar = sVar10;\n      }\n      (dfa->lex).laststart = false;\n      uVar18 = 0x10a;\n      if (cVar16 == '\0') {\n        uVar18 = sVar10 + 0x114;\n      }\n      (dfa->lex).lasttok = uVar18;\n      goto LAB_0002318d;\n    }" if (parenthesized_expression "(!bVar6)" ( (unary_expression "!bVar6" ! identifier) )) (compound_statement "{\n      sVar10 = dfa->canychar;\n      if (sVar10 == 0xffffffff) {\n        uVar18 = (dfa->syntax).syntax_bits;\n        ccl.w[0] = 0xffffffff;\n        ccl.w[1] = 0xffffffff;\n        ccl.w[2] = 0xffffffff;\n        ccl.w[3] = 0xffffffff;\n        ccl.w[4] = 0xffffffff;\n        ccl.w[5] = 0xffffffff;\n        ccl.w[6] = 0xffffffff;\n        ccl.w[7] = 0xffffffff;\n        if ((uVar18 & 0x40) == 0) {\n          ccl.w[0] = 0xfffffbff;\n        }\n        if ((uVar18 & 0x80) != 0) {\n          ccl.w[0] = ccl.w[0] & 0xfffffffe;\n        }\n        if ((_Bool)cVar16 != false) {\n          uVar18 = 0;\n          do {\n            if ((dfa->localeinfo).sbctowc[uVar18] == 0xffffffff) {\n              ccl.w[uVar18 >> 5] = ccl.w[uVar18 >> 5] & ~(1 << ((byte)uVar18 & 0x1f));\n            }\n            uVar18 = uVar18 + 1;\n          } while (uVar18 != 0x100);\n        }\n        sVar10 = charclass_index(dfa,&ccl);\n        cVar16 = (dfa->localeinfo).multibyte;\n        dfa->canychar = sVar10;\n      }\n      (dfa->lex).laststart = false;\n      uVar18 = 0x10a;\n      if (cVar16 == '\0') {\n        uVar18 = sVar10 + 0x114;\n      }\n      (dfa->lex).lasttok = uVar18;\n      goto LAB_0002318d;\n    }" { (expression_statement "sVar10 = dfa->canychar;" (assignment_expression "sVar10 = dfa->canychar" identifier = (field_expression "dfa->canychar" identifier -> field_identifier)) ;) (if_statement "if (sVar10 == 0xffffffff) {\n        uVar18 = (dfa->syntax).syntax_bits;\n        ccl.w[0] = 0xffffffff;\n        ccl.w[1] = 0xffffffff;\n        ccl.w[2] = 0xffffffff;\n        ccl.w[3] = 0xffffffff;\n        ccl.w[4] = 0xffffffff;\n        ccl.w[5] = 0xffffffff;\n        ccl.w[6] = 0xffffffff;\n        ccl.w[7] = 0xffffffff;\n        if ((uVar18 & 0x40) == 0) {\n          ccl.w[0] = 0xfffffbff;\n        }\n        if ((uVar18 & 0x80) != 0) {\n          ccl.w[0] = ccl.w[0] & 0xfffffffe;\n        }\n        if ((_Bool)cVar16 != false) {\n          uVar18 = 0;\n          do {\n            if ((dfa->localeinfo).sbctowc[uVar18] == 0xffffffff) {\n              ccl.w[uVar18 >> 5] = ccl.w[uVar18 >> 5] & ~(1 << ((byte)uVar18 & 0x1f));\n            }\n            uVar18 = uVar18 + 1;\n          } while (uVar18 != 0x100);\n        }\n        sVar10 = charclass_index(dfa,&ccl);\n        cVar16 = (dfa->localeinfo).multibyte;\n        dfa->canychar = sVar10;\n      }" if (parenthesized_expression "(sVar10 == 0xffffffff)" ( (binary_expression "sVar10 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n        uVar18 = (dfa->syntax).syntax_bits;\n        ccl.w[0] = 0xffffffff;\n        ccl.w[1] = 0xffffffff;\n        ccl.w[2] = 0xffffffff;\n        ccl.w[3] = 0xffffffff;\n        ccl.w[4] = 0xffffffff;\n        ccl.w[5] = 0xffffffff;\n        ccl.w[6] = 0xffffffff;\n        ccl.w[7] = 0xffffffff;\n        if ((uVar18 & 0x40) == 0) {\n          ccl.w[0] = 0xfffffbff;\n        }\n        if ((uVar18 & 0x80) != 0) {\n          ccl.w[0] = ccl.w[0] & 0xfffffffe;\n        }\n        if ((_Bool)cVar16 != false) {\n          uVar18 = 0;\n          do {\n            if ((dfa->localeinfo).sbctowc[uVar18] == 0xffffffff) {\n              ccl.w[uVar18 >> 5] = ccl.w[uVar18 >> 5] & ~(1 << ((byte)uVar18 & 0x1f));\n            }\n            uVar18 = uVar18 + 1;\n          } while (uVar18 != 0x100);\n        }\n        sVar10 = charclass_index(dfa,&ccl);\n        cVar16 = (dfa->localeinfo).multibyte;\n        dfa->canychar = sVar10;\n      }" { (expression_statement "uVar18 = (dfa->syntax).syntax_bits;" (assignment_expression "uVar18 = (dfa->syntax).syntax_bits" identifier = (field_expression "(dfa->syntax).syntax_bits" (parenthesized_expression "(dfa->syntax)" ( (field_expression "dfa->syntax" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "ccl.w[0] = 0xffffffff;" (assignment_expression "ccl.w[0] = 0xffffffff" (subscript_expression "ccl.w[0]" (field_expression "ccl.w" identifier . field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "ccl.w[1] = 0xffffffff;" (assignment_expression "ccl.w[1] = 0xffffffff" (subscript_expression "ccl.w[1]" (field_expression "ccl.w" identifier . field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "ccl.w[2] = 0xffffffff;" (assignment_expression "ccl.w[2] = 0xffffffff" (subscript_expression "ccl.w[2]" (field_expression "ccl.w" identifier . field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "ccl.w[3] = 0xffffffff;" (assignment_expression "ccl.w[3] = 0xffffffff" (subscript_expression "ccl.w[3]" (field_expression "ccl.w" identifier . field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "ccl.w[4] = 0xffffffff;" (assignment_expression "ccl.w[4] = 0xffffffff" (subscript_expression "ccl.w[4]" (field_expression "ccl.w" identifier . field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "ccl.w[5] = 0xffffffff;" (assignment_expression "ccl.w[5] = 0xffffffff" (subscript_expression "ccl.w[5]" (field_expression "ccl.w" identifier . field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "ccl.w[6] = 0xffffffff;" (assignment_expression "ccl.w[6] = 0xffffffff" (subscript_expression "ccl.w[6]" (field_expression "ccl.w" identifier . field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "ccl.w[7] = 0xffffffff;" (assignment_expression "ccl.w[7] = 0xffffffff" (subscript_expression "ccl.w[7]" (field_expression "ccl.w" identifier . field_identifier) [ number_literal ]) = number_literal) ;) (if_statement "if ((uVar18 & 0x40) == 0) {\n          ccl.w[0] = 0xfffffbff;\n        }" if (parenthesized_expression "((uVar18 & 0x40) == 0)" ( (binary_expression "(uVar18 & 0x40) == 0" (parenthesized_expression "(uVar18 & 0x40)" ( (binary_expression "uVar18 & 0x40" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          ccl.w[0] = 0xfffffbff;\n        }" { (expression_statement "ccl.w[0] = 0xfffffbff;" (assignment_expression "ccl.w[0] = 0xfffffbff" (subscript_expression "ccl.w[0]" (field_expression "ccl.w" identifier . field_identifier) [ number_literal ]) = number_literal) ;) })) (if_statement "if ((uVar18 & 0x80) != 0) {\n          ccl.w[0] = ccl.w[0] & 0xfffffffe;\n        }" if (parenthesized_expression "((uVar18 & 0x80) != 0)" ( (binary_expression "(uVar18 & 0x80) != 0" (parenthesized_expression "(uVar18 & 0x80)" ( (binary_expression "uVar18 & 0x80" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          ccl.w[0] = ccl.w[0] & 0xfffffffe;\n        }" { (expression_statement "ccl.w[0] = ccl.w[0] & 0xfffffffe;" (assignment_expression "ccl.w[0] = ccl.w[0] & 0xfffffffe" (subscript_expression "ccl.w[0]" (field_expression "ccl.w" identifier . field_identifier) [ number_literal ]) = (binary_expression "ccl.w[0] & 0xfffffffe" (subscript_expression "ccl.w[0]" (field_expression "ccl.w" identifier . field_identifier) [ number_literal ]) & number_literal)) ;) })) (if_statement "if ((_Bool)cVar16 != false) {\n          uVar18 = 0;\n          do {\n            if ((dfa->localeinfo).sbctowc[uVar18] == 0xffffffff) {\n              ccl.w[uVar18 >> 5] = ccl.w[uVar18 >> 5] & ~(1 << ((byte)uVar18 & 0x1f));\n            }\n            uVar18 = uVar18 + 1;\n          } while (uVar18 != 0x100);\n        }" if (parenthesized_expression "((_Bool)cVar16 != false)" ( (binary_expression "(_Bool)cVar16 != false" (cast_expression "(_Bool)cVar16" ( (type_descriptor "_Bool" type_identifier) ) identifier) != false) )) (compound_statement "{\n          uVar18 = 0;\n          do {\n            if ((dfa->localeinfo).sbctowc[uVar18] == 0xffffffff) {\n              ccl.w[uVar18 >> 5] = ccl.w[uVar18 >> 5] & ~(1 << ((byte)uVar18 & 0x1f));\n            }\n            uVar18 = uVar18 + 1;\n          } while (uVar18 != 0x100);\n        }" { (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n            if ((dfa->localeinfo).sbctowc[uVar18] == 0xffffffff) {\n              ccl.w[uVar18 >> 5] = ccl.w[uVar18 >> 5] & ~(1 << ((byte)uVar18 & 0x1f));\n            }\n            uVar18 = uVar18 + 1;\n          } while (uVar18 != 0x100);" do (compound_statement "{\n            if ((dfa->localeinfo).sbctowc[uVar18] == 0xffffffff) {\n              ccl.w[uVar18 >> 5] = ccl.w[uVar18 >> 5] & ~(1 << ((byte)uVar18 & 0x1f));\n            }\n            uVar18 = uVar18 + 1;\n          }" { (if_statement "if ((dfa->localeinfo).sbctowc[uVar18] == 0xffffffff) {\n              ccl.w[uVar18 >> 5] = ccl.w[uVar18 >> 5] & ~(1 << ((byte)uVar18 & 0x1f));\n            }" if (parenthesized_expression "((dfa->localeinfo).sbctowc[uVar18] == 0xffffffff)" ( (binary_expression "(dfa->localeinfo).sbctowc[uVar18] == 0xffffffff" (subscript_expression "(dfa->localeinfo).sbctowc[uVar18]" (field_expression "(dfa->localeinfo).sbctowc" (parenthesized_expression "(dfa->localeinfo)" ( (field_expression "dfa->localeinfo" identifier -> field_identifier) )) . field_identifier) [ identifier ]) == number_literal) )) (compound_statement "{\n              ccl.w[uVar18 >> 5] = ccl.w[uVar18 >> 5] & ~(1 << ((byte)uVar18 & 0x1f));\n            }" { (expression_statement "ccl.w[uVar18 >> 5] = ccl.w[uVar18 >> 5] & ~(1 << ((byte)uVar18 & 0x1f));" (assignment_expression "ccl.w[uVar18 >> 5] = ccl.w[uVar18 >> 5] & ~(1 << ((byte)uVar18 & 0x1f))" (subscript_expression "ccl.w[uVar18 >> 5]" (field_expression "ccl.w" identifier . field_identifier) [ (binary_expression "uVar18 >> 5" identifier >> number_literal) ]) = (binary_expression "ccl.w[uVar18 >> 5] & ~(1 << ((byte)uVar18 & 0x1f))" (subscript_expression "ccl.w[uVar18 >> 5]" (field_expression "ccl.w" identifier . field_identifier) [ (binary_expression "uVar18 >> 5" identifier >> number_literal) ]) & (unary_expression "~(1 << ((byte)uVar18 & 0x1f))" ~ (parenthesized_expression "(1 << ((byte)uVar18 & 0x1f))" ( (binary_expression "1 << ((byte)uVar18 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar18 & 0x1f)" ( (binary_expression "(byte)uVar18 & 0x1f" (cast_expression "(byte)uVar18" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))))) ;) })) (expression_statement "uVar18 = uVar18 + 1;" (assignment_expression "uVar18 = uVar18 + 1" identifier = (binary_expression "uVar18 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar18 != 0x100)" ( (binary_expression "uVar18 != 0x100" identifier != number_literal) )) ;) })) (expression_statement "sVar10 = charclass_index(dfa,&ccl);" (assignment_expression "sVar10 = charclass_index(dfa,&ccl)" identifier = (call_expression "charclass_index(dfa,&ccl)" identifier (argument_list "(dfa,&ccl)" ( identifier , (pointer_expression "&ccl" & identifier) )))) ;) (expression_statement "cVar16 = (dfa->localeinfo).multibyte;" (assignment_expression "cVar16 = (dfa->localeinfo).multibyte" identifier = (field_expression "(dfa->localeinfo).multibyte" (parenthesized_expression "(dfa->localeinfo)" ( (field_expression "dfa->localeinfo" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "dfa->canychar = sVar10;" (assignment_expression "dfa->canychar = sVar10" (field_expression "dfa->canychar" identifier -> field_identifier) = identifier) ;) })) (expression_statement "(dfa->lex).laststart = false;" (assignment_expression "(dfa->lex).laststart = false" (field_expression "(dfa->lex).laststart" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = false) ;) (expression_statement "uVar18 = 0x10a;" (assignment_expression "uVar18 = 0x10a" identifier = number_literal) ;) (if_statement "if (cVar16 == '\0') {\n        uVar18 = sVar10 + 0x114;\n      }" if (parenthesized_expression "(cVar16 == '\0')" ( (binary_expression "cVar16 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar18 = sVar10 + 0x114;\n      }" { (expression_statement "uVar18 = sVar10 + 0x114;" (assignment_expression "uVar18 = sVar10 + 0x114" identifier = (binary_expression "sVar10 + 0x114" identifier + number_literal)) ;) })) (expression_statement "(dfa->lex).lasttok = uVar18;" (assignment_expression "(dfa->lex).lasttok = uVar18" (field_expression "(dfa->lex).lasttok" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) })) (expression_statement "uVar18 = 0x2e;" (assignment_expression "uVar18 = 0x2e" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x32:\n_L1452:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x3c;\n    break;" case number_literal : (labeled_statement "_L1452:\n    cVar16 = (dfa->localeinfo).multibyte;" statement_identifier : (expression_statement "cVar16 = (dfa->localeinfo).multibyte;" (assignment_expression "cVar16 = (dfa->localeinfo).multibyte" identifier = (field_expression "(dfa->localeinfo).multibyte" (parenthesized_expression "(dfa->localeinfo)" ( (field_expression "dfa->localeinfo" identifier -> field_identifier) )) . field_identifier)) ;)) (expression_statement "uVar18 = 0x3c;" (assignment_expression "uVar18 = 0x3c" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x34:\n_L1455:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x3e;\n    break;" case number_literal : (labeled_statement "_L1455:\n    cVar16 = (dfa->localeinfo).multibyte;" statement_identifier : (expression_statement "cVar16 = (dfa->localeinfo).multibyte;" (assignment_expression "cVar16 = (dfa->localeinfo).multibyte" identifier = (field_expression "(dfa->localeinfo).multibyte" (parenthesized_expression "(dfa->localeinfo)" ( (field_expression "dfa->localeinfo" identifier -> field_identifier) )) . field_identifier)) ;)) (expression_statement "uVar18 = 0x3e;" (assignment_expression "uVar18 = 0x3e" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x35:\n    bVar21 = 0;\nLAB_000233b2:\n    uVar18 = (dfa->syntax).syntax_bits;\n    if ((((uVar18 & 0x400) == 0) && (((byte)(uVar18 >> 1) & 1) == bVar21)) &&\n       (((uVar18 & 0x10) != 0 || ((dfa->lex).laststart == false)))) {\n      (dfa->lex).lasttok = 0x101;\n      uVar18 = 0x101;\n      goto LAB_0002318d;\n    }\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x3f;\n    break;" case number_literal : (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000233b2:\n    uVar18 = (dfa->syntax).syntax_bits;" statement_identifier : (expression_statement "uVar18 = (dfa->syntax).syntax_bits;" (assignment_expression "uVar18 = (dfa->syntax).syntax_bits" identifier = (field_expression "(dfa->syntax).syntax_bits" (parenthesized_expression "(dfa->syntax)" ( (field_expression "dfa->syntax" identifier -> field_identifier) )) . field_identifier)) ;)) (if_statement "if ((((uVar18 & 0x400) == 0) && (((byte)(uVar18 >> 1) & 1) == bVar21)) &&\n       (((uVar18 & 0x10) != 0 || ((dfa->lex).laststart == false)))) {\n      (dfa->lex).lasttok = 0x101;\n      uVar18 = 0x101;\n      goto LAB_0002318d;\n    }" if (parenthesized_expression "((((uVar18 & 0x400) == 0) && (((byte)(uVar18 >> 1) & 1) == bVar21)) &&\n       (((uVar18 & 0x10) != 0 || ((dfa->lex).laststart == false))))" ( (binary_expression "(((uVar18 & 0x400) == 0) && (((byte)(uVar18 >> 1) & 1) == bVar21)) &&\n       (((uVar18 & 0x10) != 0 || ((dfa->lex).laststart == false)))" (parenthesized_expression "(((uVar18 & 0x400) == 0) && (((byte)(uVar18 >> 1) & 1) == bVar21))" ( (binary_expression "((uVar18 & 0x400) == 0) && (((byte)(uVar18 >> 1) & 1) == bVar21)" (parenthesized_expression "((uVar18 & 0x400) == 0)" ( (binary_expression "(uVar18 & 0x400) == 0" (parenthesized_expression "(uVar18 & 0x400)" ( (binary_expression "uVar18 & 0x400" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(((byte)(uVar18 >> 1) & 1) == bVar21)" ( (binary_expression "((byte)(uVar18 >> 1) & 1) == bVar21" (parenthesized_expression "((byte)(uVar18 >> 1) & 1)" ( (binary_expression "(byte)(uVar18 >> 1) & 1" (call_expression "(byte)(uVar18 >> 1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar18 >> 1)" ( (binary_expression "uVar18 >> 1" identifier >> number_literal) ))) & number_literal) )) == identifier) ))) )) && (parenthesized_expression "(((uVar18 & 0x10) != 0 || ((dfa->lex).laststart == false)))" ( (parenthesized_expression "((uVar18 & 0x10) != 0 || ((dfa->lex).laststart == false))" ( (binary_expression "(uVar18 & 0x10) != 0 || ((dfa->lex).laststart == false)" (binary_expression "(uVar18 & 0x10) != 0" (parenthesized_expression "(uVar18 & 0x10)" ( (binary_expression "uVar18 & 0x10" identifier & number_literal) )) != number_literal) || (parenthesized_expression "((dfa->lex).laststart == false)" ( (binary_expression "(dfa->lex).laststart == false" (field_expression "(dfa->lex).laststart" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) == false) ))) )) ))) )) (compound_statement "{\n      (dfa->lex).lasttok = 0x101;\n      uVar18 = 0x101;\n      goto LAB_0002318d;\n    }" { (expression_statement "(dfa->lex).lasttok = 0x101;" (assignment_expression "(dfa->lex).lasttok = 0x101" (field_expression "(dfa->lex).lasttok" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "uVar18 = 0x101;" (assignment_expression "uVar18 = 0x101" identifier = number_literal) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) })) (expression_statement "cVar16 = (dfa->localeinfo).multibyte;" (assignment_expression "cVar16 = (dfa->localeinfo).multibyte" identifier = (field_expression "(dfa->localeinfo).multibyte" (parenthesized_expression "(dfa->localeinfo)" ( (field_expression "dfa->localeinfo" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar18 = 0x3f;" (assignment_expression "uVar18 = 0x3f" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x38:\n_L1461:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x42;\n    break;" case number_literal : (labeled_statement "_L1461:\n    cVar16 = (dfa->localeinfo).multibyte;" statement_identifier : (expression_statement "cVar16 = (dfa->localeinfo).multibyte;" (assignment_expression "cVar16 = (dfa->localeinfo).multibyte" identifier = (field_expression "(dfa->localeinfo).multibyte" (parenthesized_expression "(dfa->localeinfo)" ( (field_expression "dfa->localeinfo" identifier -> field_identifier) )) . field_identifier)) ;)) (expression_statement "uVar18 = 0x42;" (assignment_expression "uVar18 = 0x42" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x49:" case number_literal :) (case_statement "case 0x69:\n    bVar6 = false;\n    local_60 = pbVar15;\n    local_5c = pbVar1;\nLAB_0002342a:\n    cVar16 = (dfa->localeinfo).multibyte;\n    if ((!bVar6) || (((dfa->syntax).syntax_bits & 0x80000) != 0)) break;\n    if ((_Bool)cVar16 != false) {\n      pcVar13 = &UNK_0002f468 + (uVar18 == 0x73);\nLAB_0002345c:\n      (dfa->lex).ptr = pcVar13;\n      sVar11 = strlen(pcVar13);\n      (dfa->lex).left = sVar11;\n      uVar18 = parse_bracket_exp(dfa);\n      (dfa->lex).laststart = false;\n      (dfa->lex).lasttok = uVar18;\n      (dfa->lex).ptr = (char *)local_5c;\n      (dfa->lex).left = (size_t)local_60;\n      goto LAB_0002318d;\n    }\n    uVar8 = 0;\n    do {\n      *(undefined4 *)((int)ccl.w + uVar8) = 0;\n      uVar8 = uVar8 + 4;\n    } while (uVar8 < 0x20);\n    ppuVar9 = __ctype_b_loc();\n    uVar8 = 0;\n    puVar5 = *ppuVar9;\n    do {\n      if ((*(byte *)((int)puVar5 + uVar8 * 2 + 1) & 0x20) != 0) {\n        ccl.w[uVar8 >> 5] = ccl.w[uVar8 >> 5] | 1 << ((byte)uVar8 & 0x1f);\n      }\n      uVar8 = uVar8 + 1;\n    } while (uVar8 != 0x100);\n    if (uVar18 == 0x53) {\nLAB_00023b34:\n      ccl.w[0] = ~ccl.w[0];\n      ccl.w[1] = ~ccl.w[1];\n      ccl.w[2] = ~ccl.w[2];\n      ccl.w[3] = ~ccl.w[3];\n      ccl.w[4] = ~ccl.w[4];\n      ccl.w[5] = ~ccl.w[5];\n      ccl.w[6] = ~ccl.w[6];\n      ccl.w[7] = ~ccl.w[7];\n    }\nLAB_00023ae7:\n    (dfa->lex).laststart = false;\n    goto LAB_000237bd;" case number_literal : (expression_statement "bVar6 = false;" (assignment_expression "bVar6 = false" identifier = false) ;) (expression_statement "local_60 = pbVar15;" (assignment_expression "local_60 = pbVar15" identifier = identifier) ;) (expression_statement "local_5c = pbVar1;" (assignment_expression "local_5c = pbVar1" identifier = identifier) ;) (labeled_statement "LAB_0002342a:\n    cVar16 = (dfa->localeinfo).multibyte;" statement_identifier : (expression_statement "cVar16 = (dfa->localeinfo).multibyte;" (assignment_expression "cVar16 = (dfa->localeinfo).multibyte" identifier = (field_expression "(dfa->localeinfo).multibyte" (parenthesized_expression "(dfa->localeinfo)" ( (field_expression "dfa->localeinfo" identifier -> field_identifier) )) . field_identifier)) ;)) (if_statement "if ((!bVar6) || (((dfa->syntax).syntax_bits & 0x80000) != 0)) break;" if (parenthesized_expression "((!bVar6) || (((dfa->syntax).syntax_bits & 0x80000) != 0))" ( (binary_expression "(!bVar6) || (((dfa->syntax).syntax_bits & 0x80000) != 0)" (parenthesized_expression "(!bVar6)" ( (unary_expression "!bVar6" ! identifier) )) || (parenthesized_expression "(((dfa->syntax).syntax_bits & 0x80000) != 0)" ( (binary_expression "((dfa->syntax).syntax_bits & 0x80000) != 0" (parenthesized_expression "((dfa->syntax).syntax_bits & 0x80000)" ( (binary_expression "(dfa->syntax).syntax_bits & 0x80000" (field_expression "(dfa->syntax).syntax_bits" (parenthesized_expression "(dfa->syntax)" ( (field_expression "dfa->syntax" identifier -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) ))) )) (break_statement "break;" break ;)) (if_statement "if ((_Bool)cVar16 != false) {\n      pcVar13 = &UNK_0002f468 + (uVar18 == 0x73);\nLAB_0002345c:\n      (dfa->lex).ptr = pcVar13;\n      sVar11 = strlen(pcVar13);\n      (dfa->lex).left = sVar11;\n      uVar18 = parse_bracket_exp(dfa);\n      (dfa->lex).laststart = false;\n      (dfa->lex).lasttok = uVar18;\n      (dfa->lex).ptr = (char *)local_5c;\n      (dfa->lex).left = (size_t)local_60;\n      goto LAB_0002318d;\n    }" if (parenthesized_expression "((_Bool)cVar16 != false)" ( (binary_expression "(_Bool)cVar16 != false" (cast_expression "(_Bool)cVar16" ( (type_descriptor "_Bool" type_identifier) ) identifier) != false) )) (compound_statement "{\n      pcVar13 = &UNK_0002f468 + (uVar18 == 0x73);\nLAB_0002345c:\n      (dfa->lex).ptr = pcVar13;\n      sVar11 = strlen(pcVar13);\n      (dfa->lex).left = sVar11;\n      uVar18 = parse_bracket_exp(dfa);\n      (dfa->lex).laststart = false;\n      (dfa->lex).lasttok = uVar18;\n      (dfa->lex).ptr = (char *)local_5c;\n      (dfa->lex).left = (size_t)local_60;\n      goto LAB_0002318d;\n    }" { (expression_statement "pcVar13 = &UNK_0002f468 + (uVar18 == 0x73);" (assignment_expression "pcVar13 = &UNK_0002f468 + (uVar18 == 0x73)" identifier = (binary_expression "&UNK_0002f468 + (uVar18 == 0x73)" (pointer_expression "&UNK_0002f468" & identifier) + (parenthesized_expression "(uVar18 == 0x73)" ( (binary_expression "uVar18 == 0x73" identifier == number_literal) )))) ;) (labeled_statement "LAB_0002345c:\n      (dfa->lex).ptr = pcVar13;" statement_identifier : (expression_statement "(dfa->lex).ptr = pcVar13;" (assignment_expression "(dfa->lex).ptr = pcVar13" (field_expression "(dfa->lex).ptr" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = identifier) ;)) (expression_statement "sVar11 = strlen(pcVar13);" (assignment_expression "sVar11 = strlen(pcVar13)" identifier = (call_expression "strlen(pcVar13)" identifier (argument_list "(pcVar13)" ( identifier )))) ;) (expression_statement "(dfa->lex).left = sVar11;" (assignment_expression "(dfa->lex).left = sVar11" (field_expression "(dfa->lex).left" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "uVar18 = parse_bracket_exp(dfa);" (assignment_expression "uVar18 = parse_bracket_exp(dfa)" identifier = (call_expression "parse_bracket_exp(dfa)" identifier (argument_list "(dfa)" ( identifier )))) ;) (expression_statement "(dfa->lex).laststart = false;" (assignment_expression "(dfa->lex).laststart = false" (field_expression "(dfa->lex).laststart" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = false) ;) (expression_statement "(dfa->lex).lasttok = uVar18;" (assignment_expression "(dfa->lex).lasttok = uVar18" (field_expression "(dfa->lex).lasttok" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(dfa->lex).ptr = (char *)local_5c;" (assignment_expression "(dfa->lex).ptr = (char *)local_5c" (field_expression "(dfa->lex).ptr" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(char *)local_5c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "(dfa->lex).left = (size_t)local_60;" (assignment_expression "(dfa->lex).left = (size_t)local_60" (field_expression "(dfa->lex).left" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(size_t)local_60" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) })) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (do_statement "do {\n      *(undefined4 *)((int)ccl.w + uVar8) = 0;\n      uVar8 = uVar8 + 4;\n    } while (uVar8 < 0x20);" do (compound_statement "{\n      *(undefined4 *)((int)ccl.w + uVar8) = 0;\n      uVar8 = uVar8 + 4;\n    }" { (expression_statement "*(undefined4 *)((int)ccl.w + uVar8) = 0;" (assignment_expression "*(undefined4 *)((int)ccl.w + uVar8) = 0" (pointer_expression "*(undefined4 *)((int)ccl.w + uVar8)" * (cast_expression "(undefined4 *)((int)ccl.w + uVar8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ccl.w + uVar8)" ( (binary_expression "(int)ccl.w + uVar8" (cast_expression "(int)ccl.w" ( (type_descriptor "int" primitive_type) ) (field_expression "ccl.w" identifier . field_identifier)) + identifier) )))) = number_literal) ;) (expression_statement "uVar8 = uVar8 + 4;" (assignment_expression "uVar8 = uVar8 + 4" identifier = (binary_expression "uVar8 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar8 < 0x20)" ( (binary_expression "uVar8 < 0x20" identifier < number_literal) )) ;) (expression_statement "ppuVar9 = __ctype_b_loc();" (assignment_expression "ppuVar9 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (expression_statement "puVar5 = *ppuVar9;" (assignment_expression "puVar5 = *ppuVar9" identifier = (pointer_expression "*ppuVar9" * identifier)) ;) (do_statement "do {\n      if ((*(byte *)((int)puVar5 + uVar8 * 2 + 1) & 0x20) != 0) {\n        ccl.w[uVar8 >> 5] = ccl.w[uVar8 >> 5] | 1 << ((byte)uVar8 & 0x1f);\n      }\n      uVar8 = uVar8 + 1;\n    } while (uVar8 != 0x100);" do (compound_statement "{\n      if ((*(byte *)((int)puVar5 + uVar8 * 2 + 1) & 0x20) != 0) {\n        ccl.w[uVar8 >> 5] = ccl.w[uVar8 >> 5] | 1 << ((byte)uVar8 & 0x1f);\n      }\n      uVar8 = uVar8 + 1;\n    }" { (if_statement "if ((*(byte *)((int)puVar5 + uVar8 * 2 + 1) & 0x20) != 0) {\n        ccl.w[uVar8 >> 5] = ccl.w[uVar8 >> 5] | 1 << ((byte)uVar8 & 0x1f);\n      }" if (parenthesized_expression "((*(byte *)((int)puVar5 + uVar8 * 2 + 1) & 0x20) != 0)" ( (binary_expression "(*(byte *)((int)puVar5 + uVar8 * 2 + 1) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)puVar5 + uVar8 * 2 + 1) & 0x20)" ( (binary_expression "*(byte *)((int)puVar5 + uVar8 * 2 + 1) & 0x20" (pointer_expression "*(byte *)((int)puVar5 + uVar8 * 2 + 1)" * (cast_expression "(byte *)((int)puVar5 + uVar8 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar5 + uVar8 * 2 + 1)" ( (binary_expression "(int)puVar5 + uVar8 * 2 + 1" (binary_expression "(int)puVar5 + uVar8 * 2" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "uVar8 * 2" identifier * number_literal)) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        ccl.w[uVar8 >> 5] = ccl.w[uVar8 >> 5] | 1 << ((byte)uVar8 & 0x1f);\n      }" { (expression_statement "ccl.w[uVar8 >> 5] = ccl.w[uVar8 >> 5] | 1 << ((byte)uVar8 & 0x1f);" (assignment_expression "ccl.w[uVar8 >> 5] = ccl.w[uVar8 >> 5] | 1 << ((byte)uVar8 & 0x1f)" (subscript_expression "ccl.w[uVar8 >> 5]" (field_expression "ccl.w" identifier . field_identifier) [ (binary_expression "uVar8 >> 5" identifier >> number_literal) ]) = (binary_expression "ccl.w[uVar8 >> 5] | 1 << ((byte)uVar8 & 0x1f)" (subscript_expression "ccl.w[uVar8 >> 5]" (field_expression "ccl.w" identifier . field_identifier) [ (binary_expression "uVar8 >> 5" identifier >> number_literal) ]) | (binary_expression "1 << ((byte)uVar8 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar8 & 0x1f)" ( (binary_expression "(byte)uVar8 & 0x1f" (cast_expression "(byte)uVar8" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))))) ;) })) (expression_statement "uVar8 = uVar8 + 1;" (assignment_expression "uVar8 = uVar8 + 1" identifier = (binary_expression "uVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar8 != 0x100)" ( (binary_expression "uVar8 != 0x100" identifier != number_literal) )) ;) (if_statement "if (uVar18 == 0x53) {\nLAB_00023b34:\n      ccl.w[0] = ~ccl.w[0];\n      ccl.w[1] = ~ccl.w[1];\n      ccl.w[2] = ~ccl.w[2];\n      ccl.w[3] = ~ccl.w[3];\n      ccl.w[4] = ~ccl.w[4];\n      ccl.w[5] = ~ccl.w[5];\n      ccl.w[6] = ~ccl.w[6];\n      ccl.w[7] = ~ccl.w[7];\n    }" if (parenthesized_expression "(uVar18 == 0x53)" ( (binary_expression "uVar18 == 0x53" identifier == number_literal) )) (compound_statement "{\nLAB_00023b34:\n      ccl.w[0] = ~ccl.w[0];\n      ccl.w[1] = ~ccl.w[1];\n      ccl.w[2] = ~ccl.w[2];\n      ccl.w[3] = ~ccl.w[3];\n      ccl.w[4] = ~ccl.w[4];\n      ccl.w[5] = ~ccl.w[5];\n      ccl.w[6] = ~ccl.w[6];\n      ccl.w[7] = ~ccl.w[7];\n    }" { (labeled_statement "LAB_00023b34:\n      ccl.w[0] = ~ccl.w[0];" statement_identifier : (expression_statement "ccl.w[0] = ~ccl.w[0];" (assignment_expression "ccl.w[0] = ~ccl.w[0]" (subscript_expression "ccl.w[0]" (field_expression "ccl.w" identifier . field_identifier) [ number_literal ]) = (unary_expression "~ccl.w[0]" ~ (subscript_expression "ccl.w[0]" (field_expression "ccl.w" identifier . field_identifier) [ number_literal ]))) ;)) (expression_statement "ccl.w[1] = ~ccl.w[1];" (assignment_expression "ccl.w[1] = ~ccl.w[1]" (subscript_expression "ccl.w[1]" (field_expression "ccl.w" identifier . field_identifier) [ number_literal ]) = (unary_expression "~ccl.w[1]" ~ (subscript_expression "ccl.w[1]" (field_expression "ccl.w" identifier . field_identifier) [ number_literal ]))) ;) (expression_statement "ccl.w[2] = ~ccl.w[2];" (assignment_expression "ccl.w[2] = ~ccl.w[2]" (subscript_expression "ccl.w[2]" (field_expression "ccl.w" identifier . field_identifier) [ number_literal ]) = (unary_expression "~ccl.w[2]" ~ (subscript_expression "ccl.w[2]" (field_expression "ccl.w" identifier . field_identifier) [ number_literal ]))) ;) (expression_statement "ccl.w[3] = ~ccl.w[3];" (assignment_expression "ccl.w[3] = ~ccl.w[3]" (subscript_expression "ccl.w[3]" (field_expression "ccl.w" identifier . field_identifier) [ number_literal ]) = (unary_expression "~ccl.w[3]" ~ (subscript_expression "ccl.w[3]" (field_expression "ccl.w" identifier . field_identifier) [ number_literal ]))) ;) (expression_statement "ccl.w[4] = ~ccl.w[4];" (assignment_expression "ccl.w[4] = ~ccl.w[4]" (subscript_expression "ccl.w[4]" (field_expression "ccl.w" identifier . field_identifier) [ number_literal ]) = (unary_expression "~ccl.w[4]" ~ (subscript_expression "ccl.w[4]" (field_expression "ccl.w" identifier . field_identifier) [ number_literal ]))) ;) (expression_statement "ccl.w[5] = ~ccl.w[5];" (assignment_expression "ccl.w[5] = ~ccl.w[5]" (subscript_expression "ccl.w[5]" (field_expression "ccl.w" identifier . field_identifier) [ number_literal ]) = (unary_expression "~ccl.w[5]" ~ (subscript_expression "ccl.w[5]" (field_expression "ccl.w" identifier . field_identifier) [ number_literal ]))) ;) (expression_statement "ccl.w[6] = ~ccl.w[6];" (assignment_expression "ccl.w[6] = ~ccl.w[6]" (subscript_expression "ccl.w[6]" (field_expression "ccl.w" identifier . field_identifier) [ number_literal ]) = (unary_expression "~ccl.w[6]" ~ (subscript_expression "ccl.w[6]" (field_expression "ccl.w" identifier . field_identifier) [ number_literal ]))) ;) (expression_statement "ccl.w[7] = ~ccl.w[7];" (assignment_expression "ccl.w[7] = ~ccl.w[7]" (subscript_expression "ccl.w[7]" (field_expression "ccl.w" identifier . field_identifier) [ number_literal ]) = (unary_expression "~ccl.w[7]" ~ (subscript_expression "ccl.w[7]" (field_expression "ccl.w" identifier . field_identifier) [ number_literal ]))) ;) })) (labeled_statement "LAB_00023ae7:\n    (dfa->lex).laststart = false;" statement_identifier : (expression_statement "(dfa->lex).laststart = false;" (assignment_expression "(dfa->lex).laststart = false" (field_expression "(dfa->lex).laststart" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = false) ;)) (goto_statement "goto LAB_000237bd;" goto statement_identifier ;)) (case_statement "case 0x51:\n    (dfa->lex).laststart = false;\n    uVar18 = parse_bracket_exp(dfa);\n    (dfa->lex).lasttok = uVar18;\n    goto LAB_0002318d;" case number_literal : (expression_statement "(dfa->lex).laststart = false;" (assignment_expression "(dfa->lex).laststart = false" (field_expression "(dfa->lex).laststart" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = false) ;) (expression_statement "uVar18 = parse_bracket_exp(dfa);" (assignment_expression "uVar18 = parse_bracket_exp(dfa)" identifier = (call_expression "parse_bracket_exp(dfa)" identifier (argument_list "(dfa)" ( identifier )))) ;) (expression_statement "(dfa->lex).lasttok = uVar18;" (assignment_expression "(dfa->lex).lasttok = uVar18" (field_expression "(dfa->lex).lasttok" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;)) (case_statement "case 0x52:\n    if (pbVar15 == (byte *)0x0) {\n      pcVar13 = "unfinished \\ escape";\n      goto LAB_00023a1b;\n    }\n    wVar4 = (dfa->localeinfo).sbctowc[local_5c[1]];\n    local_60 = pbVar15;\n    local_5c = pbVar1;\n    if (wVar4 == 0xffffffff) {\n      sVar10 = rpl_mbrtowc(&wch,(char *)pbVar1,(size_t)pbVar15,&dfa->mbs);\n      if (0xfffffffc < sVar10 - 1) {\n        pmVar20 = &dfa->mbs;\n        for (iVar14 = 2; iVar14 != 0; iVar14 = iVar14 + -1) {\n          pmVar20->__count = 0;\n          pmVar20 = (mbstate_t *)((int)(pmVar20 + -(uint)bVar21) + 4);\n        }\n        local_5c = (byte *)(dfa->lex).ptr;\n        local_60 = (byte *)(dfa->lex).left;\n        goto LAB_00023748;\n      }\n      local_60 = (byte *)(dfa->lex).left;\n      (dfa->lex).cur_mb_len = sVar10;\n      (dfa->lex).wctok = wch;\n      local_5c = (byte *)(dfa->lex).ptr;\n      if (sVar10 != 1) goto LAB_00023235;\n    }\n    else {\nLAB_00023748:\n      (dfa->lex).cur_mb_len = 1;\n      (dfa->lex).wctok = wVar4;\n    }\n    uVar18 = (uint)*local_5c;\n    pbVar1 = local_5c + 1;\n    (dfa->lex).ptr = (char *)pbVar1;\n    pbVar15 = local_60 + -1;\n    (dfa->lex).left = (size_t)pbVar15;\n    switch(uVar18 - 10 & 0xff) {\n    case 0:\n      goto _L1503;\n    case 0x1a:\n      goto _L1438;\n    case 0x1d:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) goto LAB_00023868;\n      goto _L1449;\n    case 0x1e:\n      bVar21 = 1;\n      goto LAB_00023262;\n    case 0x1f:\n      bVar21 = 1;\n      goto LAB_0002351a;\n    case 0x20:\n      goto _L1469;\n    case 0x21:\n      bVar21 = 1;\n      goto LAB_000234d2;\n    case 0x24:\n      bVar6 = true;\n      goto LAB_0002336a;\n    case 0x27:\n    case 0x28:\n    case 0x29:\n    case 0x2a:\n    case 0x2b:\n    case 0x2c:\n    case 0x2d:\n    case 0x2e:\n    case 0x2f:\n      if (((dfa->syntax).syntax_bits & 0x4000) == 0) {\n        (dfa->lex).laststart = false;\n        uVar18 = 0x112;\n        (dfa->lex).lasttok = 0x112;\n        goto LAB_0002318d;\n      }\n    default:\n_L1538:\n      cVar16 = (dfa->localeinfo).multibyte;\n      break;\n    case 0x32:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) {\n        (dfa->lex).lasttok = 0x10e;\n        uVar18 = 0x10e;\n        goto LAB_0002318d;\n      }\n      goto _L1452;\n    case 0x34:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) {\n        (dfa->lex).lasttok = 0x10f;\n        uVar18 = 0x10f;\n        goto LAB_0002318d;\n      }\n      goto _L1455;\n    case 0x35:\n      bVar21 = 1;\n      goto LAB_000233b2;\n    case 0x38:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) {\n        (dfa->lex).lasttok = 0x111;\n        uVar18 = 0x111;\n        goto LAB_0002318d;\n      }\n      goto _L1461;\n    case 0x49:\n    case 0x69:\n      bVar6 = true;\n      local_60 = pbVar15;\n      local_5c = pbVar1;\n      goto LAB_0002342a;\n    case 0x4d:\n    case 0x6d:\n      cVar16 = (dfa->localeinfo).multibyte;\n      if (((dfa->syntax).syntax_bits & 0x80000) != 0) break;\n      if ((_Bool)cVar16 != false) {\n        pcVar13 = &UNK_0002f474 + (uVar18 == 0x77);\n        local_60 = pbVar15;\n        local_5c = pbVar1;\n        goto LAB_0002345c;\n      }\n      uVar8 = 0;\n      do {\n        *(undefined4 *)((int)ccl.w + uVar8) = 0;\n        uVar8 = uVar8 + 4;\n      } while (uVar8 < 0x20);\n      uVar8 = 0;\n      do {\n        if ((dfa->syntax).sbit[uVar8] == '\x02') {\n          ccl.w[uVar8 >> 5] = ccl.w[uVar8 >> 5] | 1 << ((byte)uVar8 & 0x1f);\n        }\n        uVar8 = uVar8 + 1;\n      } while (uVar8 != 0x100);\n      if (uVar18 == 0x57) goto LAB_00023b34;\n      goto LAB_00023ae7;\n    case 0x51:\n      cVar16 = (dfa->localeinfo).multibyte;\n      uVar18 = 0x5b;\n      break;\n    case 0x52:\n      cVar16 = (dfa->localeinfo).multibyte;\n      uVar18 = 0x5c;\n      break;\n    case 0x54:\n      goto _L1433;\n    case 0x56:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) goto LAB_00023880;\n      goto _L1446;\n    case 0x58:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) {\n        (dfa->lex).lasttok = 0x110;\n        uVar18 = 0x110;\n        goto LAB_0002318d;\n      }\n      goto _L1458;\n    case 0x71:\n      local_51 = 1;\n      pbVar15 = local_60;\n      pbVar17 = local_5c;\n      local_5c = pbVar1;\n      goto LAB_00023295;\n    case 0x72:\n      bVar21 = 1;\n      goto LAB_000233fa;\n    }\n    break;" case number_literal : (if_statement "if (pbVar15 == (byte *)0x0) {\n      pcVar13 = "unfinished \\ escape";\n      goto LAB_00023a1b;\n    }" if (parenthesized_expression "(pbVar15 == (byte *)0x0)" ( (binary_expression "pbVar15 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar13 = "unfinished \\ escape";\n      goto LAB_00023a1b;\n    }" { (expression_statement "pcVar13 = "unfinished \\ escape";" (assignment_expression "pcVar13 = "unfinished \\ escape"" identifier = (string_literal ""unfinished \\ escape"" " string_content escape_sequence string_content ")) ;) (goto_statement "goto LAB_00023a1b;" goto statement_identifier ;) })) (expression_statement "wVar4 = (dfa->localeinfo).sbctowc[local_5c[1]];" (assignment_expression "wVar4 = (dfa->localeinfo).sbctowc[local_5c[1]]" identifier = (subscript_expression "(dfa->localeinfo).sbctowc[local_5c[1]]" (field_expression "(dfa->localeinfo).sbctowc" (parenthesized_expression "(dfa->localeinfo)" ( (field_expression "dfa->localeinfo" identifier -> field_identifier) )) . field_identifier) [ (subscript_expression "local_5c[1]" identifier [ number_literal ]) ])) ;) (expression_statement "local_60 = pbVar15;" (assignment_expression "local_60 = pbVar15" identifier = identifier) ;) (expression_statement "local_5c = pbVar1;" (assignment_expression "local_5c = pbVar1" identifier = identifier) ;) (if_statement "if (wVar4 == 0xffffffff) {\n      sVar10 = rpl_mbrtowc(&wch,(char *)pbVar1,(size_t)pbVar15,&dfa->mbs);\n      if (0xfffffffc < sVar10 - 1) {\n        pmVar20 = &dfa->mbs;\n        for (iVar14 = 2; iVar14 != 0; iVar14 = iVar14 + -1) {\n          pmVar20->__count = 0;\n          pmVar20 = (mbstate_t *)((int)(pmVar20 + -(uint)bVar21) + 4);\n        }\n        local_5c = (byte *)(dfa->lex).ptr;\n        local_60 = (byte *)(dfa->lex).left;\n        goto LAB_00023748;\n      }\n      local_60 = (byte *)(dfa->lex).left;\n      (dfa->lex).cur_mb_len = sVar10;\n      (dfa->lex).wctok = wch;\n      local_5c = (byte *)(dfa->lex).ptr;\n      if (sVar10 != 1) goto LAB_00023235;\n    }\n    else {\nLAB_00023748:\n      (dfa->lex).cur_mb_len = 1;\n      (dfa->lex).wctok = wVar4;\n    }" if (parenthesized_expression "(wVar4 == 0xffffffff)" ( (binary_expression "wVar4 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n      sVar10 = rpl_mbrtowc(&wch,(char *)pbVar1,(size_t)pbVar15,&dfa->mbs);\n      if (0xfffffffc < sVar10 - 1) {\n        pmVar20 = &dfa->mbs;\n        for (iVar14 = 2; iVar14 != 0; iVar14 = iVar14 + -1) {\n          pmVar20->__count = 0;\n          pmVar20 = (mbstate_t *)((int)(pmVar20 + -(uint)bVar21) + 4);\n        }\n        local_5c = (byte *)(dfa->lex).ptr;\n        local_60 = (byte *)(dfa->lex).left;\n        goto LAB_00023748;\n      }\n      local_60 = (byte *)(dfa->lex).left;\n      (dfa->lex).cur_mb_len = sVar10;\n      (dfa->lex).wctok = wch;\n      local_5c = (byte *)(dfa->lex).ptr;\n      if (sVar10 != 1) goto LAB_00023235;\n    }" { (expression_statement "sVar10 = rpl_mbrtowc(&wch,(char *)pbVar1,(size_t)pbVar15,&dfa->mbs);" (assignment_expression "sVar10 = rpl_mbrtowc(&wch,(char *)pbVar1,(size_t)pbVar15,&dfa->mbs)" identifier = (call_expression "rpl_mbrtowc(&wch,(char *)pbVar1,(size_t)pbVar15,&dfa->mbs)" identifier (argument_list "(&wch,(char *)pbVar1,(size_t)pbVar15,&dfa->mbs)" ( (pointer_expression "&wch" & identifier) , (cast_expression "(char *)pbVar1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(size_t)pbVar15" ( (type_descriptor "size_t" primitive_type) ) identifier) , (pointer_expression "&dfa->mbs" & (field_expression "dfa->mbs" identifier -> field_identifier)) )))) ;) (if_statement "if (0xfffffffc < sVar10 - 1) {\n        pmVar20 = &dfa->mbs;\n        for (iVar14 = 2; iVar14 != 0; iVar14 = iVar14 + -1) {\n          pmVar20->__count = 0;\n          pmVar20 = (mbstate_t *)((int)(pmVar20 + -(uint)bVar21) + 4);\n        }\n        local_5c = (byte *)(dfa->lex).ptr;\n        local_60 = (byte *)(dfa->lex).left;\n        goto LAB_00023748;\n      }" if (parenthesized_expression "(0xfffffffc < sVar10 - 1)" ( (binary_expression "0xfffffffc < sVar10 - 1" number_literal < (binary_expression "sVar10 - 1" identifier - number_literal)) )) (compound_statement "{\n        pmVar20 = &dfa->mbs;\n        for (iVar14 = 2; iVar14 != 0; iVar14 = iVar14 + -1) {\n          pmVar20->__count = 0;\n          pmVar20 = (mbstate_t *)((int)(pmVar20 + -(uint)bVar21) + 4);\n        }\n        local_5c = (byte *)(dfa->lex).ptr;\n        local_60 = (byte *)(dfa->lex).left;\n        goto LAB_00023748;\n      }" { (expression_statement "pmVar20 = &dfa->mbs;" (assignment_expression "pmVar20 = &dfa->mbs" identifier = (pointer_expression "&dfa->mbs" & (field_expression "dfa->mbs" identifier -> field_identifier))) ;) (for_statement "for (iVar14 = 2; iVar14 != 0; iVar14 = iVar14 + -1) {\n          pmVar20->__count = 0;\n          pmVar20 = (mbstate_t *)((int)(pmVar20 + -(uint)bVar21) + 4);\n        }" for ( (assignment_expression "iVar14 = 2" identifier = number_literal) ; (binary_expression "iVar14 != 0" identifier != number_literal) ; (assignment_expression "iVar14 = iVar14 + -1" identifier = (binary_expression "iVar14 + -1" identifier + number_literal)) ) (compound_statement "{\n          pmVar20->__count = 0;\n          pmVar20 = (mbstate_t *)((int)(pmVar20 + -(uint)bVar21) + 4);\n        }" { (expression_statement "pmVar20->__count = 0;" (assignment_expression "pmVar20->__count = 0" (field_expression "pmVar20->__count" identifier -> field_identifier) = number_literal) ;) (expression_statement "pmVar20 = (mbstate_t *)((int)(pmVar20 + -(uint)bVar21) + 4);" (assignment_expression "pmVar20 = (mbstate_t *)((int)(pmVar20 + -(uint)bVar21) + 4)" identifier = (cast_expression "(mbstate_t *)((int)(pmVar20 + -(uint)bVar21) + 4)" ( (type_descriptor "mbstate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(pmVar20 + -(uint)bVar21) + 4)" ( (binary_expression "(int)(pmVar20 + -(uint)bVar21) + 4" (cast_expression "(int)(pmVar20 + -(uint)bVar21)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pmVar20 + -(uint)bVar21)" ( (binary_expression "pmVar20 + -(uint)bVar21" identifier + (unary_expression "-(uint)bVar21" - (cast_expression "(uint)bVar21" ( (type_descriptor "uint" type_identifier) ) identifier))) ))) + number_literal) )))) ;) })) (expression_statement "local_5c = (byte *)(dfa->lex).ptr;" (assignment_expression "local_5c = (byte *)(dfa->lex).ptr" identifier = (cast_expression "(byte *)(dfa->lex).ptr" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(dfa->lex).ptr" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "local_60 = (byte *)(dfa->lex).left;" (assignment_expression "local_60 = (byte *)(dfa->lex).left" identifier = (cast_expression "(byte *)(dfa->lex).left" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(dfa->lex).left" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier))) ;) (goto_statement "goto LAB_00023748;" goto statement_identifier ;) })) (expression_statement "local_60 = (byte *)(dfa->lex).left;" (assignment_expression "local_60 = (byte *)(dfa->lex).left" identifier = (cast_expression "(byte *)(dfa->lex).left" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(dfa->lex).left" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "(dfa->lex).cur_mb_len = sVar10;" (assignment_expression "(dfa->lex).cur_mb_len = sVar10" (field_expression "(dfa->lex).cur_mb_len" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(dfa->lex).wctok = wch;" (assignment_expression "(dfa->lex).wctok = wch" (field_expression "(dfa->lex).wctok" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "local_5c = (byte *)(dfa->lex).ptr;" (assignment_expression "local_5c = (byte *)(dfa->lex).ptr" identifier = (cast_expression "(byte *)(dfa->lex).ptr" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(dfa->lex).ptr" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier))) ;) (if_statement "if (sVar10 != 1) goto LAB_00023235;" if (parenthesized_expression "(sVar10 != 1)" ( (binary_expression "sVar10 != 1" identifier != number_literal) )) (goto_statement "goto LAB_00023235;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_00023748:\n      (dfa->lex).cur_mb_len = 1;\n      (dfa->lex).wctok = wVar4;\n    }" else (compound_statement "{\nLAB_00023748:\n      (dfa->lex).cur_mb_len = 1;\n      (dfa->lex).wctok = wVar4;\n    }" { (labeled_statement "LAB_00023748:\n      (dfa->lex).cur_mb_len = 1;" statement_identifier : (expression_statement "(dfa->lex).cur_mb_len = 1;" (assignment_expression "(dfa->lex).cur_mb_len = 1" (field_expression "(dfa->lex).cur_mb_len" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = number_literal) ;)) (expression_statement "(dfa->lex).wctok = wVar4;" (assignment_expression "(dfa->lex).wctok = wVar4" (field_expression "(dfa->lex).wctok" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = identifier) ;) }))) (expression_statement "uVar18 = (uint)*local_5c;" (assignment_expression "uVar18 = (uint)*local_5c" identifier = (binary_expression "(uint)*local_5c" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pbVar1 = local_5c + 1;" (assignment_expression "pbVar1 = local_5c + 1" identifier = (binary_expression "local_5c + 1" identifier + number_literal)) ;) (expression_statement "(dfa->lex).ptr = (char *)pbVar1;" (assignment_expression "(dfa->lex).ptr = (char *)pbVar1" (field_expression "(dfa->lex).ptr" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(char *)pbVar1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar15 = local_60 + -1;" (assignment_expression "pbVar15 = local_60 + -1" identifier = (binary_expression "local_60 + -1" identifier + number_literal)) ;) (expression_statement "(dfa->lex).left = (size_t)pbVar15;" (assignment_expression "(dfa->lex).left = (size_t)pbVar15" (field_expression "(dfa->lex).left" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(size_t)pbVar15" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) (switch_statement "switch(uVar18 - 10 & 0xff) {\n    case 0:\n      goto _L1503;\n    case 0x1a:\n      goto _L1438;\n    case 0x1d:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) goto LAB_00023868;\n      goto _L1449;\n    case 0x1e:\n      bVar21 = 1;\n      goto LAB_00023262;\n    case 0x1f:\n      bVar21 = 1;\n      goto LAB_0002351a;\n    case 0x20:\n      goto _L1469;\n    case 0x21:\n      bVar21 = 1;\n      goto LAB_000234d2;\n    case 0x24:\n      bVar6 = true;\n      goto LAB_0002336a;\n    case 0x27:\n    case 0x28:\n    case 0x29:\n    case 0x2a:\n    case 0x2b:\n    case 0x2c:\n    case 0x2d:\n    case 0x2e:\n    case 0x2f:\n      if (((dfa->syntax).syntax_bits & 0x4000) == 0) {\n        (dfa->lex).laststart = false;\n        uVar18 = 0x112;\n        (dfa->lex).lasttok = 0x112;\n        goto LAB_0002318d;\n      }\n    default:\n_L1538:\n      cVar16 = (dfa->localeinfo).multibyte;\n      break;\n    case 0x32:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) {\n        (dfa->lex).lasttok = 0x10e;\n        uVar18 = 0x10e;\n        goto LAB_0002318d;\n      }\n      goto _L1452;\n    case 0x34:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) {\n        (dfa->lex).lasttok = 0x10f;\n        uVar18 = 0x10f;\n        goto LAB_0002318d;\n      }\n      goto _L1455;\n    case 0x35:\n      bVar21 = 1;\n      goto LAB_000233b2;\n    case 0x38:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) {\n        (dfa->lex).lasttok = 0x111;\n        uVar18 = 0x111;\n        goto LAB_0002318d;\n      }\n      goto _L1461;\n    case 0x49:\n    case 0x69:\n      bVar6 = true;\n      local_60 = pbVar15;\n      local_5c = pbVar1;\n      goto LAB_0002342a;\n    case 0x4d:\n    case 0x6d:\n      cVar16 = (dfa->localeinfo).multibyte;\n      if (((dfa->syntax).syntax_bits & 0x80000) != 0) break;\n      if ((_Bool)cVar16 != false) {\n        pcVar13 = &UNK_0002f474 + (uVar18 == 0x77);\n        local_60 = pbVar15;\n        local_5c = pbVar1;\n        goto LAB_0002345c;\n      }\n      uVar8 = 0;\n      do {\n        *(undefined4 *)((int)ccl.w + uVar8) = 0;\n        uVar8 = uVar8 + 4;\n      } while (uVar8 < 0x20);\n      uVar8 = 0;\n      do {\n        if ((dfa->syntax).sbit[uVar8] == '\x02') {\n          ccl.w[uVar8 >> 5] = ccl.w[uVar8 >> 5] | 1 << ((byte)uVar8 & 0x1f);\n        }\n        uVar8 = uVar8 + 1;\n      } while (uVar8 != 0x100);\n      if (uVar18 == 0x57) goto LAB_00023b34;\n      goto LAB_00023ae7;\n    case 0x51:\n      cVar16 = (dfa->localeinfo).multibyte;\n      uVar18 = 0x5b;\n      break;\n    case 0x52:\n      cVar16 = (dfa->localeinfo).multibyte;\n      uVar18 = 0x5c;\n      break;\n    case 0x54:\n      goto _L1433;\n    case 0x56:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) goto LAB_00023880;\n      goto _L1446;\n    case 0x58:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) {\n        (dfa->lex).lasttok = 0x110;\n        uVar18 = 0x110;\n        goto LAB_0002318d;\n      }\n      goto _L1458;\n    case 0x71:\n      local_51 = 1;\n      pbVar15 = local_60;\n      pbVar17 = local_5c;\n      local_5c = pbVar1;\n      goto LAB_00023295;\n    case 0x72:\n      bVar21 = 1;\n      goto LAB_000233fa;\n    }" switch (parenthesized_expression "(uVar18 - 10 & 0xff)" ( (binary_expression "uVar18 - 10 & 0xff" (binary_expression "uVar18 - 10" identifier - number_literal) & number_literal) )) (compound_statement "{\n    case 0:\n      goto _L1503;\n    case 0x1a:\n      goto _L1438;\n    case 0x1d:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) goto LAB_00023868;\n      goto _L1449;\n    case 0x1e:\n      bVar21 = 1;\n      goto LAB_00023262;\n    case 0x1f:\n      bVar21 = 1;\n      goto LAB_0002351a;\n    case 0x20:\n      goto _L1469;\n    case 0x21:\n      bVar21 = 1;\n      goto LAB_000234d2;\n    case 0x24:\n      bVar6 = true;\n      goto LAB_0002336a;\n    case 0x27:\n    case 0x28:\n    case 0x29:\n    case 0x2a:\n    case 0x2b:\n    case 0x2c:\n    case 0x2d:\n    case 0x2e:\n    case 0x2f:\n      if (((dfa->syntax).syntax_bits & 0x4000) == 0) {\n        (dfa->lex).laststart = false;\n        uVar18 = 0x112;\n        (dfa->lex).lasttok = 0x112;\n        goto LAB_0002318d;\n      }\n    default:\n_L1538:\n      cVar16 = (dfa->localeinfo).multibyte;\n      break;\n    case 0x32:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) {\n        (dfa->lex).lasttok = 0x10e;\n        uVar18 = 0x10e;\n        goto LAB_0002318d;\n      }\n      goto _L1452;\n    case 0x34:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) {\n        (dfa->lex).lasttok = 0x10f;\n        uVar18 = 0x10f;\n        goto LAB_0002318d;\n      }\n      goto _L1455;\n    case 0x35:\n      bVar21 = 1;\n      goto LAB_000233b2;\n    case 0x38:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) {\n        (dfa->lex).lasttok = 0x111;\n        uVar18 = 0x111;\n        goto LAB_0002318d;\n      }\n      goto _L1461;\n    case 0x49:\n    case 0x69:\n      bVar6 = true;\n      local_60 = pbVar15;\n      local_5c = pbVar1;\n      goto LAB_0002342a;\n    case 0x4d:\n    case 0x6d:\n      cVar16 = (dfa->localeinfo).multibyte;\n      if (((dfa->syntax).syntax_bits & 0x80000) != 0) break;\n      if ((_Bool)cVar16 != false) {\n        pcVar13 = &UNK_0002f474 + (uVar18 == 0x77);\n        local_60 = pbVar15;\n        local_5c = pbVar1;\n        goto LAB_0002345c;\n      }\n      uVar8 = 0;\n      do {\n        *(undefined4 *)((int)ccl.w + uVar8) = 0;\n        uVar8 = uVar8 + 4;\n      } while (uVar8 < 0x20);\n      uVar8 = 0;\n      do {\n        if ((dfa->syntax).sbit[uVar8] == '\x02') {\n          ccl.w[uVar8 >> 5] = ccl.w[uVar8 >> 5] | 1 << ((byte)uVar8 & 0x1f);\n        }\n        uVar8 = uVar8 + 1;\n      } while (uVar8 != 0x100);\n      if (uVar18 == 0x57) goto LAB_00023b34;\n      goto LAB_00023ae7;\n    case 0x51:\n      cVar16 = (dfa->localeinfo).multibyte;\n      uVar18 = 0x5b;\n      break;\n    case 0x52:\n      cVar16 = (dfa->localeinfo).multibyte;\n      uVar18 = 0x5c;\n      break;\n    case 0x54:\n      goto _L1433;\n    case 0x56:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) goto LAB_00023880;\n      goto _L1446;\n    case 0x58:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) {\n        (dfa->lex).lasttok = 0x110;\n        uVar18 = 0x110;\n        goto LAB_0002318d;\n      }\n      goto _L1458;\n    case 0x71:\n      local_51 = 1;\n      pbVar15 = local_60;\n      pbVar17 = local_5c;\n      local_5c = pbVar1;\n      goto LAB_00023295;\n    case 0x72:\n      bVar21 = 1;\n      goto LAB_000233fa;\n    }" { (case_statement "case 0:\n      goto _L1503;" case number_literal : (goto_statement "goto _L1503;" goto statement_identifier ;)) (case_statement "case 0x1a:\n      goto _L1438;" case number_literal : (goto_statement "goto _L1438;" goto statement_identifier ;)) (case_statement "case 0x1d:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) goto LAB_00023868;\n      goto _L1449;" case number_literal : (if_statement "if (((dfa->syntax).syntax_bits & 0x80000) == 0) goto LAB_00023868;" if (parenthesized_expression "(((dfa->syntax).syntax_bits & 0x80000) == 0)" ( (binary_expression "((dfa->syntax).syntax_bits & 0x80000) == 0" (parenthesized_expression "((dfa->syntax).syntax_bits & 0x80000)" ( (binary_expression "(dfa->syntax).syntax_bits & 0x80000" (field_expression "(dfa->syntax).syntax_bits" (parenthesized_expression "(dfa->syntax)" ( (field_expression "dfa->syntax" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00023868;" goto statement_identifier ;)) (goto_statement "goto _L1449;" goto statement_identifier ;)) (case_statement "case 0x1e:\n      bVar21 = 1;\n      goto LAB_00023262;" case number_literal : (expression_statement "bVar21 = 1;" (assignment_expression "bVar21 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00023262;" goto statement_identifier ;)) (case_statement "case 0x1f:\n      bVar21 = 1;\n      goto LAB_0002351a;" case number_literal : (expression_statement "bVar21 = 1;" (assignment_expression "bVar21 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0002351a;" goto statement_identifier ;)) (case_statement "case 0x20:\n      goto _L1469;" case number_literal : (goto_statement "goto _L1469;" goto statement_identifier ;)) (case_statement "case 0x21:\n      bVar21 = 1;\n      goto LAB_000234d2;" case number_literal : (expression_statement "bVar21 = 1;" (assignment_expression "bVar21 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_000234d2;" goto statement_identifier ;)) (case_statement "case 0x24:\n      bVar6 = true;\n      goto LAB_0002336a;" case number_literal : (expression_statement "bVar6 = true;" (assignment_expression "bVar6 = true" identifier = true) ;) (goto_statement "goto LAB_0002336a;" goto statement_identifier ;)) (case_statement "case 0x27:" case number_literal :) (case_statement "case 0x28:" case number_literal :) (case_statement "case 0x29:" case number_literal :) (case_statement "case 0x2a:" case number_literal :) (case_statement "case 0x2b:" case number_literal :) (case_statement "case 0x2c:" case number_literal :) (case_statement "case 0x2d:" case number_literal :) (case_statement "case 0x2e:" case number_literal :) (case_statement "case 0x2f:\n      if (((dfa->syntax).syntax_bits & 0x4000) == 0) {\n        (dfa->lex).laststart = false;\n        uVar18 = 0x112;\n        (dfa->lex).lasttok = 0x112;\n        goto LAB_0002318d;\n      }" case number_literal : (if_statement "if (((dfa->syntax).syntax_bits & 0x4000) == 0) {\n        (dfa->lex).laststart = false;\n        uVar18 = 0x112;\n        (dfa->lex).lasttok = 0x112;\n        goto LAB_0002318d;\n      }" if (parenthesized_expression "(((dfa->syntax).syntax_bits & 0x4000) == 0)" ( (binary_expression "((dfa->syntax).syntax_bits & 0x4000) == 0" (parenthesized_expression "((dfa->syntax).syntax_bits & 0x4000)" ( (binary_expression "(dfa->syntax).syntax_bits & 0x4000" (field_expression "(dfa->syntax).syntax_bits" (parenthesized_expression "(dfa->syntax)" ( (field_expression "dfa->syntax" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        (dfa->lex).laststart = false;\n        uVar18 = 0x112;\n        (dfa->lex).lasttok = 0x112;\n        goto LAB_0002318d;\n      }" { (expression_statement "(dfa->lex).laststart = false;" (assignment_expression "(dfa->lex).laststart = false" (field_expression "(dfa->lex).laststart" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = false) ;) (expression_statement "uVar18 = 0x112;" (assignment_expression "uVar18 = 0x112" identifier = number_literal) ;) (expression_statement "(dfa->lex).lasttok = 0x112;" (assignment_expression "(dfa->lex).lasttok = 0x112" (field_expression "(dfa->lex).lasttok" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) }))) (case_statement "default:\n_L1538:\n      cVar16 = (dfa->localeinfo).multibyte;\n      break;" default : (labeled_statement "_L1538:\n      cVar16 = (dfa->localeinfo).multibyte;" statement_identifier : (expression_statement "cVar16 = (dfa->localeinfo).multibyte;" (assignment_expression "cVar16 = (dfa->localeinfo).multibyte" identifier = (field_expression "(dfa->localeinfo).multibyte" (parenthesized_expression "(dfa->localeinfo)" ( (field_expression "dfa->localeinfo" identifier -> field_identifier) )) . field_identifier)) ;)) (break_statement "break;" break ;)) (case_statement "case 0x32:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) {\n        (dfa->lex).lasttok = 0x10e;\n        uVar18 = 0x10e;\n        goto LAB_0002318d;\n      }\n      goto _L1452;" case number_literal : (if_statement "if (((dfa->syntax).syntax_bits & 0x80000) == 0) {\n        (dfa->lex).lasttok = 0x10e;\n        uVar18 = 0x10e;\n        goto LAB_0002318d;\n      }" if (parenthesized_expression "(((dfa->syntax).syntax_bits & 0x80000) == 0)" ( (binary_expression "((dfa->syntax).syntax_bits & 0x80000) == 0" (parenthesized_expression "((dfa->syntax).syntax_bits & 0x80000)" ( (binary_expression "(dfa->syntax).syntax_bits & 0x80000" (field_expression "(dfa->syntax).syntax_bits" (parenthesized_expression "(dfa->syntax)" ( (field_expression "dfa->syntax" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        (dfa->lex).lasttok = 0x10e;\n        uVar18 = 0x10e;\n        goto LAB_0002318d;\n      }" { (expression_statement "(dfa->lex).lasttok = 0x10e;" (assignment_expression "(dfa->lex).lasttok = 0x10e" (field_expression "(dfa->lex).lasttok" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "uVar18 = 0x10e;" (assignment_expression "uVar18 = 0x10e" identifier = number_literal) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) })) (goto_statement "goto _L1452;" goto statement_identifier ;)) (case_statement "case 0x34:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) {\n        (dfa->lex).lasttok = 0x10f;\n        uVar18 = 0x10f;\n        goto LAB_0002318d;\n      }\n      goto _L1455;" case number_literal : (if_statement "if (((dfa->syntax).syntax_bits & 0x80000) == 0) {\n        (dfa->lex).lasttok = 0x10f;\n        uVar18 = 0x10f;\n        goto LAB_0002318d;\n      }" if (parenthesized_expression "(((dfa->syntax).syntax_bits & 0x80000) == 0)" ( (binary_expression "((dfa->syntax).syntax_bits & 0x80000) == 0" (parenthesized_expression "((dfa->syntax).syntax_bits & 0x80000)" ( (binary_expression "(dfa->syntax).syntax_bits & 0x80000" (field_expression "(dfa->syntax).syntax_bits" (parenthesized_expression "(dfa->syntax)" ( (field_expression "dfa->syntax" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        (dfa->lex).lasttok = 0x10f;\n        uVar18 = 0x10f;\n        goto LAB_0002318d;\n      }" { (expression_statement "(dfa->lex).lasttok = 0x10f;" (assignment_expression "(dfa->lex).lasttok = 0x10f" (field_expression "(dfa->lex).lasttok" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "uVar18 = 0x10f;" (assignment_expression "uVar18 = 0x10f" identifier = number_literal) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) })) (goto_statement "goto _L1455;" goto statement_identifier ;)) (case_statement "case 0x35:\n      bVar21 = 1;\n      goto LAB_000233b2;" case number_literal : (expression_statement "bVar21 = 1;" (assignment_expression "bVar21 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_000233b2;" goto statement_identifier ;)) (case_statement "case 0x38:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) {\n        (dfa->lex).lasttok = 0x111;\n        uVar18 = 0x111;\n        goto LAB_0002318d;\n      }\n      goto _L1461;" case number_literal : (if_statement "if (((dfa->syntax).syntax_bits & 0x80000) == 0) {\n        (dfa->lex).lasttok = 0x111;\n        uVar18 = 0x111;\n        goto LAB_0002318d;\n      }" if (parenthesized_expression "(((dfa->syntax).syntax_bits & 0x80000) == 0)" ( (binary_expression "((dfa->syntax).syntax_bits & 0x80000) == 0" (parenthesized_expression "((dfa->syntax).syntax_bits & 0x80000)" ( (binary_expression "(dfa->syntax).syntax_bits & 0x80000" (field_expression "(dfa->syntax).syntax_bits" (parenthesized_expression "(dfa->syntax)" ( (field_expression "dfa->syntax" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        (dfa->lex).lasttok = 0x111;\n        uVar18 = 0x111;\n        goto LAB_0002318d;\n      }" { (expression_statement "(dfa->lex).lasttok = 0x111;" (assignment_expression "(dfa->lex).lasttok = 0x111" (field_expression "(dfa->lex).lasttok" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "uVar18 = 0x111;" (assignment_expression "uVar18 = 0x111" identifier = number_literal) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) })) (goto_statement "goto _L1461;" goto statement_identifier ;)) (case_statement "case 0x49:" case number_literal :) (case_statement "case 0x69:\n      bVar6 = true;\n      local_60 = pbVar15;\n      local_5c = pbVar1;\n      goto LAB_0002342a;" case number_literal : (expression_statement "bVar6 = true;" (assignment_expression "bVar6 = true" identifier = true) ;) (expression_statement "local_60 = pbVar15;" (assignment_expression "local_60 = pbVar15" identifier = identifier) ;) (expression_statement "local_5c = pbVar1;" (assignment_expression "local_5c = pbVar1" identifier = identifier) ;) (goto_statement "goto LAB_0002342a;" goto statement_identifier ;)) (case_statement "case 0x4d:" case number_literal :) (case_statement "case 0x6d:\n      cVar16 = (dfa->localeinfo).multibyte;\n      if (((dfa->syntax).syntax_bits & 0x80000) != 0) break;\n      if ((_Bool)cVar16 != false) {\n        pcVar13 = &UNK_0002f474 + (uVar18 == 0x77);\n        local_60 = pbVar15;\n        local_5c = pbVar1;\n        goto LAB_0002345c;\n      }\n      uVar8 = 0;\n      do {\n        *(undefined4 *)((int)ccl.w + uVar8) = 0;\n        uVar8 = uVar8 + 4;\n      } while (uVar8 < 0x20);\n      uVar8 = 0;\n      do {\n        if ((dfa->syntax).sbit[uVar8] == '\x02') {\n          ccl.w[uVar8 >> 5] = ccl.w[uVar8 >> 5] | 1 << ((byte)uVar8 & 0x1f);\n        }\n        uVar8 = uVar8 + 1;\n      } while (uVar8 != 0x100);\n      if (uVar18 == 0x57) goto LAB_00023b34;\n      goto LAB_00023ae7;" case number_literal : (expression_statement "cVar16 = (dfa->localeinfo).multibyte;" (assignment_expression "cVar16 = (dfa->localeinfo).multibyte" identifier = (field_expression "(dfa->localeinfo).multibyte" (parenthesized_expression "(dfa->localeinfo)" ( (field_expression "dfa->localeinfo" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (((dfa->syntax).syntax_bits & 0x80000) != 0) break;" if (parenthesized_expression "(((dfa->syntax).syntax_bits & 0x80000) != 0)" ( (binary_expression "((dfa->syntax).syntax_bits & 0x80000) != 0" (parenthesized_expression "((dfa->syntax).syntax_bits & 0x80000)" ( (binary_expression "(dfa->syntax).syntax_bits & 0x80000" (field_expression "(dfa->syntax).syntax_bits" (parenthesized_expression "(dfa->syntax)" ( (field_expression "dfa->syntax" identifier -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) )) (break_statement "break;" break ;)) (if_statement "if ((_Bool)cVar16 != false) {\n        pcVar13 = &UNK_0002f474 + (uVar18 == 0x77);\n        local_60 = pbVar15;\n        local_5c = pbVar1;\n        goto LAB_0002345c;\n      }" if (parenthesized_expression "((_Bool)cVar16 != false)" ( (binary_expression "(_Bool)cVar16 != false" (cast_expression "(_Bool)cVar16" ( (type_descriptor "_Bool" type_identifier) ) identifier) != false) )) (compound_statement "{\n        pcVar13 = &UNK_0002f474 + (uVar18 == 0x77);\n        local_60 = pbVar15;\n        local_5c = pbVar1;\n        goto LAB_0002345c;\n      }" { (expression_statement "pcVar13 = &UNK_0002f474 + (uVar18 == 0x77);" (assignment_expression "pcVar13 = &UNK_0002f474 + (uVar18 == 0x77)" identifier = (binary_expression "&UNK_0002f474 + (uVar18 == 0x77)" (pointer_expression "&UNK_0002f474" & identifier) + (parenthesized_expression "(uVar18 == 0x77)" ( (binary_expression "uVar18 == 0x77" identifier == number_literal) )))) ;) (expression_statement "local_60 = pbVar15;" (assignment_expression "local_60 = pbVar15" identifier = identifier) ;) (expression_statement "local_5c = pbVar1;" (assignment_expression "local_5c = pbVar1" identifier = identifier) ;) (goto_statement "goto LAB_0002345c;" goto statement_identifier ;) })) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (do_statement "do {\n        *(undefined4 *)((int)ccl.w + uVar8) = 0;\n        uVar8 = uVar8 + 4;\n      } while (uVar8 < 0x20);" do (compound_statement "{\n        *(undefined4 *)((int)ccl.w + uVar8) = 0;\n        uVar8 = uVar8 + 4;\n      }" { (expression_statement "*(undefined4 *)((int)ccl.w + uVar8) = 0;" (assignment_expression "*(undefined4 *)((int)ccl.w + uVar8) = 0" (pointer_expression "*(undefined4 *)((int)ccl.w + uVar8)" * (cast_expression "(undefined4 *)((int)ccl.w + uVar8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ccl.w + uVar8)" ( (binary_expression "(int)ccl.w + uVar8" (cast_expression "(int)ccl.w" ( (type_descriptor "int" primitive_type) ) (field_expression "ccl.w" identifier . field_identifier)) + identifier) )))) = number_literal) ;) (expression_statement "uVar8 = uVar8 + 4;" (assignment_expression "uVar8 = uVar8 + 4" identifier = (binary_expression "uVar8 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar8 < 0x20)" ( (binary_expression "uVar8 < 0x20" identifier < number_literal) )) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (do_statement "do {\n        if ((dfa->syntax).sbit[uVar8] == '\x02') {\n          ccl.w[uVar8 >> 5] = ccl.w[uVar8 >> 5] | 1 << ((byte)uVar8 & 0x1f);\n        }\n        uVar8 = uVar8 + 1;\n      } while (uVar8 != 0x100);" do (compound_statement "{\n        if ((dfa->syntax).sbit[uVar8] == '\x02') {\n          ccl.w[uVar8 >> 5] = ccl.w[uVar8 >> 5] | 1 << ((byte)uVar8 & 0x1f);\n        }\n        uVar8 = uVar8 + 1;\n      }" { (if_statement "if ((dfa->syntax).sbit[uVar8] == '\x02') {\n          ccl.w[uVar8 >> 5] = ccl.w[uVar8 >> 5] | 1 << ((byte)uVar8 & 0x1f);\n        }" if (parenthesized_expression "((dfa->syntax).sbit[uVar8] == '\x02')" ( (binary_expression "(dfa->syntax).sbit[uVar8] == '\x02'" (subscript_expression "(dfa->syntax).sbit[uVar8]" (field_expression "(dfa->syntax).sbit" (parenthesized_expression "(dfa->syntax)" ( (field_expression "dfa->syntax" identifier -> field_identifier) )) . field_identifier) [ identifier ]) == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n          ccl.w[uVar8 >> 5] = ccl.w[uVar8 >> 5] | 1 << ((byte)uVar8 & 0x1f);\n        }" { (expression_statement "ccl.w[uVar8 >> 5] = ccl.w[uVar8 >> 5] | 1 << ((byte)uVar8 & 0x1f);" (assignment_expression "ccl.w[uVar8 >> 5] = ccl.w[uVar8 >> 5] | 1 << ((byte)uVar8 & 0x1f)" (subscript_expression "ccl.w[uVar8 >> 5]" (field_expression "ccl.w" identifier . field_identifier) [ (binary_expression "uVar8 >> 5" identifier >> number_literal) ]) = (binary_expression "ccl.w[uVar8 >> 5] | 1 << ((byte)uVar8 & 0x1f)" (subscript_expression "ccl.w[uVar8 >> 5]" (field_expression "ccl.w" identifier . field_identifier) [ (binary_expression "uVar8 >> 5" identifier >> number_literal) ]) | (binary_expression "1 << ((byte)uVar8 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar8 & 0x1f)" ( (binary_expression "(byte)uVar8 & 0x1f" (cast_expression "(byte)uVar8" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))))) ;) })) (expression_statement "uVar8 = uVar8 + 1;" (assignment_expression "uVar8 = uVar8 + 1" identifier = (binary_expression "uVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar8 != 0x100)" ( (binary_expression "uVar8 != 0x100" identifier != number_literal) )) ;) (if_statement "if (uVar18 == 0x57) goto LAB_00023b34;" if (parenthesized_expression "(uVar18 == 0x57)" ( (binary_expression "uVar18 == 0x57" identifier == number_literal) )) (goto_statement "goto LAB_00023b34;" goto statement_identifier ;)) (goto_statement "goto LAB_00023ae7;" goto statement_identifier ;)) (case_statement "case 0x51:\n      cVar16 = (dfa->localeinfo).multibyte;\n      uVar18 = 0x5b;\n      break;" case number_literal : (expression_statement "cVar16 = (dfa->localeinfo).multibyte;" (assignment_expression "cVar16 = (dfa->localeinfo).multibyte" identifier = (field_expression "(dfa->localeinfo).multibyte" (parenthesized_expression "(dfa->localeinfo)" ( (field_expression "dfa->localeinfo" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar18 = 0x5b;" (assignment_expression "uVar18 = 0x5b" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x52:\n      cVar16 = (dfa->localeinfo).multibyte;\n      uVar18 = 0x5c;\n      break;" case number_literal : (expression_statement "cVar16 = (dfa->localeinfo).multibyte;" (assignment_expression "cVar16 = (dfa->localeinfo).multibyte" identifier = (field_expression "(dfa->localeinfo).multibyte" (parenthesized_expression "(dfa->localeinfo)" ( (field_expression "dfa->localeinfo" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar18 = 0x5c;" (assignment_expression "uVar18 = 0x5c" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x54:\n      goto _L1433;" case number_literal : (goto_statement "goto _L1433;" goto statement_identifier ;)) (case_statement "case 0x56:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) goto LAB_00023880;\n      goto _L1446;" case number_literal : (if_statement "if (((dfa->syntax).syntax_bits & 0x80000) == 0) goto LAB_00023880;" if (parenthesized_expression "(((dfa->syntax).syntax_bits & 0x80000) == 0)" ( (binary_expression "((dfa->syntax).syntax_bits & 0x80000) == 0" (parenthesized_expression "((dfa->syntax).syntax_bits & 0x80000)" ( (binary_expression "(dfa->syntax).syntax_bits & 0x80000" (field_expression "(dfa->syntax).syntax_bits" (parenthesized_expression "(dfa->syntax)" ( (field_expression "dfa->syntax" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00023880;" goto statement_identifier ;)) (goto_statement "goto _L1446;" goto statement_identifier ;)) (case_statement "case 0x58:\n      if (((dfa->syntax).syntax_bits & 0x80000) == 0) {\n        (dfa->lex).lasttok = 0x110;\n        uVar18 = 0x110;\n        goto LAB_0002318d;\n      }\n      goto _L1458;" case number_literal : (if_statement "if (((dfa->syntax).syntax_bits & 0x80000) == 0) {\n        (dfa->lex).lasttok = 0x110;\n        uVar18 = 0x110;\n        goto LAB_0002318d;\n      }" if (parenthesized_expression "(((dfa->syntax).syntax_bits & 0x80000) == 0)" ( (binary_expression "((dfa->syntax).syntax_bits & 0x80000) == 0" (parenthesized_expression "((dfa->syntax).syntax_bits & 0x80000)" ( (binary_expression "(dfa->syntax).syntax_bits & 0x80000" (field_expression "(dfa->syntax).syntax_bits" (parenthesized_expression "(dfa->syntax)" ( (field_expression "dfa->syntax" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        (dfa->lex).lasttok = 0x110;\n        uVar18 = 0x110;\n        goto LAB_0002318d;\n      }" { (expression_statement "(dfa->lex).lasttok = 0x110;" (assignment_expression "(dfa->lex).lasttok = 0x110" (field_expression "(dfa->lex).lasttok" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "uVar18 = 0x110;" (assignment_expression "uVar18 = 0x110" identifier = number_literal) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) })) (goto_statement "goto _L1458;" goto statement_identifier ;)) (case_statement "case 0x71:\n      local_51 = 1;\n      pbVar15 = local_60;\n      pbVar17 = local_5c;\n      local_5c = pbVar1;\n      goto LAB_00023295;" case number_literal : (expression_statement "local_51 = 1;" (assignment_expression "local_51 = 1" identifier = number_literal) ;) (expression_statement "pbVar15 = local_60;" (assignment_expression "pbVar15 = local_60" identifier = identifier) ;) (expression_statement "pbVar17 = local_5c;" (assignment_expression "pbVar17 = local_5c" identifier = identifier) ;) (expression_statement "local_5c = pbVar1;" (assignment_expression "local_5c = pbVar1" identifier = identifier) ;) (goto_statement "goto LAB_00023295;" goto statement_identifier ;)) (case_statement "case 0x72:\n      bVar21 = 1;\n      goto LAB_000233fa;" case number_literal : (expression_statement "bVar21 = 1;" (assignment_expression "bVar21 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_000233fa;" goto statement_identifier ;)) })) (break_statement "break;" break ;)) (case_statement "case 0x54:\n    if (((((dfa->syntax).syntax_bits & 8) != 0) ||\n        (iVar14 = (dfa->lex).lasttok, iVar14 - 0x106U < 2)) || (iVar14 == -1)) {\nLAB_00023880:\n      (dfa->lex).lasttok = 0x10c;\n      uVar18 = 0x10c;\n      goto LAB_0002318d;\n    }\n_L1433:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x5e;\n    break;" case number_literal : (if_statement "if (((((dfa->syntax).syntax_bits & 8) != 0) ||\n        (iVar14 = (dfa->lex).lasttok, iVar14 - 0x106U < 2)) || (iVar14 == -1)) {\nLAB_00023880:\n      (dfa->lex).lasttok = 0x10c;\n      uVar18 = 0x10c;\n      goto LAB_0002318d;\n    }" if (parenthesized_expression "(((((dfa->syntax).syntax_bits & 8) != 0) ||\n        (iVar14 = (dfa->lex).lasttok, iVar14 - 0x106U < 2)) || (iVar14 == -1))" ( (binary_expression "((((dfa->syntax).syntax_bits & 8) != 0) ||\n        (iVar14 = (dfa->lex).lasttok, iVar14 - 0x106U < 2)) || (iVar14 == -1)" (parenthesized_expression "((((dfa->syntax).syntax_bits & 8) != 0) ||\n        (iVar14 = (dfa->lex).lasttok, iVar14 - 0x106U < 2))" ( (binary_expression "(((dfa->syntax).syntax_bits & 8) != 0) ||\n        (iVar14 = (dfa->lex).lasttok, iVar14 - 0x106U < 2)" (parenthesized_expression "(((dfa->syntax).syntax_bits & 8) != 0)" ( (binary_expression "((dfa->syntax).syntax_bits & 8) != 0" (parenthesized_expression "((dfa->syntax).syntax_bits & 8)" ( (binary_expression "(dfa->syntax).syntax_bits & 8" (field_expression "(dfa->syntax).syntax_bits" (parenthesized_expression "(dfa->syntax)" ( (field_expression "dfa->syntax" identifier -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) )) || (parenthesized_expression "(iVar14 = (dfa->lex).lasttok, iVar14 - 0x106U < 2)" ( (comma_expression "iVar14 = (dfa->lex).lasttok, iVar14 - 0x106U < 2" (assignment_expression "iVar14 = (dfa->lex).lasttok" identifier = (field_expression "(dfa->lex).lasttok" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier)) , (binary_expression "iVar14 - 0x106U < 2" (binary_expression "iVar14 - 0x106U" identifier - number_literal) < number_literal)) ))) )) || (parenthesized_expression "(iVar14 == -1)" ( (binary_expression "iVar14 == -1" identifier == number_literal) ))) )) (compound_statement "{\nLAB_00023880:\n      (dfa->lex).lasttok = 0x10c;\n      uVar18 = 0x10c;\n      goto LAB_0002318d;\n    }" { (labeled_statement "LAB_00023880:\n      (dfa->lex).lasttok = 0x10c;" statement_identifier : (expression_statement "(dfa->lex).lasttok = 0x10c;" (assignment_expression "(dfa->lex).lasttok = 0x10c" (field_expression "(dfa->lex).lasttok" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = number_literal) ;)) (expression_statement "uVar18 = 0x10c;" (assignment_expression "uVar18 = 0x10c" identifier = number_literal) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) })) (labeled_statement "_L1433:\n    cVar16 = (dfa->localeinfo).multibyte;" statement_identifier : (expression_statement "cVar16 = (dfa->localeinfo).multibyte;" (assignment_expression "cVar16 = (dfa->localeinfo).multibyte" identifier = (field_expression "(dfa->localeinfo).multibyte" (parenthesized_expression "(dfa->localeinfo)" ( (field_expression "dfa->localeinfo" identifier -> field_identifier) )) . field_identifier)) ;)) (expression_statement "uVar18 = 0x5e;" (assignment_expression "uVar18 = 0x5e" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x56:\n_L1446:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x60;\n    break;" case number_literal : (labeled_statement "_L1446:\n    cVar16 = (dfa->localeinfo).multibyte;" statement_identifier : (expression_statement "cVar16 = (dfa->localeinfo).multibyte;" (assignment_expression "cVar16 = (dfa->localeinfo).multibyte" identifier = (field_expression "(dfa->localeinfo).multibyte" (parenthesized_expression "(dfa->localeinfo)" ( (field_expression "dfa->localeinfo" identifier -> field_identifier) )) . field_identifier)) ;)) (expression_statement "uVar18 = 0x60;" (assignment_expression "uVar18 = 0x60" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x58:\n_L1458:\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x62;\n    break;" case number_literal : (labeled_statement "_L1458:\n    cVar16 = (dfa->localeinfo).multibyte;" statement_identifier : (expression_statement "cVar16 = (dfa->localeinfo).multibyte;" (assignment_expression "cVar16 = (dfa->localeinfo).multibyte" identifier = (field_expression "(dfa->localeinfo).multibyte" (parenthesized_expression "(dfa->localeinfo)" ( (field_expression "dfa->localeinfo" identifier -> field_identifier) )) . field_identifier)) ;)) (expression_statement "uVar18 = 0x62;" (assignment_expression "uVar18 = 0x62" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x71:\n    local_51 = 0;\n    pbVar15 = local_60;\n    pbVar17 = local_5c;\n    local_5c = pbVar1;\nLAB_00023295:\n    uVar18 = (dfa->syntax).syntax_bits;\n    if ((((uVar18 & 0x200) != 0) && ((((byte)(uVar18 >> 0xc) ^ 1) & 1) == local_51)) &&\n       (((uVar18 & 0x10) != 0 || ((dfa->lex).laststart == false)))) {\n      pbVar1 = pbVar17 + (int)pbVar15;\n      (dfa->lex).maxrep = -1;\n      (dfa->lex).minrep = -1;\n      pbVar7 = local_5c;\n      if (pbVar1 == local_5c) {\nLAB_00023b5a:\n        local_5c = pbVar7;\n        if (local_51 == 0) {\nLAB_00023a30:\n          if (pbVar1 != local_5c) goto LAB_00023a3a;\n        }\n      }\n      else {\n        bVar21 = pbVar17[1];\n        pbVar15 = (byte *)(int)(char)bVar21;\n        if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar17 = (byte *)0xffffffff;\n          local_60 = pbVar15;\n          do {\n            if ((-1 < (int)pbVar17) &&\n               (local_60 = local_60 + (int)pbVar17 * 10, 0x8030 < (int)local_60)) {\n              local_60 = (byte *)0x8030;\n            }\n            pbVar17 = local_60 + -0x30;\n            (dfa->lex).minrep = (int)pbVar17;\n            local_5c = local_5c + 1;\n            pbVar7 = local_5c;\n            if (pbVar1 == local_5c) goto LAB_00023b5a;\n            local_60 = (byte *)(int)(char)*local_5c;\n            pbVar15 = local_60 + -0x30;\n          } while ((byte)pbVar15 < 10);\n          if (*local_5c == 0x2c) {\n            if ((int)pbVar17 < 0) goto LAB_00023bed;\nLAB_00023b6e:\n            pbVar15 = local_5c + 1;\n            pbVar7 = pbVar1;\n            if (pbVar1 == pbVar15) goto LAB_00023b5a;\n            bVar21 = local_5c[1];\n            local_5c = pbVar15;\n            if ((byte)(bVar21 - 0x30) < 10) {\n              iVar14 = -1;\n              do {\n                iVar19 = (int)(char)bVar21;\n                if ((-1 < iVar14) && (iVar19 = iVar19 + iVar14 * 10, 0x8030 < iVar19)) {\n                  iVar19 = 0x8030;\n                }\n                iVar14 = iVar19 + -0x30;\n                (dfa->lex).maxrep = iVar14;\n                pbVar15 = pbVar15 + 1;\n                if (pbVar1 == pbVar15) goto LAB_00023b5a;\n                bVar21 = *pbVar15;\n                local_5c = pbVar15;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            goto LAB_00023bd8;\n          }\n          (dfa->lex).maxrep = (int)pbVar17;\n          if (local_51 == 0) goto LAB_00023a30;\nLAB_000239fb:\n          if (*local_5c == 0x5c) {\n            local_5c = local_5c + 1;\n            goto LAB_00023a30;\n          }\n        }\n        else {\n          if (bVar21 == 0x2c) {\nLAB_00023bed:\n            (dfa->lex).minrep = 0;\n            goto LAB_00023b6e;\n          }\nLAB_00023bd8:\n          if (local_51 != 0) goto LAB_000239fb;\nLAB_00023a3a:\n          if ((*local_5c == 0x7d) && (pbVar17 = (byte *)(dfa->lex).minrep, -1 < (int)pbVar17)) {\n            iVar14 = (dfa->lex).maxrep;\n            if (-1 < iVar14) {\n              if (iVar14 < (int)pbVar17) goto LAB_00023a04;\n              if (0x7fff < iVar14) {\n                pcVar13 = "regular expression too big";\n                goto LAB_00023a1b;\n              }\n            }\n            (dfa->lex).laststart = false;\n            uVar18 = 0x104;\n            (dfa->lex).lasttok = 0x104;\n            (dfa->lex).ptr = (char *)(local_5c + 1);\n            (dfa->lex).left = (int)pbVar1 - (int)(local_5c + 1);\n            goto LAB_0002318d;\n          }\n        }\n      }\nLAB_00023a04:\n      if ((uVar18 & 0x200000) == 0) {\n        pcVar13 = "invalid content of \\{\\}";\n        pbVar17 = pbVar15;\nLAB_00023a1b:\n        pcVar13 = (char *)dcgettext(0,pcVar13,5,pbVar17);\n                    /* WARNING: Subroutine does not return */\n        dfaerror(pcVar13);\n      }\n    }\n    cVar16 = (dfa->localeinfo).multibyte;\n    uVar18 = 0x7b;\n    break;" case number_literal : (expression_statement "local_51 = 0;" (assignment_expression "local_51 = 0" identifier = number_literal) ;) (expression_statement "pbVar15 = local_60;" (assignment_expression "pbVar15 = local_60" identifier = identifier) ;) (expression_statement "pbVar17 = local_5c;" (assignment_expression "pbVar17 = local_5c" identifier = identifier) ;) (expression_statement "local_5c = pbVar1;" (assignment_expression "local_5c = pbVar1" identifier = identifier) ;) (labeled_statement "LAB_00023295:\n    uVar18 = (dfa->syntax).syntax_bits;" statement_identifier : (expression_statement "uVar18 = (dfa->syntax).syntax_bits;" (assignment_expression "uVar18 = (dfa->syntax).syntax_bits" identifier = (field_expression "(dfa->syntax).syntax_bits" (parenthesized_expression "(dfa->syntax)" ( (field_expression "dfa->syntax" identifier -> field_identifier) )) . field_identifier)) ;)) (if_statement "if ((((uVar18 & 0x200) != 0) && ((((byte)(uVar18 >> 0xc) ^ 1) & 1) == local_51)) &&\n       (((uVar18 & 0x10) != 0 || ((dfa->lex).laststart == false)))) {\n      pbVar1 = pbVar17 + (int)pbVar15;\n      (dfa->lex).maxrep = -1;\n      (dfa->lex).minrep = -1;\n      pbVar7 = local_5c;\n      if (pbVar1 == local_5c) {\nLAB_00023b5a:\n        local_5c = pbVar7;\n        if (local_51 == 0) {\nLAB_00023a30:\n          if (pbVar1 != local_5c) goto LAB_00023a3a;\n        }\n      }\n      else {\n        bVar21 = pbVar17[1];\n        pbVar15 = (byte *)(int)(char)bVar21;\n        if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar17 = (byte *)0xffffffff;\n          local_60 = pbVar15;\n          do {\n            if ((-1 < (int)pbVar17) &&\n               (local_60 = local_60 + (int)pbVar17 * 10, 0x8030 < (int)local_60)) {\n              local_60 = (byte *)0x8030;\n            }\n            pbVar17 = local_60 + -0x30;\n            (dfa->lex).minrep = (int)pbVar17;\n            local_5c = local_5c + 1;\n            pbVar7 = local_5c;\n            if (pbVar1 == local_5c) goto LAB_00023b5a;\n            local_60 = (byte *)(int)(char)*local_5c;\n            pbVar15 = local_60 + -0x30;\n          } while ((byte)pbVar15 < 10);\n          if (*local_5c == 0x2c) {\n            if ((int)pbVar17 < 0) goto LAB_00023bed;\nLAB_00023b6e:\n            pbVar15 = local_5c + 1;\n            pbVar7 = pbVar1;\n            if (pbVar1 == pbVar15) goto LAB_00023b5a;\n            bVar21 = local_5c[1];\n            local_5c = pbVar15;\n            if ((byte)(bVar21 - 0x30) < 10) {\n              iVar14 = -1;\n              do {\n                iVar19 = (int)(char)bVar21;\n                if ((-1 < iVar14) && (iVar19 = iVar19 + iVar14 * 10, 0x8030 < iVar19)) {\n                  iVar19 = 0x8030;\n                }\n                iVar14 = iVar19 + -0x30;\n                (dfa->lex).maxrep = iVar14;\n                pbVar15 = pbVar15 + 1;\n                if (pbVar1 == pbVar15) goto LAB_00023b5a;\n                bVar21 = *pbVar15;\n                local_5c = pbVar15;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            goto LAB_00023bd8;\n          }\n          (dfa->lex).maxrep = (int)pbVar17;\n          if (local_51 == 0) goto LAB_00023a30;\nLAB_000239fb:\n          if (*local_5c == 0x5c) {\n            local_5c = local_5c + 1;\n            goto LAB_00023a30;\n          }\n        }\n        else {\n          if (bVar21 == 0x2c) {\nLAB_00023bed:\n            (dfa->lex).minrep = 0;\n            goto LAB_00023b6e;\n          }\nLAB_00023bd8:\n          if (local_51 != 0) goto LAB_000239fb;\nLAB_00023a3a:\n          if ((*local_5c == 0x7d) && (pbVar17 = (byte *)(dfa->lex).minrep, -1 < (int)pbVar17)) {\n            iVar14 = (dfa->lex).maxrep;\n            if (-1 < iVar14) {\n              if (iVar14 < (int)pbVar17) goto LAB_00023a04;\n              if (0x7fff < iVar14) {\n                pcVar13 = "regular expression too big";\n                goto LAB_00023a1b;\n              }\n            }\n            (dfa->lex).laststart = false;\n            uVar18 = 0x104;\n            (dfa->lex).lasttok = 0x104;\n            (dfa->lex).ptr = (char *)(local_5c + 1);\n            (dfa->lex).left = (int)pbVar1 - (int)(local_5c + 1);\n            goto LAB_0002318d;\n          }\n        }\n      }\nLAB_00023a04:\n      if ((uVar18 & 0x200000) == 0) {\n        pcVar13 = "invalid content of \\{\\}";\n        pbVar17 = pbVar15;\nLAB_00023a1b:\n        pcVar13 = (char *)dcgettext(0,pcVar13,5,pbVar17);\n                    /* WARNING: Subroutine does not return */\n        dfaerror(pcVar13);\n      }\n    }" if (parenthesized_expression "((((uVar18 & 0x200) != 0) && ((((byte)(uVar18 >> 0xc) ^ 1) & 1) == local_51)) &&\n       (((uVar18 & 0x10) != 0 || ((dfa->lex).laststart == false))))" ( (binary_expression "(((uVar18 & 0x200) != 0) && ((((byte)(uVar18 >> 0xc) ^ 1) & 1) == local_51)) &&\n       (((uVar18 & 0x10) != 0 || ((dfa->lex).laststart == false)))" (parenthesized_expression "(((uVar18 & 0x200) != 0) && ((((byte)(uVar18 >> 0xc) ^ 1) & 1) == local_51))" ( (binary_expression "((uVar18 & 0x200) != 0) && ((((byte)(uVar18 >> 0xc) ^ 1) & 1) == local_51)" (parenthesized_expression "((uVar18 & 0x200) != 0)" ( (binary_expression "(uVar18 & 0x200) != 0" (parenthesized_expression "(uVar18 & 0x200)" ( (binary_expression "uVar18 & 0x200" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "((((byte)(uVar18 >> 0xc) ^ 1) & 1) == local_51)" ( (binary_expression "(((byte)(uVar18 >> 0xc) ^ 1) & 1) == local_51" (parenthesized_expression "(((byte)(uVar18 >> 0xc) ^ 1) & 1)" ( (binary_expression "((byte)(uVar18 >> 0xc) ^ 1) & 1" (parenthesized_expression "((byte)(uVar18 >> 0xc) ^ 1)" ( (binary_expression "(byte)(uVar18 >> 0xc) ^ 1" (call_expression "(byte)(uVar18 >> 0xc)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar18 >> 0xc)" ( (binary_expression "uVar18 >> 0xc" identifier >> number_literal) ))) ^ number_literal) )) & number_literal) )) == identifier) ))) )) && (parenthesized_expression "(((uVar18 & 0x10) != 0 || ((dfa->lex).laststart == false)))" ( (parenthesized_expression "((uVar18 & 0x10) != 0 || ((dfa->lex).laststart == false))" ( (binary_expression "(uVar18 & 0x10) != 0 || ((dfa->lex).laststart == false)" (binary_expression "(uVar18 & 0x10) != 0" (parenthesized_expression "(uVar18 & 0x10)" ( (binary_expression "uVar18 & 0x10" identifier & number_literal) )) != number_literal) || (parenthesized_expression "((dfa->lex).laststart == false)" ( (binary_expression "(dfa->lex).laststart == false" (field_expression "(dfa->lex).laststart" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) == false) ))) )) ))) )) (compound_statement "{\n      pbVar1 = pbVar17 + (int)pbVar15;\n      (dfa->lex).maxrep = -1;\n      (dfa->lex).minrep = -1;\n      pbVar7 = local_5c;\n      if (pbVar1 == local_5c) {\nLAB_00023b5a:\n        local_5c = pbVar7;\n        if (local_51 == 0) {\nLAB_00023a30:\n          if (pbVar1 != local_5c) goto LAB_00023a3a;\n        }\n      }\n      else {\n        bVar21 = pbVar17[1];\n        pbVar15 = (byte *)(int)(char)bVar21;\n        if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar17 = (byte *)0xffffffff;\n          local_60 = pbVar15;\n          do {\n            if ((-1 < (int)pbVar17) &&\n               (local_60 = local_60 + (int)pbVar17 * 10, 0x8030 < (int)local_60)) {\n              local_60 = (byte *)0x8030;\n            }\n            pbVar17 = local_60 + -0x30;\n            (dfa->lex).minrep = (int)pbVar17;\n            local_5c = local_5c + 1;\n            pbVar7 = local_5c;\n            if (pbVar1 == local_5c) goto LAB_00023b5a;\n            local_60 = (byte *)(int)(char)*local_5c;\n            pbVar15 = local_60 + -0x30;\n          } while ((byte)pbVar15 < 10);\n          if (*local_5c == 0x2c) {\n            if ((int)pbVar17 < 0) goto LAB_00023bed;\nLAB_00023b6e:\n            pbVar15 = local_5c + 1;\n            pbVar7 = pbVar1;\n            if (pbVar1 == pbVar15) goto LAB_00023b5a;\n            bVar21 = local_5c[1];\n            local_5c = pbVar15;\n            if ((byte)(bVar21 - 0x30) < 10) {\n              iVar14 = -1;\n              do {\n                iVar19 = (int)(char)bVar21;\n                if ((-1 < iVar14) && (iVar19 = iVar19 + iVar14 * 10, 0x8030 < iVar19)) {\n                  iVar19 = 0x8030;\n                }\n                iVar14 = iVar19 + -0x30;\n                (dfa->lex).maxrep = iVar14;\n                pbVar15 = pbVar15 + 1;\n                if (pbVar1 == pbVar15) goto LAB_00023b5a;\n                bVar21 = *pbVar15;\n                local_5c = pbVar15;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            goto LAB_00023bd8;\n          }\n          (dfa->lex).maxrep = (int)pbVar17;\n          if (local_51 == 0) goto LAB_00023a30;\nLAB_000239fb:\n          if (*local_5c == 0x5c) {\n            local_5c = local_5c + 1;\n            goto LAB_00023a30;\n          }\n        }\n        else {\n          if (bVar21 == 0x2c) {\nLAB_00023bed:\n            (dfa->lex).minrep = 0;\n            goto LAB_00023b6e;\n          }\nLAB_00023bd8:\n          if (local_51 != 0) goto LAB_000239fb;\nLAB_00023a3a:\n          if ((*local_5c == 0x7d) && (pbVar17 = (byte *)(dfa->lex).minrep, -1 < (int)pbVar17)) {\n            iVar14 = (dfa->lex).maxrep;\n            if (-1 < iVar14) {\n              if (iVar14 < (int)pbVar17) goto LAB_00023a04;\n              if (0x7fff < iVar14) {\n                pcVar13 = "regular expression too big";\n                goto LAB_00023a1b;\n              }\n            }\n            (dfa->lex).laststart = false;\n            uVar18 = 0x104;\n            (dfa->lex).lasttok = 0x104;\n            (dfa->lex).ptr = (char *)(local_5c + 1);\n            (dfa->lex).left = (int)pbVar1 - (int)(local_5c + 1);\n            goto LAB_0002318d;\n          }\n        }\n      }\nLAB_00023a04:\n      if ((uVar18 & 0x200000) == 0) {\n        pcVar13 = "invalid content of \\{\\}";\n        pbVar17 = pbVar15;\nLAB_00023a1b:\n        pcVar13 = (char *)dcgettext(0,pcVar13,5,pbVar17);\n                    /* WARNING: Subroutine does not return */\n        dfaerror(pcVar13);\n      }\n    }" { (expression_statement "pbVar1 = pbVar17 + (int)pbVar15;" (assignment_expression "pbVar1 = pbVar17 + (int)pbVar15" identifier = (binary_expression "pbVar17 + (int)pbVar15" identifier + (cast_expression "(int)pbVar15" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "(dfa->lex).maxrep = -1;" (assignment_expression "(dfa->lex).maxrep = -1" (field_expression "(dfa->lex).maxrep" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(dfa->lex).minrep = -1;" (assignment_expression "(dfa->lex).minrep = -1" (field_expression "(dfa->lex).minrep" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "pbVar7 = local_5c;" (assignment_expression "pbVar7 = local_5c" identifier = identifier) ;) (if_statement "if (pbVar1 == local_5c) {\nLAB_00023b5a:\n        local_5c = pbVar7;\n        if (local_51 == 0) {\nLAB_00023a30:\n          if (pbVar1 != local_5c) goto LAB_00023a3a;\n        }\n      }\n      else {\n        bVar21 = pbVar17[1];\n        pbVar15 = (byte *)(int)(char)bVar21;\n        if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar17 = (byte *)0xffffffff;\n          local_60 = pbVar15;\n          do {\n            if ((-1 < (int)pbVar17) &&\n               (local_60 = local_60 + (int)pbVar17 * 10, 0x8030 < (int)local_60)) {\n              local_60 = (byte *)0x8030;\n            }\n            pbVar17 = local_60 + -0x30;\n            (dfa->lex).minrep = (int)pbVar17;\n            local_5c = local_5c + 1;\n            pbVar7 = local_5c;\n            if (pbVar1 == local_5c) goto LAB_00023b5a;\n            local_60 = (byte *)(int)(char)*local_5c;\n            pbVar15 = local_60 + -0x30;\n          } while ((byte)pbVar15 < 10);\n          if (*local_5c == 0x2c) {\n            if ((int)pbVar17 < 0) goto LAB_00023bed;\nLAB_00023b6e:\n            pbVar15 = local_5c + 1;\n            pbVar7 = pbVar1;\n            if (pbVar1 == pbVar15) goto LAB_00023b5a;\n            bVar21 = local_5c[1];\n            local_5c = pbVar15;\n            if ((byte)(bVar21 - 0x30) < 10) {\n              iVar14 = -1;\n              do {\n                iVar19 = (int)(char)bVar21;\n                if ((-1 < iVar14) && (iVar19 = iVar19 + iVar14 * 10, 0x8030 < iVar19)) {\n                  iVar19 = 0x8030;\n                }\n                iVar14 = iVar19 + -0x30;\n                (dfa->lex).maxrep = iVar14;\n                pbVar15 = pbVar15 + 1;\n                if (pbVar1 == pbVar15) goto LAB_00023b5a;\n                bVar21 = *pbVar15;\n                local_5c = pbVar15;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            goto LAB_00023bd8;\n          }\n          (dfa->lex).maxrep = (int)pbVar17;\n          if (local_51 == 0) goto LAB_00023a30;\nLAB_000239fb:\n          if (*local_5c == 0x5c) {\n            local_5c = local_5c + 1;\n            goto LAB_00023a30;\n          }\n        }\n        else {\n          if (bVar21 == 0x2c) {\nLAB_00023bed:\n            (dfa->lex).minrep = 0;\n            goto LAB_00023b6e;\n          }\nLAB_00023bd8:\n          if (local_51 != 0) goto LAB_000239fb;\nLAB_00023a3a:\n          if ((*local_5c == 0x7d) && (pbVar17 = (byte *)(dfa->lex).minrep, -1 < (int)pbVar17)) {\n            iVar14 = (dfa->lex).maxrep;\n            if (-1 < iVar14) {\n              if (iVar14 < (int)pbVar17) goto LAB_00023a04;\n              if (0x7fff < iVar14) {\n                pcVar13 = "regular expression too big";\n                goto LAB_00023a1b;\n              }\n            }\n            (dfa->lex).laststart = false;\n            uVar18 = 0x104;\n            (dfa->lex).lasttok = 0x104;\n            (dfa->lex).ptr = (char *)(local_5c + 1);\n            (dfa->lex).left = (int)pbVar1 - (int)(local_5c + 1);\n            goto LAB_0002318d;\n          }\n        }\n      }" if (parenthesized_expression "(pbVar1 == local_5c)" ( (binary_expression "pbVar1 == local_5c" identifier == identifier) )) (compound_statement "{\nLAB_00023b5a:\n        local_5c = pbVar7;\n        if (local_51 == 0) {\nLAB_00023a30:\n          if (pbVar1 != local_5c) goto LAB_00023a3a;\n        }\n      }" { (labeled_statement "LAB_00023b5a:\n        local_5c = pbVar7;" statement_identifier : (expression_statement "local_5c = pbVar7;" (assignment_expression "local_5c = pbVar7" identifier = identifier) ;)) (if_statement "if (local_51 == 0) {\nLAB_00023a30:\n          if (pbVar1 != local_5c) goto LAB_00023a3a;\n        }" if (parenthesized_expression "(local_51 == 0)" ( (binary_expression "local_51 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00023a30:\n          if (pbVar1 != local_5c) goto LAB_00023a3a;\n        }" { (labeled_statement "LAB_00023a30:\n          if (pbVar1 != local_5c) goto LAB_00023a3a;" statement_identifier : (if_statement "if (pbVar1 != local_5c) goto LAB_00023a3a;" if (parenthesized_expression "(pbVar1 != local_5c)" ( (binary_expression "pbVar1 != local_5c" identifier != identifier) )) (goto_statement "goto LAB_00023a3a;" goto statement_identifier ;))) })) }) (else_clause "else {\n        bVar21 = pbVar17[1];\n        pbVar15 = (byte *)(int)(char)bVar21;\n        if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar17 = (byte *)0xffffffff;\n          local_60 = pbVar15;\n          do {\n            if ((-1 < (int)pbVar17) &&\n               (local_60 = local_60 + (int)pbVar17 * 10, 0x8030 < (int)local_60)) {\n              local_60 = (byte *)0x8030;\n            }\n            pbVar17 = local_60 + -0x30;\n            (dfa->lex).minrep = (int)pbVar17;\n            local_5c = local_5c + 1;\n            pbVar7 = local_5c;\n            if (pbVar1 == local_5c) goto LAB_00023b5a;\n            local_60 = (byte *)(int)(char)*local_5c;\n            pbVar15 = local_60 + -0x30;\n          } while ((byte)pbVar15 < 10);\n          if (*local_5c == 0x2c) {\n            if ((int)pbVar17 < 0) goto LAB_00023bed;\nLAB_00023b6e:\n            pbVar15 = local_5c + 1;\n            pbVar7 = pbVar1;\n            if (pbVar1 == pbVar15) goto LAB_00023b5a;\n            bVar21 = local_5c[1];\n            local_5c = pbVar15;\n            if ((byte)(bVar21 - 0x30) < 10) {\n              iVar14 = -1;\n              do {\n                iVar19 = (int)(char)bVar21;\n                if ((-1 < iVar14) && (iVar19 = iVar19 + iVar14 * 10, 0x8030 < iVar19)) {\n                  iVar19 = 0x8030;\n                }\n                iVar14 = iVar19 + -0x30;\n                (dfa->lex).maxrep = iVar14;\n                pbVar15 = pbVar15 + 1;\n                if (pbVar1 == pbVar15) goto LAB_00023b5a;\n                bVar21 = *pbVar15;\n                local_5c = pbVar15;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            goto LAB_00023bd8;\n          }\n          (dfa->lex).maxrep = (int)pbVar17;\n          if (local_51 == 0) goto LAB_00023a30;\nLAB_000239fb:\n          if (*local_5c == 0x5c) {\n            local_5c = local_5c + 1;\n            goto LAB_00023a30;\n          }\n        }\n        else {\n          if (bVar21 == 0x2c) {\nLAB_00023bed:\n            (dfa->lex).minrep = 0;\n            goto LAB_00023b6e;\n          }\nLAB_00023bd8:\n          if (local_51 != 0) goto LAB_000239fb;\nLAB_00023a3a:\n          if ((*local_5c == 0x7d) && (pbVar17 = (byte *)(dfa->lex).minrep, -1 < (int)pbVar17)) {\n            iVar14 = (dfa->lex).maxrep;\n            if (-1 < iVar14) {\n              if (iVar14 < (int)pbVar17) goto LAB_00023a04;\n              if (0x7fff < iVar14) {\n                pcVar13 = "regular expression too big";\n                goto LAB_00023a1b;\n              }\n            }\n            (dfa->lex).laststart = false;\n            uVar18 = 0x104;\n            (dfa->lex).lasttok = 0x104;\n            (dfa->lex).ptr = (char *)(local_5c + 1);\n            (dfa->lex).left = (int)pbVar1 - (int)(local_5c + 1);\n            goto LAB_0002318d;\n          }\n        }\n      }" else (compound_statement "{\n        bVar21 = pbVar17[1];\n        pbVar15 = (byte *)(int)(char)bVar21;\n        if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar17 = (byte *)0xffffffff;\n          local_60 = pbVar15;\n          do {\n            if ((-1 < (int)pbVar17) &&\n               (local_60 = local_60 + (int)pbVar17 * 10, 0x8030 < (int)local_60)) {\n              local_60 = (byte *)0x8030;\n            }\n            pbVar17 = local_60 + -0x30;\n            (dfa->lex).minrep = (int)pbVar17;\n            local_5c = local_5c + 1;\n            pbVar7 = local_5c;\n            if (pbVar1 == local_5c) goto LAB_00023b5a;\n            local_60 = (byte *)(int)(char)*local_5c;\n            pbVar15 = local_60 + -0x30;\n          } while ((byte)pbVar15 < 10);\n          if (*local_5c == 0x2c) {\n            if ((int)pbVar17 < 0) goto LAB_00023bed;\nLAB_00023b6e:\n            pbVar15 = local_5c + 1;\n            pbVar7 = pbVar1;\n            if (pbVar1 == pbVar15) goto LAB_00023b5a;\n            bVar21 = local_5c[1];\n            local_5c = pbVar15;\n            if ((byte)(bVar21 - 0x30) < 10) {\n              iVar14 = -1;\n              do {\n                iVar19 = (int)(char)bVar21;\n                if ((-1 < iVar14) && (iVar19 = iVar19 + iVar14 * 10, 0x8030 < iVar19)) {\n                  iVar19 = 0x8030;\n                }\n                iVar14 = iVar19 + -0x30;\n                (dfa->lex).maxrep = iVar14;\n                pbVar15 = pbVar15 + 1;\n                if (pbVar1 == pbVar15) goto LAB_00023b5a;\n                bVar21 = *pbVar15;\n                local_5c = pbVar15;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            goto LAB_00023bd8;\n          }\n          (dfa->lex).maxrep = (int)pbVar17;\n          if (local_51 == 0) goto LAB_00023a30;\nLAB_000239fb:\n          if (*local_5c == 0x5c) {\n            local_5c = local_5c + 1;\n            goto LAB_00023a30;\n          }\n        }\n        else {\n          if (bVar21 == 0x2c) {\nLAB_00023bed:\n            (dfa->lex).minrep = 0;\n            goto LAB_00023b6e;\n          }\nLAB_00023bd8:\n          if (local_51 != 0) goto LAB_000239fb;\nLAB_00023a3a:\n          if ((*local_5c == 0x7d) && (pbVar17 = (byte *)(dfa->lex).minrep, -1 < (int)pbVar17)) {\n            iVar14 = (dfa->lex).maxrep;\n            if (-1 < iVar14) {\n              if (iVar14 < (int)pbVar17) goto LAB_00023a04;\n              if (0x7fff < iVar14) {\n                pcVar13 = "regular expression too big";\n                goto LAB_00023a1b;\n              }\n            }\n            (dfa->lex).laststart = false;\n            uVar18 = 0x104;\n            (dfa->lex).lasttok = 0x104;\n            (dfa->lex).ptr = (char *)(local_5c + 1);\n            (dfa->lex).left = (int)pbVar1 - (int)(local_5c + 1);\n            goto LAB_0002318d;\n          }\n        }\n      }" { (expression_statement "bVar21 = pbVar17[1];" (assignment_expression "bVar21 = pbVar17[1]" identifier = (subscript_expression "pbVar17[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar15 = (byte *)(int)(char)bVar21;" (assignment_expression "pbVar15 = (byte *)(int)(char)bVar21" identifier = (cast_expression "(byte *)(int)(char)bVar21" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)(char)bVar21" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar21" ( (type_descriptor "char" primitive_type) ) identifier)))) ;) (if_statement "if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar17 = (byte *)0xffffffff;\n          local_60 = pbVar15;\n          do {\n            if ((-1 < (int)pbVar17) &&\n               (local_60 = local_60 + (int)pbVar17 * 10, 0x8030 < (int)local_60)) {\n              local_60 = (byte *)0x8030;\n            }\n            pbVar17 = local_60 + -0x30;\n            (dfa->lex).minrep = (int)pbVar17;\n            local_5c = local_5c + 1;\n            pbVar7 = local_5c;\n            if (pbVar1 == local_5c) goto LAB_00023b5a;\n            local_60 = (byte *)(int)(char)*local_5c;\n            pbVar15 = local_60 + -0x30;\n          } while ((byte)pbVar15 < 10);\n          if (*local_5c == 0x2c) {\n            if ((int)pbVar17 < 0) goto LAB_00023bed;\nLAB_00023b6e:\n            pbVar15 = local_5c + 1;\n            pbVar7 = pbVar1;\n            if (pbVar1 == pbVar15) goto LAB_00023b5a;\n            bVar21 = local_5c[1];\n            local_5c = pbVar15;\n            if ((byte)(bVar21 - 0x30) < 10) {\n              iVar14 = -1;\n              do {\n                iVar19 = (int)(char)bVar21;\n                if ((-1 < iVar14) && (iVar19 = iVar19 + iVar14 * 10, 0x8030 < iVar19)) {\n                  iVar19 = 0x8030;\n                }\n                iVar14 = iVar19 + -0x30;\n                (dfa->lex).maxrep = iVar14;\n                pbVar15 = pbVar15 + 1;\n                if (pbVar1 == pbVar15) goto LAB_00023b5a;\n                bVar21 = *pbVar15;\n                local_5c = pbVar15;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            goto LAB_00023bd8;\n          }\n          (dfa->lex).maxrep = (int)pbVar17;\n          if (local_51 == 0) goto LAB_00023a30;\nLAB_000239fb:\n          if (*local_5c == 0x5c) {\n            local_5c = local_5c + 1;\n            goto LAB_00023a30;\n          }\n        }\n        else {\n          if (bVar21 == 0x2c) {\nLAB_00023bed:\n            (dfa->lex).minrep = 0;\n            goto LAB_00023b6e;\n          }\nLAB_00023bd8:\n          if (local_51 != 0) goto LAB_000239fb;\nLAB_00023a3a:\n          if ((*local_5c == 0x7d) && (pbVar17 = (byte *)(dfa->lex).minrep, -1 < (int)pbVar17)) {\n            iVar14 = (dfa->lex).maxrep;\n            if (-1 < iVar14) {\n              if (iVar14 < (int)pbVar17) goto LAB_00023a04;\n              if (0x7fff < iVar14) {\n                pcVar13 = "regular expression too big";\n                goto LAB_00023a1b;\n              }\n            }\n            (dfa->lex).laststart = false;\n            uVar18 = 0x104;\n            (dfa->lex).lasttok = 0x104;\n            (dfa->lex).ptr = (char *)(local_5c + 1);\n            (dfa->lex).left = (int)pbVar1 - (int)(local_5c + 1);\n            goto LAB_0002318d;\n          }\n        }" if (parenthesized_expression "((byte)(bVar21 - 0x30) < 10)" ( (binary_expression "(byte)(bVar21 - 0x30) < 10" (call_expression "(byte)(bVar21 - 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar21 - 0x30)" ( (binary_expression "bVar21 - 0x30" identifier - number_literal) ))) < number_literal) )) (compound_statement "{\n          pbVar17 = (byte *)0xffffffff;\n          local_60 = pbVar15;\n          do {\n            if ((-1 < (int)pbVar17) &&\n               (local_60 = local_60 + (int)pbVar17 * 10, 0x8030 < (int)local_60)) {\n              local_60 = (byte *)0x8030;\n            }\n            pbVar17 = local_60 + -0x30;\n            (dfa->lex).minrep = (int)pbVar17;\n            local_5c = local_5c + 1;\n            pbVar7 = local_5c;\n            if (pbVar1 == local_5c) goto LAB_00023b5a;\n            local_60 = (byte *)(int)(char)*local_5c;\n            pbVar15 = local_60 + -0x30;\n          } while ((byte)pbVar15 < 10);\n          if (*local_5c == 0x2c) {\n            if ((int)pbVar17 < 0) goto LAB_00023bed;\nLAB_00023b6e:\n            pbVar15 = local_5c + 1;\n            pbVar7 = pbVar1;\n            if (pbVar1 == pbVar15) goto LAB_00023b5a;\n            bVar21 = local_5c[1];\n            local_5c = pbVar15;\n            if ((byte)(bVar21 - 0x30) < 10) {\n              iVar14 = -1;\n              do {\n                iVar19 = (int)(char)bVar21;\n                if ((-1 < iVar14) && (iVar19 = iVar19 + iVar14 * 10, 0x8030 < iVar19)) {\n                  iVar19 = 0x8030;\n                }\n                iVar14 = iVar19 + -0x30;\n                (dfa->lex).maxrep = iVar14;\n                pbVar15 = pbVar15 + 1;\n                if (pbVar1 == pbVar15) goto LAB_00023b5a;\n                bVar21 = *pbVar15;\n                local_5c = pbVar15;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            goto LAB_00023bd8;\n          }\n          (dfa->lex).maxrep = (int)pbVar17;\n          if (local_51 == 0) goto LAB_00023a30;\nLAB_000239fb:\n          if (*local_5c == 0x5c) {\n            local_5c = local_5c + 1;\n            goto LAB_00023a30;\n          }\n        }" { (expression_statement "pbVar17 = (byte *)0xffffffff;" (assignment_expression "pbVar17 = (byte *)0xffffffff" identifier = (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_60 = pbVar15;" (assignment_expression "local_60 = pbVar15" identifier = identifier) ;) (do_statement "do {\n            if ((-1 < (int)pbVar17) &&\n               (local_60 = local_60 + (int)pbVar17 * 10, 0x8030 < (int)local_60)) {\n              local_60 = (byte *)0x8030;\n            }\n            pbVar17 = local_60 + -0x30;\n            (dfa->lex).minrep = (int)pbVar17;\n            local_5c = local_5c + 1;\n            pbVar7 = local_5c;\n            if (pbVar1 == local_5c) goto LAB_00023b5a;\n            local_60 = (byte *)(int)(char)*local_5c;\n            pbVar15 = local_60 + -0x30;\n          } while ((byte)pbVar15 < 10);" do (compound_statement "{\n            if ((-1 < (int)pbVar17) &&\n               (local_60 = local_60 + (int)pbVar17 * 10, 0x8030 < (int)local_60)) {\n              local_60 = (byte *)0x8030;\n            }\n            pbVar17 = local_60 + -0x30;\n            (dfa->lex).minrep = (int)pbVar17;\n            local_5c = local_5c + 1;\n            pbVar7 = local_5c;\n            if (pbVar1 == local_5c) goto LAB_00023b5a;\n            local_60 = (byte *)(int)(char)*local_5c;\n            pbVar15 = local_60 + -0x30;\n          }" { (if_statement "if ((-1 < (int)pbVar17) &&\n               (local_60 = local_60 + (int)pbVar17 * 10, 0x8030 < (int)local_60)) {\n              local_60 = (byte *)0x8030;\n            }" if (parenthesized_expression "((-1 < (int)pbVar17) &&\n               (local_60 = local_60 + (int)pbVar17 * 10, 0x8030 < (int)local_60))" ( (binary_expression "(-1 < (int)pbVar17) &&\n               (local_60 = local_60 + (int)pbVar17 * 10, 0x8030 < (int)local_60)" (parenthesized_expression "(-1 < (int)pbVar17)" ( (binary_expression "-1 < (int)pbVar17" number_literal < (cast_expression "(int)pbVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(local_60 = local_60 + (int)pbVar17 * 10, 0x8030 < (int)local_60)" ( (comma_expression "local_60 = local_60 + (int)pbVar17 * 10, 0x8030 < (int)local_60" (assignment_expression "local_60 = local_60 + (int)pbVar17 * 10" identifier = (binary_expression "local_60 + (int)pbVar17 * 10" identifier + (binary_expression "(int)pbVar17 * 10" (cast_expression "(int)pbVar17" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) , (binary_expression "0x8030 < (int)local_60" number_literal < (cast_expression "(int)local_60" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (compound_statement "{\n              local_60 = (byte *)0x8030;\n            }" { (expression_statement "local_60 = (byte *)0x8030;" (assignment_expression "local_60 = (byte *)0x8030" identifier = (cast_expression "(byte *)0x8030" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "pbVar17 = local_60 + -0x30;" (assignment_expression "pbVar17 = local_60 + -0x30" identifier = (binary_expression "local_60 + -0x30" identifier + number_literal)) ;) (expression_statement "(dfa->lex).minrep = (int)pbVar17;" (assignment_expression "(dfa->lex).minrep = (int)pbVar17" (field_expression "(dfa->lex).minrep" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(int)pbVar17" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_5c = local_5c + 1;" (assignment_expression "local_5c = local_5c + 1" identifier = (binary_expression "local_5c + 1" identifier + number_literal)) ;) (expression_statement "pbVar7 = local_5c;" (assignment_expression "pbVar7 = local_5c" identifier = identifier) ;) (if_statement "if (pbVar1 == local_5c) goto LAB_00023b5a;" if (parenthesized_expression "(pbVar1 == local_5c)" ( (binary_expression "pbVar1 == local_5c" identifier == identifier) )) (goto_statement "goto LAB_00023b5a;" goto statement_identifier ;)) (expression_statement "local_60 = (byte *)(int)(char)*local_5c;" (assignment_expression "local_60 = (byte *)(int)(char)*local_5c" identifier = (cast_expression "(byte *)(int)(char)*local_5c" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)(char)*local_5c" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*local_5c" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*local_5c" * identifier))))) ;) (expression_statement "pbVar15 = local_60 + -0x30;" (assignment_expression "pbVar15 = local_60 + -0x30" identifier = (binary_expression "local_60 + -0x30" identifier + number_literal)) ;) }) while (parenthesized_expression "((byte)pbVar15 < 10)" ( (binary_expression "(byte)pbVar15 < 10" (cast_expression "(byte)pbVar15" ( (type_descriptor "byte" type_identifier) ) identifier) < number_literal) )) ;) (if_statement "if (*local_5c == 0x2c) {\n            if ((int)pbVar17 < 0) goto LAB_00023bed;\nLAB_00023b6e:\n            pbVar15 = local_5c + 1;\n            pbVar7 = pbVar1;\n            if (pbVar1 == pbVar15) goto LAB_00023b5a;\n            bVar21 = local_5c[1];\n            local_5c = pbVar15;\n            if ((byte)(bVar21 - 0x30) < 10) {\n              iVar14 = -1;\n              do {\n                iVar19 = (int)(char)bVar21;\n                if ((-1 < iVar14) && (iVar19 = iVar19 + iVar14 * 10, 0x8030 < iVar19)) {\n                  iVar19 = 0x8030;\n                }\n                iVar14 = iVar19 + -0x30;\n                (dfa->lex).maxrep = iVar14;\n                pbVar15 = pbVar15 + 1;\n                if (pbVar1 == pbVar15) goto LAB_00023b5a;\n                bVar21 = *pbVar15;\n                local_5c = pbVar15;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            goto LAB_00023bd8;\n          }" if (parenthesized_expression "(*local_5c == 0x2c)" ( (binary_expression "*local_5c == 0x2c" (pointer_expression "*local_5c" * identifier) == number_literal) )) (compound_statement "{\n            if ((int)pbVar17 < 0) goto LAB_00023bed;\nLAB_00023b6e:\n            pbVar15 = local_5c + 1;\n            pbVar7 = pbVar1;\n            if (pbVar1 == pbVar15) goto LAB_00023b5a;\n            bVar21 = local_5c[1];\n            local_5c = pbVar15;\n            if ((byte)(bVar21 - 0x30) < 10) {\n              iVar14 = -1;\n              do {\n                iVar19 = (int)(char)bVar21;\n                if ((-1 < iVar14) && (iVar19 = iVar19 + iVar14 * 10, 0x8030 < iVar19)) {\n                  iVar19 = 0x8030;\n                }\n                iVar14 = iVar19 + -0x30;\n                (dfa->lex).maxrep = iVar14;\n                pbVar15 = pbVar15 + 1;\n                if (pbVar1 == pbVar15) goto LAB_00023b5a;\n                bVar21 = *pbVar15;\n                local_5c = pbVar15;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            goto LAB_00023bd8;\n          }" { (if_statement "if ((int)pbVar17 < 0) goto LAB_00023bed;" if (parenthesized_expression "((int)pbVar17 < 0)" ( (binary_expression "(int)pbVar17 < 0" (cast_expression "(int)pbVar17" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00023bed;" goto statement_identifier ;)) (labeled_statement "LAB_00023b6e:\n            pbVar15 = local_5c + 1;" statement_identifier : (expression_statement "pbVar15 = local_5c + 1;" (assignment_expression "pbVar15 = local_5c + 1" identifier = (binary_expression "local_5c + 1" identifier + number_literal)) ;)) (expression_statement "pbVar7 = pbVar1;" (assignment_expression "pbVar7 = pbVar1" identifier = identifier) ;) (if_statement "if (pbVar1 == pbVar15) goto LAB_00023b5a;" if (parenthesized_expression "(pbVar1 == pbVar15)" ( (binary_expression "pbVar1 == pbVar15" identifier == identifier) )) (goto_statement "goto LAB_00023b5a;" goto statement_identifier ;)) (expression_statement "bVar21 = local_5c[1];" (assignment_expression "bVar21 = local_5c[1]" identifier = (subscript_expression "local_5c[1]" identifier [ number_literal ])) ;) (expression_statement "local_5c = pbVar15;" (assignment_expression "local_5c = pbVar15" identifier = identifier) ;) (if_statement "if ((byte)(bVar21 - 0x30) < 10) {\n              iVar14 = -1;\n              do {\n                iVar19 = (int)(char)bVar21;\n                if ((-1 < iVar14) && (iVar19 = iVar19 + iVar14 * 10, 0x8030 < iVar19)) {\n                  iVar19 = 0x8030;\n                }\n                iVar14 = iVar19 + -0x30;\n                (dfa->lex).maxrep = iVar14;\n                pbVar15 = pbVar15 + 1;\n                if (pbVar1 == pbVar15) goto LAB_00023b5a;\n                bVar21 = *pbVar15;\n                local_5c = pbVar15;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }" if (parenthesized_expression "((byte)(bVar21 - 0x30) < 10)" ( (binary_expression "(byte)(bVar21 - 0x30) < 10" (call_expression "(byte)(bVar21 - 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar21 - 0x30)" ( (binary_expression "bVar21 - 0x30" identifier - number_literal) ))) < number_literal) )) (compound_statement "{\n              iVar14 = -1;\n              do {\n                iVar19 = (int)(char)bVar21;\n                if ((-1 < iVar14) && (iVar19 = iVar19 + iVar14 * 10, 0x8030 < iVar19)) {\n                  iVar19 = 0x8030;\n                }\n                iVar14 = iVar19 + -0x30;\n                (dfa->lex).maxrep = iVar14;\n                pbVar15 = pbVar15 + 1;\n                if (pbVar1 == pbVar15) goto LAB_00023b5a;\n                bVar21 = *pbVar15;\n                local_5c = pbVar15;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }" { (expression_statement "iVar14 = -1;" (assignment_expression "iVar14 = -1" identifier = number_literal) ;) (do_statement "do {\n                iVar19 = (int)(char)bVar21;\n                if ((-1 < iVar14) && (iVar19 = iVar19 + iVar14 * 10, 0x8030 < iVar19)) {\n                  iVar19 = 0x8030;\n                }\n                iVar14 = iVar19 + -0x30;\n                (dfa->lex).maxrep = iVar14;\n                pbVar15 = pbVar15 + 1;\n                if (pbVar1 == pbVar15) goto LAB_00023b5a;\n                bVar21 = *pbVar15;\n                local_5c = pbVar15;\n              } while ((byte)(bVar21 - 0x30) < 10);" do (compound_statement "{\n                iVar19 = (int)(char)bVar21;\n                if ((-1 < iVar14) && (iVar19 = iVar19 + iVar14 * 10, 0x8030 < iVar19)) {\n                  iVar19 = 0x8030;\n                }\n                iVar14 = iVar19 + -0x30;\n                (dfa->lex).maxrep = iVar14;\n                pbVar15 = pbVar15 + 1;\n                if (pbVar1 == pbVar15) goto LAB_00023b5a;\n                bVar21 = *pbVar15;\n                local_5c = pbVar15;\n              }" { (expression_statement "iVar19 = (int)(char)bVar21;" (assignment_expression "iVar19 = (int)(char)bVar21" identifier = (cast_expression "(int)(char)bVar21" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar21" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (if_statement "if ((-1 < iVar14) && (iVar19 = iVar19 + iVar14 * 10, 0x8030 < iVar19)) {\n                  iVar19 = 0x8030;\n                }" if (parenthesized_expression "((-1 < iVar14) && (iVar19 = iVar19 + iVar14 * 10, 0x8030 < iVar19))" ( (binary_expression "(-1 < iVar14) && (iVar19 = iVar19 + iVar14 * 10, 0x8030 < iVar19)" (parenthesized_expression "(-1 < iVar14)" ( (binary_expression "-1 < iVar14" number_literal < identifier) )) && (parenthesized_expression "(iVar19 = iVar19 + iVar14 * 10, 0x8030 < iVar19)" ( (comma_expression "iVar19 = iVar19 + iVar14 * 10, 0x8030 < iVar19" (assignment_expression "iVar19 = iVar19 + iVar14 * 10" identifier = (binary_expression "iVar19 + iVar14 * 10" identifier + (binary_expression "iVar14 * 10" identifier * number_literal))) , (binary_expression "0x8030 < iVar19" number_literal < identifier)) ))) )) (compound_statement "{\n                  iVar19 = 0x8030;\n                }" { (expression_statement "iVar19 = 0x8030;" (assignment_expression "iVar19 = 0x8030" identifier = number_literal) ;) })) (expression_statement "iVar14 = iVar19 + -0x30;" (assignment_expression "iVar14 = iVar19 + -0x30" identifier = (binary_expression "iVar19 + -0x30" identifier + number_literal)) ;) (expression_statement "(dfa->lex).maxrep = iVar14;" (assignment_expression "(dfa->lex).maxrep = iVar14" (field_expression "(dfa->lex).maxrep" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "pbVar15 = pbVar15 + 1;" (assignment_expression "pbVar15 = pbVar15 + 1" identifier = (binary_expression "pbVar15 + 1" identifier + number_literal)) ;) (if_statement "if (pbVar1 == pbVar15) goto LAB_00023b5a;" if (parenthesized_expression "(pbVar1 == pbVar15)" ( (binary_expression "pbVar1 == pbVar15" identifier == identifier) )) (goto_statement "goto LAB_00023b5a;" goto statement_identifier ;)) (expression_statement "bVar21 = *pbVar15;" (assignment_expression "bVar21 = *pbVar15" identifier = (pointer_expression "*pbVar15" * identifier)) ;) (expression_statement "local_5c = pbVar15;" (assignment_expression "local_5c = pbVar15" identifier = identifier) ;) }) while (parenthesized_expression "((byte)(bVar21 - 0x30) < 10)" ( (binary_expression "(byte)(bVar21 - 0x30) < 10" (call_expression "(byte)(bVar21 - 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar21 - 0x30)" ( (binary_expression "bVar21 - 0x30" identifier - number_literal) ))) < number_literal) )) ;) })) (goto_statement "goto LAB_00023bd8;" goto statement_identifier ;) })) (expression_statement "(dfa->lex).maxrep = (int)pbVar17;" (assignment_expression "(dfa->lex).maxrep = (int)pbVar17" (field_expression "(dfa->lex).maxrep" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(int)pbVar17" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (local_51 == 0) goto LAB_00023a30;" if (parenthesized_expression "(local_51 == 0)" ( (binary_expression "local_51 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00023a30;" goto statement_identifier ;)) (labeled_statement "LAB_000239fb:\n          if (*local_5c == 0x5c) {\n            local_5c = local_5c + 1;\n            goto LAB_00023a30;\n          }" statement_identifier : (if_statement "if (*local_5c == 0x5c) {\n            local_5c = local_5c + 1;\n            goto LAB_00023a30;\n          }" if (parenthesized_expression "(*local_5c == 0x5c)" ( (binary_expression "*local_5c == 0x5c" (pointer_expression "*local_5c" * identifier) == number_literal) )) (compound_statement "{\n            local_5c = local_5c + 1;\n            goto LAB_00023a30;\n          }" { (expression_statement "local_5c = local_5c + 1;" (assignment_expression "local_5c = local_5c + 1" identifier = (binary_expression "local_5c + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_00023a30;" goto statement_identifier ;) }))) }) (else_clause "else {\n          if (bVar21 == 0x2c) {\nLAB_00023bed:\n            (dfa->lex).minrep = 0;\n            goto LAB_00023b6e;\n          }\nLAB_00023bd8:\n          if (local_51 != 0) goto LAB_000239fb;\nLAB_00023a3a:\n          if ((*local_5c == 0x7d) && (pbVar17 = (byte *)(dfa->lex).minrep, -1 < (int)pbVar17)) {\n            iVar14 = (dfa->lex).maxrep;\n            if (-1 < iVar14) {\n              if (iVar14 < (int)pbVar17) goto LAB_00023a04;\n              if (0x7fff < iVar14) {\n                pcVar13 = "regular expression too big";\n                goto LAB_00023a1b;\n              }\n            }\n            (dfa->lex).laststart = false;\n            uVar18 = 0x104;\n            (dfa->lex).lasttok = 0x104;\n            (dfa->lex).ptr = (char *)(local_5c + 1);\n            (dfa->lex).left = (int)pbVar1 - (int)(local_5c + 1);\n            goto LAB_0002318d;\n          }\n        }" else (compound_statement "{\n          if (bVar21 == 0x2c) {\nLAB_00023bed:\n            (dfa->lex).minrep = 0;\n            goto LAB_00023b6e;\n          }\nLAB_00023bd8:\n          if (local_51 != 0) goto LAB_000239fb;\nLAB_00023a3a:\n          if ((*local_5c == 0x7d) && (pbVar17 = (byte *)(dfa->lex).minrep, -1 < (int)pbVar17)) {\n            iVar14 = (dfa->lex).maxrep;\n            if (-1 < iVar14) {\n              if (iVar14 < (int)pbVar17) goto LAB_00023a04;\n              if (0x7fff < iVar14) {\n                pcVar13 = "regular expression too big";\n                goto LAB_00023a1b;\n              }\n            }\n            (dfa->lex).laststart = false;\n            uVar18 = 0x104;\n            (dfa->lex).lasttok = 0x104;\n            (dfa->lex).ptr = (char *)(local_5c + 1);\n            (dfa->lex).left = (int)pbVar1 - (int)(local_5c + 1);\n            goto LAB_0002318d;\n          }\n        }" { (if_statement "if (bVar21 == 0x2c) {\nLAB_00023bed:\n            (dfa->lex).minrep = 0;\n            goto LAB_00023b6e;\n          }" if (parenthesized_expression "(bVar21 == 0x2c)" ( (binary_expression "bVar21 == 0x2c" identifier == number_literal) )) (compound_statement "{\nLAB_00023bed:\n            (dfa->lex).minrep = 0;\n            goto LAB_00023b6e;\n          }" { (labeled_statement "LAB_00023bed:\n            (dfa->lex).minrep = 0;" statement_identifier : (expression_statement "(dfa->lex).minrep = 0;" (assignment_expression "(dfa->lex).minrep = 0" (field_expression "(dfa->lex).minrep" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = number_literal) ;)) (goto_statement "goto LAB_00023b6e;" goto statement_identifier ;) })) (labeled_statement "LAB_00023bd8:\n          if (local_51 != 0) goto LAB_000239fb;" statement_identifier : (if_statement "if (local_51 != 0) goto LAB_000239fb;" if (parenthesized_expression "(local_51 != 0)" ( (binary_expression "local_51 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000239fb;" goto statement_identifier ;))) (labeled_statement "LAB_00023a3a:\n          if ((*local_5c == 0x7d) && (pbVar17 = (byte *)(dfa->lex).minrep, -1 < (int)pbVar17)) {\n            iVar14 = (dfa->lex).maxrep;\n            if (-1 < iVar14) {\n              if (iVar14 < (int)pbVar17) goto LAB_00023a04;\n              if (0x7fff < iVar14) {\n                pcVar13 = "regular expression too big";\n                goto LAB_00023a1b;\n              }\n            }\n            (dfa->lex).laststart = false;\n            uVar18 = 0x104;\n            (dfa->lex).lasttok = 0x104;\n            (dfa->lex).ptr = (char *)(local_5c + 1);\n            (dfa->lex).left = (int)pbVar1 - (int)(local_5c + 1);\n            goto LAB_0002318d;\n          }" statement_identifier : (if_statement "if ((*local_5c == 0x7d) && (pbVar17 = (byte *)(dfa->lex).minrep, -1 < (int)pbVar17)) {\n            iVar14 = (dfa->lex).maxrep;\n            if (-1 < iVar14) {\n              if (iVar14 < (int)pbVar17) goto LAB_00023a04;\n              if (0x7fff < iVar14) {\n                pcVar13 = "regular expression too big";\n                goto LAB_00023a1b;\n              }\n            }\n            (dfa->lex).laststart = false;\n            uVar18 = 0x104;\n            (dfa->lex).lasttok = 0x104;\n            (dfa->lex).ptr = (char *)(local_5c + 1);\n            (dfa->lex).left = (int)pbVar1 - (int)(local_5c + 1);\n            goto LAB_0002318d;\n          }" if (parenthesized_expression "((*local_5c == 0x7d) && (pbVar17 = (byte *)(dfa->lex).minrep, -1 < (int)pbVar17))" ( (binary_expression "(*local_5c == 0x7d) && (pbVar17 = (byte *)(dfa->lex).minrep, -1 < (int)pbVar17)" (parenthesized_expression "(*local_5c == 0x7d)" ( (binary_expression "*local_5c == 0x7d" (pointer_expression "*local_5c" * identifier) == number_literal) )) && (parenthesized_expression "(pbVar17 = (byte *)(dfa->lex).minrep, -1 < (int)pbVar17)" ( (comma_expression "pbVar17 = (byte *)(dfa->lex).minrep, -1 < (int)pbVar17" (assignment_expression "pbVar17 = (byte *)(dfa->lex).minrep" identifier = (cast_expression "(byte *)(dfa->lex).minrep" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(dfa->lex).minrep" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier))) , (binary_expression "-1 < (int)pbVar17" number_literal < (cast_expression "(int)pbVar17" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (compound_statement "{\n            iVar14 = (dfa->lex).maxrep;\n            if (-1 < iVar14) {\n              if (iVar14 < (int)pbVar17) goto LAB_00023a04;\n              if (0x7fff < iVar14) {\n                pcVar13 = "regular expression too big";\n                goto LAB_00023a1b;\n              }\n            }\n            (dfa->lex).laststart = false;\n            uVar18 = 0x104;\n            (dfa->lex).lasttok = 0x104;\n            (dfa->lex).ptr = (char *)(local_5c + 1);\n            (dfa->lex).left = (int)pbVar1 - (int)(local_5c + 1);\n            goto LAB_0002318d;\n          }" { (expression_statement "iVar14 = (dfa->lex).maxrep;" (assignment_expression "iVar14 = (dfa->lex).maxrep" identifier = (field_expression "(dfa->lex).maxrep" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (-1 < iVar14) {\n              if (iVar14 < (int)pbVar17) goto LAB_00023a04;\n              if (0x7fff < iVar14) {\n                pcVar13 = "regular expression too big";\n                goto LAB_00023a1b;\n              }\n            }" if (parenthesized_expression "(-1 < iVar14)" ( (binary_expression "-1 < iVar14" number_literal < identifier) )) (compound_statement "{\n              if (iVar14 < (int)pbVar17) goto LAB_00023a04;\n              if (0x7fff < iVar14) {\n                pcVar13 = "regular expression too big";\n                goto LAB_00023a1b;\n              }\n            }" { (if_statement "if (iVar14 < (int)pbVar17) goto LAB_00023a04;" if (parenthesized_expression "(iVar14 < (int)pbVar17)" ( (binary_expression "iVar14 < (int)pbVar17" identifier < (cast_expression "(int)pbVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00023a04;" goto statement_identifier ;)) (if_statement "if (0x7fff < iVar14) {\n                pcVar13 = "regular expression too big";\n                goto LAB_00023a1b;\n              }" if (parenthesized_expression "(0x7fff < iVar14)" ( (binary_expression "0x7fff < iVar14" number_literal < identifier) )) (compound_statement "{\n                pcVar13 = "regular expression too big";\n                goto LAB_00023a1b;\n              }" { (expression_statement "pcVar13 = "regular expression too big";" (assignment_expression "pcVar13 = "regular expression too big"" identifier = (string_literal ""regular expression too big"" " string_content ")) ;) (goto_statement "goto LAB_00023a1b;" goto statement_identifier ;) })) })) (expression_statement "(dfa->lex).laststart = false;" (assignment_expression "(dfa->lex).laststart = false" (field_expression "(dfa->lex).laststart" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = false) ;) (expression_statement "uVar18 = 0x104;" (assignment_expression "uVar18 = 0x104" identifier = number_literal) ;) (expression_statement "(dfa->lex).lasttok = 0x104;" (assignment_expression "(dfa->lex).lasttok = 0x104" (field_expression "(dfa->lex).lasttok" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(dfa->lex).ptr = (char *)(local_5c + 1);" (assignment_expression "(dfa->lex).ptr = (char *)(local_5c + 1)" (field_expression "(dfa->lex).ptr" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(char *)(local_5c + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_5c + 1)" ( (binary_expression "local_5c + 1" identifier + number_literal) )))) ;) (expression_statement "(dfa->lex).left = (int)pbVar1 - (int)(local_5c + 1);" (assignment_expression "(dfa->lex).left = (int)pbVar1 - (int)(local_5c + 1)" (field_expression "(dfa->lex).left" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = (binary_expression "(int)pbVar1 - (int)(local_5c + 1)" (cast_expression "(int)pbVar1" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)(local_5c + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_5c + 1)" ( (binary_expression "local_5c + 1" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) }))) }))) }))) (labeled_statement "LAB_00023a04:\n      if ((uVar18 & 0x200000) == 0) {\n        pcVar13 = "invalid content of \\{\\}";\n        pbVar17 = pbVar15;\nLAB_00023a1b:\n        pcVar13 = (char *)dcgettext(0,pcVar13,5,pbVar17);\n                    /* WARNING: Subroutine does not return */\n        dfaerror(pcVar13);\n      }" statement_identifier : (if_statement "if ((uVar18 & 0x200000) == 0) {\n        pcVar13 = "invalid content of \\{\\}";\n        pbVar17 = pbVar15;\nLAB_00023a1b:\n        pcVar13 = (char *)dcgettext(0,pcVar13,5,pbVar17);\n                    /* WARNING: Subroutine does not return */\n        dfaerror(pcVar13);\n      }" if (parenthesized_expression "((uVar18 & 0x200000) == 0)" ( (binary_expression "(uVar18 & 0x200000) == 0" (parenthesized_expression "(uVar18 & 0x200000)" ( (binary_expression "uVar18 & 0x200000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        pcVar13 = "invalid content of \\{\\}";\n        pbVar17 = pbVar15;\nLAB_00023a1b:\n        pcVar13 = (char *)dcgettext(0,pcVar13,5,pbVar17);\n                    /* WARNING: Subroutine does not return */\n        dfaerror(pcVar13);\n      }" { (expression_statement "pcVar13 = "invalid content of \\{\\}";" (assignment_expression "pcVar13 = "invalid content of \\{\\}"" identifier = (string_literal ""invalid content of \\{\\}"" " string_content escape_sequence string_content escape_sequence string_content ")) ;) (expression_statement "pbVar17 = pbVar15;" (assignment_expression "pbVar17 = pbVar15" identifier = identifier) ;) (labeled_statement "LAB_00023a1b:\n        pcVar13 = (char *)dcgettext(0,pcVar13,5,pbVar17);" statement_identifier : (expression_statement "pcVar13 = (char *)dcgettext(0,pcVar13,5,pbVar17);" (assignment_expression "pcVar13 = (char *)dcgettext(0,pcVar13,5,pbVar17)" identifier = (cast_expression "(char *)dcgettext(0,pcVar13,5,pbVar17)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar13,5,pbVar17)" identifier (argument_list "(0,pcVar13,5,pbVar17)" ( number_literal , identifier , number_literal , identifier ))))) ;)) comment (expression_statement "dfaerror(pcVar13);" (call_expression "dfaerror(pcVar13)" identifier (argument_list "(pcVar13)" ( identifier ))) ;) }))) })) (expression_statement "cVar16 = (dfa->localeinfo).multibyte;" (assignment_expression "cVar16 = (dfa->localeinfo).multibyte" identifier = (field_expression "(dfa->localeinfo).multibyte" (parenthesized_expression "(dfa->localeinfo)" ( (field_expression "dfa->localeinfo" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar18 = 0x7b;" (assignment_expression "uVar18 = 0x7b" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x72:\n    bVar21 = 0;\nLAB_000233fa:\n    uVar18 = (dfa->syntax).syntax_bits;\n    if (((uVar18 & 0x400) != 0) || ((((byte)(uVar18 >> 0xf) ^ 1) & 1) != bVar21)) {\n      cVar16 = (dfa->localeinfo).multibyte;\n      uVar18 = 0x7c;\n      break;\n    }\nLAB_000238f1:\n    (dfa->lex).laststart = true;\n    uVar18 = 0x106;\n    (dfa->lex).lasttok = 0x106;\n    goto LAB_0002318d;" case number_literal : (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000233fa:\n    uVar18 = (dfa->syntax).syntax_bits;" statement_identifier : (expression_statement "uVar18 = (dfa->syntax).syntax_bits;" (assignment_expression "uVar18 = (dfa->syntax).syntax_bits" identifier = (field_expression "(dfa->syntax).syntax_bits" (parenthesized_expression "(dfa->syntax)" ( (field_expression "dfa->syntax" identifier -> field_identifier) )) . field_identifier)) ;)) (if_statement "if (((uVar18 & 0x400) != 0) || ((((byte)(uVar18 >> 0xf) ^ 1) & 1) != bVar21)) {\n      cVar16 = (dfa->localeinfo).multibyte;\n      uVar18 = 0x7c;\n      break;\n    }" if (parenthesized_expression "(((uVar18 & 0x400) != 0) || ((((byte)(uVar18 >> 0xf) ^ 1) & 1) != bVar21))" ( (binary_expression "((uVar18 & 0x400) != 0) || ((((byte)(uVar18 >> 0xf) ^ 1) & 1) != bVar21)" (parenthesized_expression "((uVar18 & 0x400) != 0)" ( (binary_expression "(uVar18 & 0x400) != 0" (parenthesized_expression "(uVar18 & 0x400)" ( (binary_expression "uVar18 & 0x400" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "((((byte)(uVar18 >> 0xf) ^ 1) & 1) != bVar21)" ( (binary_expression "(((byte)(uVar18 >> 0xf) ^ 1) & 1) != bVar21" (parenthesized_expression "(((byte)(uVar18 >> 0xf) ^ 1) & 1)" ( (binary_expression "((byte)(uVar18 >> 0xf) ^ 1) & 1" (parenthesized_expression "((byte)(uVar18 >> 0xf) ^ 1)" ( (binary_expression "(byte)(uVar18 >> 0xf) ^ 1" (call_expression "(byte)(uVar18 >> 0xf)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar18 >> 0xf)" ( (binary_expression "uVar18 >> 0xf" identifier >> number_literal) ))) ^ number_literal) )) & number_literal) )) != identifier) ))) )) (compound_statement "{\n      cVar16 = (dfa->localeinfo).multibyte;\n      uVar18 = 0x7c;\n      break;\n    }" { (expression_statement "cVar16 = (dfa->localeinfo).multibyte;" (assignment_expression "cVar16 = (dfa->localeinfo).multibyte" identifier = (field_expression "(dfa->localeinfo).multibyte" (parenthesized_expression "(dfa->localeinfo)" ( (field_expression "dfa->localeinfo" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar18 = 0x7c;" (assignment_expression "uVar18 = 0x7c" identifier = number_literal) ;) (break_statement "break;" break ;) })) (labeled_statement "LAB_000238f1:\n    (dfa->lex).laststart = true;" statement_identifier : (expression_statement "(dfa->lex).laststart = true;" (assignment_expression "(dfa->lex).laststart = true" (field_expression "(dfa->lex).laststart" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = true) ;)) (expression_statement "uVar18 = 0x106;" (assignment_expression "uVar18 = 0x106" identifier = number_literal) ;) (expression_statement "(dfa->lex).lasttok = 0x106;" (assignment_expression "(dfa->lex).lasttok = 0x106" (field_expression "(dfa->lex).lasttok" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;)) })) (labeled_statement "LAB_00023160:\n  (dfa->lex).laststart = false;" statement_identifier : (expression_statement "(dfa->lex).laststart = false;" (assignment_expression "(dfa->lex).laststart = false" (field_expression "(dfa->lex).laststart" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = false) ;)) (if_statement "if (cVar16 == '\0') {\n    if (((dfa->syntax).case_fold != false) &&\n       (ppuVar9 = __ctype_b_loc(), (*(byte *)((int)*ppuVar9 + uVar18 * 2 + 1) & 4) != 0)) {\n      uVar8 = 0;\n      do {\n        *(undefined4 *)((int)ccl.w + uVar8) = 0;\n        uVar8 = uVar8 + 4;\n      } while (uVar8 < 0x20);\n      setbit_case_fold_c(uVar18,&ccl);\nLAB_000237bd:\n      pVar12 = charclass_index(dfa,&ccl);\n      uVar18 = pVar12 + 0x114;\n    }\n    (dfa->lex).lasttok = uVar18;\n  }\n  else {\n    (dfa->lex).lasttok = 0x109;\n    uVar18 = 0x109;\n  }" if (parenthesized_expression "(cVar16 == '\0')" ( (binary_expression "cVar16 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    if (((dfa->syntax).case_fold != false) &&\n       (ppuVar9 = __ctype_b_loc(), (*(byte *)((int)*ppuVar9 + uVar18 * 2 + 1) & 4) != 0)) {\n      uVar8 = 0;\n      do {\n        *(undefined4 *)((int)ccl.w + uVar8) = 0;\n        uVar8 = uVar8 + 4;\n      } while (uVar8 < 0x20);\n      setbit_case_fold_c(uVar18,&ccl);\nLAB_000237bd:\n      pVar12 = charclass_index(dfa,&ccl);\n      uVar18 = pVar12 + 0x114;\n    }\n    (dfa->lex).lasttok = uVar18;\n  }" { (if_statement "if (((dfa->syntax).case_fold != false) &&\n       (ppuVar9 = __ctype_b_loc(), (*(byte *)((int)*ppuVar9 + uVar18 * 2 + 1) & 4) != 0)) {\n      uVar8 = 0;\n      do {\n        *(undefined4 *)((int)ccl.w + uVar8) = 0;\n        uVar8 = uVar8 + 4;\n      } while (uVar8 < 0x20);\n      setbit_case_fold_c(uVar18,&ccl);\nLAB_000237bd:\n      pVar12 = charclass_index(dfa,&ccl);\n      uVar18 = pVar12 + 0x114;\n    }" if (parenthesized_expression "(((dfa->syntax).case_fold != false) &&\n       (ppuVar9 = __ctype_b_loc(), (*(byte *)((int)*ppuVar9 + uVar18 * 2 + 1) & 4) != 0))" ( (binary_expression "((dfa->syntax).case_fold != false) &&\n       (ppuVar9 = __ctype_b_loc(), (*(byte *)((int)*ppuVar9 + uVar18 * 2 + 1) & 4) != 0)" (parenthesized_expression "((dfa->syntax).case_fold != false)" ( (binary_expression "(dfa->syntax).case_fold != false" (field_expression "(dfa->syntax).case_fold" (parenthesized_expression "(dfa->syntax)" ( (field_expression "dfa->syntax" identifier -> field_identifier) )) . field_identifier) != false) )) && (parenthesized_expression "(ppuVar9 = __ctype_b_loc(), (*(byte *)((int)*ppuVar9 + uVar18 * 2 + 1) & 4) != 0)" ( (comma_expression "ppuVar9 = __ctype_b_loc(), (*(byte *)((int)*ppuVar9 + uVar18 * 2 + 1) & 4) != 0" (assignment_expression "ppuVar9 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) , (binary_expression "(*(byte *)((int)*ppuVar9 + uVar18 * 2 + 1) & 4) != 0" (parenthesized_expression "(*(byte *)((int)*ppuVar9 + uVar18 * 2 + 1) & 4)" ( (binary_expression "*(byte *)((int)*ppuVar9 + uVar18 * 2 + 1) & 4" (pointer_expression "*(byte *)((int)*ppuVar9 + uVar18 * 2 + 1)" * (cast_expression "(byte *)((int)*ppuVar9 + uVar18 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*ppuVar9 + uVar18 * 2 + 1)" ( (binary_expression "(int)*ppuVar9 + uVar18 * 2 + 1" (binary_expression "(int)*ppuVar9 + uVar18 * 2" (cast_expression "(int)*ppuVar9" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*ppuVar9" * identifier)) + (binary_expression "uVar18 * 2" identifier * number_literal)) + number_literal) )))) & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n      uVar8 = 0;\n      do {\n        *(undefined4 *)((int)ccl.w + uVar8) = 0;\n        uVar8 = uVar8 + 4;\n      } while (uVar8 < 0x20);\n      setbit_case_fold_c(uVar18,&ccl);\nLAB_000237bd:\n      pVar12 = charclass_index(dfa,&ccl);\n      uVar18 = pVar12 + 0x114;\n    }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (do_statement "do {\n        *(undefined4 *)((int)ccl.w + uVar8) = 0;\n        uVar8 = uVar8 + 4;\n      } while (uVar8 < 0x20);" do (compound_statement "{\n        *(undefined4 *)((int)ccl.w + uVar8) = 0;\n        uVar8 = uVar8 + 4;\n      }" { (expression_statement "*(undefined4 *)((int)ccl.w + uVar8) = 0;" (assignment_expression "*(undefined4 *)((int)ccl.w + uVar8) = 0" (pointer_expression "*(undefined4 *)((int)ccl.w + uVar8)" * (cast_expression "(undefined4 *)((int)ccl.w + uVar8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ccl.w + uVar8)" ( (binary_expression "(int)ccl.w + uVar8" (cast_expression "(int)ccl.w" ( (type_descriptor "int" primitive_type) ) (field_expression "ccl.w" identifier . field_identifier)) + identifier) )))) = number_literal) ;) (expression_statement "uVar8 = uVar8 + 4;" (assignment_expression "uVar8 = uVar8 + 4" identifier = (binary_expression "uVar8 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar8 < 0x20)" ( (binary_expression "uVar8 < 0x20" identifier < number_literal) )) ;) (expression_statement "setbit_case_fold_c(uVar18,&ccl);" (call_expression "setbit_case_fold_c(uVar18,&ccl)" identifier (argument_list "(uVar18,&ccl)" ( identifier , (pointer_expression "&ccl" & identifier) ))) ;) (labeled_statement "LAB_000237bd:\n      pVar12 = charclass_index(dfa,&ccl);" statement_identifier : (expression_statement "pVar12 = charclass_index(dfa,&ccl);" (assignment_expression "pVar12 = charclass_index(dfa,&ccl)" identifier = (call_expression "charclass_index(dfa,&ccl)" identifier (argument_list "(dfa,&ccl)" ( identifier , (pointer_expression "&ccl" & identifier) )))) ;)) (expression_statement "uVar18 = pVar12 + 0x114;" (assignment_expression "uVar18 = pVar12 + 0x114" identifier = (binary_expression "pVar12 + 0x114" identifier + number_literal)) ;) })) (expression_statement "(dfa->lex).lasttok = uVar18;" (assignment_expression "(dfa->lex).lasttok = uVar18" (field_expression "(dfa->lex).lasttok" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = identifier) ;) }) (else_clause "else {\n    (dfa->lex).lasttok = 0x109;\n    uVar18 = 0x109;\n  }" else (compound_statement "{\n    (dfa->lex).lasttok = 0x109;\n    uVar18 = 0x109;\n  }" { (expression_statement "(dfa->lex).lasttok = 0x109;" (assignment_expression "(dfa->lex).lasttok = 0x109" (field_expression "(dfa->lex).lasttok" (parenthesized_expression "(dfa->lex)" ( (field_expression "dfa->lex" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "uVar18 = 0x109;" (assignment_expression "uVar18 = 0x109" identifier = number_literal) ;) }))) (labeled_statement "LAB_0002318d:\n  if (iVar3 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar18;\n  }" statement_identifier : (if_statement "if (iVar3 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar18;\n  }" if (parenthesized_expression "(iVar3 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar3 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return uVar18;\n  }" { (return_statement "return uVar18;" return identifier ;) }))) comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "uint __regparm3 FUN_000230c0(uint *param_1)\n\n{\n  int iVar1;\n  ushort *puVar2;\n  byte *pbVar3;\n  bool bVar4;\n  uint uVar5;\n  ushort **ppuVar6;\n  byte *pbVar7;\n  char *pcVar8;\n  size_t sVar9;\n  int iVar10;\n  undefined4 uVar11;\n  byte *pbVar12;\n  byte *extraout_ECX;\n  undefined1 *puVar13;\n  undefined1 *puVar14;\n  byte **ppbVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  undefined1 *puVar18;\n  uint uVar19;\n  uint *puVar20;\n  int in_GS_OFFSET;\n  byte bVar21;\n  undefined4 uStackY_80;\n  byte *pbStack_74;\n  uint *puStack_70;\n  undefined1 auStack_6c [12];\n  byte *local_60;\n  byte *local_5c [2];\n  byte bStack_51;\n  uint auStack_50 [4];\n  uint local_40 [11];\n  undefined4 uStack_14;\n  \n  bVar21 = 0;\n  uStack_14 = 0x230cb;\n  pbVar12 = (byte *)param_1[0x97];\n  local_40[8] = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  if (pbVar12 == (byte *)0x0) {\n    param_1[0x98] = 0xffffffff;\n    uVar19 = 0xffffffff;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;\n  }\n  pbVar7 = (byte *)param_1[0x96];\n  uVar19 = param_1[*pbVar7 + 0x10d];\n  if (uVar19 == 0xffffffff) {\n    puStack_70 = param_1 + 0xb2;\n    pbStack_74 = pbVar12;\n    uVar5 = FUN_0002b6f0(auStack_50 + 3,pbVar7);\n    if (0xfffffffc < uVar5 - 1) {\n      param_1[0xb2] = 0;\n      pbVar7 = (byte *)param_1[0x96];\n      param_1[0xb3] = 0;\n      pbVar12 = (byte *)param_1[0x97];\n      goto LAB_00023107;\n    }\n    pbVar12 = (byte *)param_1[0x97];\n    param_1[0x9d] = uVar5;\n    param_1[0x9c] = auStack_50[3];\n    pbVar7 = (byte *)param_1[0x96];\n    if (uVar5 == 1) goto LAB_00023117;\ncode_r0x00023235:\n    uVar19 = 0xffffffff;\n    param_1[0x96] = (uint)(pbVar7 + uVar5);\n    bVar21 = (byte)param_1[0xcc];\n    param_1[0x97] = (int)pbVar12 - uVar5;\n    puVar13 = auStack_6c;\n    goto LAB_00023160;\n  }\nLAB_00023107:\n  param_1[0x9c] = uVar19;\n  param_1[0x9d] = 1;\nLAB_00023117:\n  puVar14 = auStack_6c;\n  puVar18 = auStack_6c;\n  puVar16 = auStack_6c;\n  puVar17 = auStack_6c;\n  puVar13 = auStack_6c;\n  uVar19 = (uint)*pbVar7;\n  local_5c[0] = pbVar7 + 1;\n  param_1[0x96] = (uint)local_5c[0];\n  local_60 = pbVar12 + -1;\n  param_1[0x97] = (uint)local_60;\n  if (0x72 < (byte)(uVar19 - 10)) goto LAB_00023150;\n  uVar5 = uVar19 - 10 & 0xff;\n  switch(uVar5) {\n  case 0:\n    if (((*param_1 & 0x400) != 0) || ((*param_1 & 0x800) == 0)) {\ncode_r0x0002359b:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 10;\n      puVar13 = auStack_6c;\n      break;\n    }\n    goto code_r0x000238f1;\n  default:\n    goto LAB_00023150;\n  case 0x1a:\n    uVar19 = *param_1;\n    if ((((((uVar19 & 8) != 0) || (local_60 == (byte *)0x0)) ||\n         ((pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)))) ||\n        ((pbVar12 = (byte *)((uVar19 >> 0xf ^ 1) & 1), pbVar12 < local_60 &&\n         (local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c)))) ||\n       (((uVar19 & 0x800) != 0 && (pbVar7[1] == 10)))) {\ncode_r0x00023868:\n      param_1[0x98] = 0x10d;\n      uVar19 = 0x10d;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x00023673:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x24;\n    puVar13 = auStack_6c;\n    break;\n  case 0x1d:\ncode_r0x00023690:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x27;\n    puVar13 = auStack_6c;\n    break;\n  case 0x1e:\n    bVar21 = 0;\ncode_r0x00023262:\n    if ((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) {\n      param_1[0x99] = param_1[0x99] + 1;\n      uVar19 = 0x107;\n      *(byte *)(param_1 + 0xa3) = 1;\n      param_1[0x98] = 0x107;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x28;\n    puVar13 = auStack_6c;\n    break;\n  case 0x1f:\n    bVar21 = 0;\ncode_r0x0002351a:\n    if (((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) &&\n       ((param_1[0x99] != 0 || ((*param_1 & 0x20000) == 0)))) {\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x108;\n      param_1[0x99] = param_1[0x99] - 1;\n      param_1[0x98] = 0x108;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x29;\n    puVar13 = auStack_6c;\n    break;\n  case 0x20:\n    if (((*param_1 & 0x10) != 0) || ((byte)param_1[0xa3] == 0)) {\n      param_1[0x98] = 0x102;\n      uVar19 = 0x102;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x00023894:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x2a;\n    puVar13 = auStack_6c;\n    break;\n  case 0x21:\n    bVar21 = 0;\ncode_r0x000234d2:\n    uVar19 = *param_1;\n    if ((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))) {\n      param_1[0x98] = 0x103;\n      uVar19 = 0x103;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x2b;\n    puVar13 = auStack_6c;\n    break;\n  case 0x24:\n    bVar4 = false;\ncode_r0x0002336a:\n    bVar21 = (byte)param_1[0xcc];\n    if (!bVar4) {\n      uVar5 = param_1[0x95];\n      if (uVar5 == 0xffffffff) {\n        local_40[0] = 0xffffffff;\n        local_40[1] = 0xffffffff;\n        local_40[2] = 0xffffffff;\n        local_40[3] = 0xffffffff;\n        local_40[4] = 0xffffffff;\n        local_40[5] = 0xffffffff;\n        local_40[6] = 0xffffffff;\n        local_40[7] = 0xffffffff;\n        if ((*param_1 & 0x40) == 0) {\n          local_40[0] = 0xfffffbff;\n        }\n        if ((*param_1 & 0x80) != 0) {\n          local_40[0] = local_40[0] & 0xfffffffe;\n        }\n        if (bVar21 != 0) {\n          uVar19 = 0;\n          do {\n            if (param_1[uVar19 + 0x10d] == 0xffffffff) {\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }\n            uVar19 = uVar19 + 1;\n          } while (uVar19 != 0x100);\n        }\n        puStack_70 = (uint *)&UNK_000239cf;\n        uVar5 = FUN_0001e6a0();\n        bVar21 = (byte)param_1[0xcc];\n        param_1[0x95] = uVar5;\n      }\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x10a;\n      if (bVar21 == 0) {\n        uVar19 = uVar5 + 0x114;\n      }\n      param_1[0x98] = uVar19;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    uVar19 = 0x2e;\n    puVar13 = auStack_6c;\n    break;\n  case 0x32:\ncode_r0x000236f8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3c;\n    puVar13 = auStack_6c;\n    break;\n  case 0x34:\ncode_r0x000236e0:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3e;\n    puVar13 = auStack_6c;\n    break;\n  case 0x35:\n    bVar21 = 0;\ncode_r0x000233b2:\n    uVar19 = *param_1;\n    if ((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))) {\n      param_1[0x98] = 0x101;\n      uVar19 = 0x101;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3f;\n    puVar13 = auStack_6c;\n    break;\n  case 0x38:\ncode_r0x00023710:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x42;\n    puVar13 = auStack_6c;\n    break;\n  case 0x49:\n  case 0x69:\n    bVar4 = false;\ncode_r0x0002342a:\n    bVar21 = (byte)param_1[0xcc];\n    puVar13 = auStack_6c;\n    if ((!bVar4) || (puVar13 = auStack_6c, (*param_1 & 0x80000) != 0)) break;\n    if (bVar21 != 0) {\n      pcVar8 = &UNK_0002f468 + (uVar19 == 0x73);\ncode_r0x0002345c:\n      param_1[0x96] = (uint)pcVar8;\n      sVar9 = strlen(pcVar8);\n      param_1[0x97] = sVar9;\n      puStack_70 = (uint *)&UNK_0002347b;\n      uVar19 = FUN_00021f80();\n      *(byte *)(param_1 + 0xa3) = 0;\n      param_1[0x98] = uVar19;\n      param_1[0x96] = (uint)local_5c[0];\n      param_1[0x97] = (uint)local_60;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    uVar5 = 0;\n    do {\n      *(undefined4 *)((int)local_40 + uVar5) = 0;\n      uVar5 = uVar5 + 4;\n    } while (uVar5 < 0x20);\n    puStack_70 = (uint *)&UNK_00023ab3;\n    ppuVar6 = __ctype_b_loc();\n    uVar5 = 0;\n    puVar2 = *ppuVar6;\n    do {\n      if ((*(byte *)((int)puVar2 + uVar5 * 2 + 1) & 0x20) != 0) {\n        local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n      }\n      uVar5 = uVar5 + 1;\n    } while (uVar5 != 0x100);\n    if (uVar19 == 0x53) {\ncode_r0x00023b34:\n      local_40[0] = ~local_40[0];\n      local_40[1] = ~local_40[1];\n      local_40[2] = ~local_40[2];\n      local_40[3] = ~local_40[3];\n      local_40[4] = ~local_40[4];\n      local_40[5] = ~local_40[5];\n      local_40[6] = ~local_40[6];\n      local_40[7] = ~local_40[7];\n    }\ncode_r0x00023ae7:\n    *(byte *)(param_1 + 0xa3) = 0;\n    goto code_r0x000237bd;\n  case 0x51:\n    *(byte *)(param_1 + 0xa3) = 0;\n    puStack_70 = (uint *)&UNK_0002357e;\n    uVar19 = FUN_00021f80();\n    param_1[0x98] = uVar19;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;\n  case 0x52:\n    if (local_60 == (byte *)0x0) {\n      pcVar8 = "unfinished \\ escape";\n      ppbVar15 = &pbStack_74;\n      pbStack_74 = (byte *)0x5;\n      puStack_70 = (uint *)((int)&__DT_PLTGOT + *(int *)(&DAT_0002ef08 + uVar5 * 4));\n      goto code_r0x00023a1b;\n    }\n    pbVar12 = (byte *)param_1[pbVar7[1] + 0x10d];\n    if (pbVar12 == (byte *)0xffffffff) {\n      pbStack_74 = local_60;\n      puStack_70 = param_1 + 0xb2;\n      local_5c[1] = pbVar12;\n      uVar5 = FUN_0002b6f0(auStack_50 + 3,local_5c[0]);\n      if (0xfffffffc < uVar5 - 1) {\n        puVar20 = param_1 + 0xb2;\n        for (iVar10 = 2; iVar10 != 0; iVar10 = iVar10 + -1) {\n          *puVar20 = 0;\n          puVar20 = puVar20 + (uint)bVar21 * -2 + 1;\n        }\n        local_5c[0] = (byte *)param_1[0x96];\n        local_60 = (byte *)param_1[0x97];\n        pbVar12 = local_5c[1];\n        goto code_r0x00023748;\n      }\n      pbVar12 = (byte *)param_1[0x97];\n      param_1[0x9d] = uVar5;\n      param_1[0x9c] = auStack_50[3];\n      pbVar7 = (byte *)param_1[0x96];\n      if (uVar5 != 1) goto code_r0x00023235;\n    }\n    else {\ncode_r0x00023748:\n      param_1[0x9d] = 1;\n      param_1[0x9c] = (uint)pbVar12;\n      pbVar12 = local_60;\n      pbVar7 = local_5c[0];\n    }\n    uVar19 = (uint)*pbVar7;\n    local_5c[0] = pbVar7 + 1;\n    param_1[0x96] = (uint)(pbVar7 + 1);\n    local_60 = pbVar12 + -1;\n    param_1[0x97] = (uint)(pbVar12 + -1);\n    switch(uVar19 - 10 & 0xff) {\n    case 0:\n      goto code_r0x0002359b;\n    case 0x1a:\n      goto code_r0x00023673;\n    case 0x1d:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023868;\n      goto code_r0x00023690;\n    case 0x1e:\n      bVar21 = 1;\n      goto code_r0x00023262;\n    case 0x1f:\n      bVar21 = 1;\n      goto code_r0x0002351a;\n    case 0x20:\n      goto code_r0x00023894;\n    case 0x21:\n      bVar21 = 1;\n      goto code_r0x000234d2;\n    case 0x24:\n      bVar4 = true;\n      goto code_r0x0002336a;\n    case 0x27:\n    case 0x28:\n    case 0x29:\n    case 0x2a:\n    case 0x2b:\n    case 0x2c:\n    case 0x2d:\n    case 0x2e:\n    case 0x2f:\n      if ((*param_1 & 0x4000) == 0) {\n        *(byte *)(param_1 + 0xa3) = 0;\n        uVar19 = 0x112;\n        param_1[0x98] = 0x112;\n        goto LAB_0002318d;\n      }\n    default:\nLAB_00023150:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      break;\n    case 0x32:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10e;\n        uVar19 = 0x10e;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236f8;\n    case 0x34:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10f;\n        uVar19 = 0x10f;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236e0;\n    case 0x35:\n      bVar21 = 1;\n      goto code_r0x000233b2;\n    case 0x38:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x111;\n        uVar19 = 0x111;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x00023710;\n    case 0x49:\n    case 0x69:\n      bVar4 = true;\n      goto code_r0x0002342a;\n    case 0x4d:\n    case 0x6d:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      if ((*param_1 & 0x80000) != 0) break;\n      if (bVar21 != 0) {\n        pcVar8 = &UNK_0002f474 + (uVar19 == 0x77);\n        goto code_r0x0002345c;\n      }\n      uVar5 = 0;\n      do {\n        *(undefined4 *)((int)local_40 + uVar5) = 0;\n        uVar5 = uVar5 + 4;\n      } while (uVar5 < 0x20);\n      uVar5 = 0;\n      do {\n        if (*(byte *)((int)param_1 + uVar5 + 8) == 2) {\n          local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 != 0x100);\n      if (uVar19 == 0x57) goto code_r0x00023b34;\n      goto code_r0x00023ae7;\n    case 0x51:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5b;\n      puVar13 = auStack_6c;\n      break;\n    case 0x52:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5c;\n      puVar13 = auStack_6c;\n      break;\n    case 0x54:\n      goto code_r0x000235d7;\n    case 0x56:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023880;\n      goto code_r0x000236c8;\n    case 0x58:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x110;\n        uVar19 = 0x110;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236a8;\n    case 0x71:\n      bStack_51 = 1;\n      goto code_r0x00023295;\n    case 0x72:\n      bVar21 = 1;\n      goto code_r0x000233fa;\n    }\n    break;\n  case 0x54:\n    if ((((*param_1 & 8) != 0) || (param_1[0x98] - 0x106 < 2)) || (param_1[0x98] == 0xffffffff)) {\ncode_r0x00023880:\n      param_1[0x98] = 0x10c;\n      uVar19 = 0x10c;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x000235d7:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x5e;\n    puVar13 = auStack_6c;\n    break;\n  case 0x56:\ncode_r0x000236c8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x60;\n    puVar13 = auStack_6c;\n    break;\n  case 0x58:\ncode_r0x000236a8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x62;\n    puVar13 = auStack_6c;\n    break;\n  case 0x71:\n    bStack_51 = 0;\ncode_r0x00023295:\n    auStack_50[0] = *param_1;\n    puVar13 = auStack_6c;\n    if ((((auStack_50[0] & 0x200) != 0) &&\n        (puVar13 = auStack_6c, (((byte)(auStack_50[0] >> 0xc) ^ 1) & 1) == bStack_51)) &&\n       (((auStack_50[0] & 0x10) != 0 || (puVar13 = auStack_6c, (byte)param_1[0xa3] == 0)))) {\n      local_5c[1] = pbVar7 + (int)pbVar12;\n      param_1[0x9b] = 0xffffffff;\n      param_1[0x9a] = 0xffffffff;\n      if (local_5c[1] == local_5c[0]) {\ncode_r0x00023b5a:\n        puVar13 = auStack_6c;\n        if (bStack_51 == 0) goto code_r0x00023a30;\n      }\n      else {\n        bVar21 = pbVar7[1];\n        pbVar12 = (byte *)(int)(char)bVar21;\n        if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar7 = (byte *)0xffffffff;\n          local_60 = pbVar12;\n          do {\n            pbVar3 = local_60;\n            if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }\n            pbVar7 = pbVar3 + -0x30;\n            param_1[0x9a] = (uint)pbVar7;\n            local_5c[0] = local_5c[0] + 1;\n            if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }\n            bVar21 = *local_5c[0];\n            local_60 = (byte *)(int)(char)bVar21;\n            pbVar12 = (byte *)(int)(char)bVar21 + -0x30;\n          } while ((byte)pbVar12 < 10);\n          if (bVar21 == 0x2c) {\n            if ((int)pbVar7 < 0) goto code_r0x00023bed;\ncode_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;\n            if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }\n            bVar21 = local_5c[0][1];\n            if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            local_5c[0] = pbVar12;\n            goto code_r0x00023bd8;\n          }\n          param_1[0x9b] = (uint)pbVar7;\n          puVar17 = auStack_6c;\n          if (bStack_51 == 0) goto code_r0x00023a30;\n        }\n        else {\n          if (bVar21 == 0x2c) {\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }\ncode_r0x00023bd8:\n          if (bStack_51 == 0) goto code_r0x00023a3a;\n        }\n        puVar13 = auStack_6c;\n        if (*local_5c[0] == 0x5c) goto code_r0x00023a2b;\n      }\ncode_r0x00023a04:\n      if ((*(uint *)(puVar13 + 0x1c) & 0x200000) == 0) {\n        *(byte **)(puVar13 + -4) = pbVar12;\n        pcVar8 = "invalid content of \\{\\}";\n        ppbVar15 = (byte **)(puVar13 + -8);\n        *(undefined4 *)(puVar13 + -8) = 5;\ncode_r0x00023a1b:\n        while( true ) {\n          *(char **)((int)ppbVar15 + -4) = pcVar8;\n          puVar16 = (undefined1 *)((int)ppbVar15 + -8);\n          *(undefined4 *)((int)ppbVar15 + -8) = 0;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23;\n          uVar11 = dcgettext();\n          *(undefined4 *)((int)ppbVar15 + -8) = uVar11;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b;\n          FUN_0001be40();\n          pbVar12 = extraout_ECX;\ncode_r0x00023a2b:\n          *(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;\n          puVar17 = puVar16;\ncode_r0x00023a30:\n          puVar13 = puVar17;\n          puVar18 = puVar17;\n          if (*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)) break;\ncode_r0x00023a3a:\n          puVar13 = puVar18;\n          if ((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))\n          break;\n          uVar5 = param_1[0x9b];\n          if ((int)uVar5 < 0) {\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }\n          if ((int)uVar5 < (int)uVar19) break;\n          if ((int)uVar5 < 0x8000) goto code_r0x00023a66;\n          pcVar8 = "regular expression too big";\n          *(uint *)(puVar18 + -4) = uVar19;\n          ppbVar15 = (byte **)(puVar18 + -8);\n          *(undefined4 *)(puVar18 + -8) = 5;\n        }\n        goto code_r0x00023a04;\n      }\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x7b;\n    break;\n  case 0x72:\n    bVar21 = 0;\ncode_r0x000233fa:\n    if (((*param_1 & 0x400) != 0) || ((((byte)(*param_1 >> 0xf) ^ 1) & 1) != bVar21)) {\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x7c;\n      puVar13 = auStack_6c;\n      break;\n    }\ncode_r0x000238f1:\n    *(byte *)(param_1 + 0xa3) = 1;\n    uVar19 = 0x106;\n    param_1[0x98] = 0x106;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;\n  }\nLAB_00023160:\n  puVar14 = puVar13;\n  *(byte *)(param_1 + 0xa3) = 0;\n  if (bVar21 == 0) {\n    if (*(byte *)((int)param_1 + 5) != 0) {\n      *(undefined4 *)(puVar14 + -4) = 0x2317a;\n      ppuVar6 = __ctype_b_loc();\n      if ((*(byte *)((int)*ppuVar6 + uVar19 * 2 + 1) & 4) != 0) {\n        uVar19 = 0;\n        do {\n          *(undefined4 *)(puVar14 + uVar19 + 0x2c) = 0;\n          uVar19 = uVar19 + 4;\n        } while (uVar19 < 0x20);\n        *(undefined4 *)(puVar14 + -4) = 0x237bd;\n        FUN_0001da50();\ncode_r0x000237bd:\n        *(undefined4 *)(puVar14 + -4) = 0x237c6;\n        iVar10 = FUN_0001e6a0();\n        uVar19 = iVar10 + 0x114;\n      }\n    }\n    param_1[0x98] = uVar19;\n    puVar13 = puVar14;\n  }\n  else {\n    param_1[0x98] = 0x109;\n    uVar19 = 0x109;\n    puVar13 = puVar14;\n  }\nLAB_0002318d:\n  if (*(int *)(puVar13 + 0x4c) == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar19;\n  }\n                    \n  *(undefined **)(puVar13 + -4) = &UNK_00023c01;\n  FUN_0002c430();\n}\n\n" (function_definition "uint __regparm3 FUN_000230c0(uint *param_1)\n\n{\n  int iVar1;\n  ushort *puVar2;\n  byte *pbVar3;\n  bool bVar4;\n  uint uVar5;\n  ushort **ppuVar6;\n  byte *pbVar7;\n  char *pcVar8;\n  size_t sVar9;\n  int iVar10;\n  undefined4 uVar11;\n  byte *pbVar12;\n  byte *extraout_ECX;\n  undefined1 *puVar13;\n  undefined1 *puVar14;\n  byte **ppbVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  undefined1 *puVar18;\n  uint uVar19;\n  uint *puVar20;\n  int in_GS_OFFSET;\n  byte bVar21;\n  undefined4 uStackY_80;\n  byte *pbStack_74;\n  uint *puStack_70;\n  undefined1 auStack_6c [12];\n  byte *local_60;\n  byte *local_5c [2];\n  byte bStack_51;\n  uint auStack_50 [4];\n  uint local_40 [11];\n  undefined4 uStack_14;\n  \n  bVar21 = 0;\n  uStack_14 = 0x230cb;\n  pbVar12 = (byte *)param_1[0x97];\n  local_40[8] = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  if (pbVar12 == (byte *)0x0) {\n    param_1[0x98] = 0xffffffff;\n    uVar19 = 0xffffffff;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;\n  }\n  pbVar7 = (byte *)param_1[0x96];\n  uVar19 = param_1[*pbVar7 + 0x10d];\n  if (uVar19 == 0xffffffff) {\n    puStack_70 = param_1 + 0xb2;\n    pbStack_74 = pbVar12;\n    uVar5 = FUN_0002b6f0(auStack_50 + 3,pbVar7);\n    if (0xfffffffc < uVar5 - 1) {\n      param_1[0xb2] = 0;\n      pbVar7 = (byte *)param_1[0x96];\n      param_1[0xb3] = 0;\n      pbVar12 = (byte *)param_1[0x97];\n      goto LAB_00023107;\n    }\n    pbVar12 = (byte *)param_1[0x97];\n    param_1[0x9d] = uVar5;\n    param_1[0x9c] = auStack_50[3];\n    pbVar7 = (byte *)param_1[0x96];\n    if (uVar5 == 1) goto LAB_00023117;\ncode_r0x00023235:\n    uVar19 = 0xffffffff;\n    param_1[0x96] = (uint)(pbVar7 + uVar5);\n    bVar21 = (byte)param_1[0xcc];\n    param_1[0x97] = (int)pbVar12 - uVar5;\n    puVar13 = auStack_6c;\n    goto LAB_00023160;\n  }\nLAB_00023107:\n  param_1[0x9c] = uVar19;\n  param_1[0x9d] = 1;\nLAB_00023117:\n  puVar14 = auStack_6c;\n  puVar18 = auStack_6c;\n  puVar16 = auStack_6c;\n  puVar17 = auStack_6c;\n  puVar13 = auStack_6c;\n  uVar19 = (uint)*pbVar7;\n  local_5c[0] = pbVar7 + 1;\n  param_1[0x96] = (uint)local_5c[0];\n  local_60 = pbVar12 + -1;\n  param_1[0x97] = (uint)local_60;\n  if (0x72 < (byte)(uVar19 - 10)) goto LAB_00023150;\n  uVar5 = uVar19 - 10 & 0xff;\n  switch(uVar5) {\n  case 0:\n    if (((*param_1 & 0x400) != 0) || ((*param_1 & 0x800) == 0)) {\ncode_r0x0002359b:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 10;\n      puVar13 = auStack_6c;\n      break;\n    }\n    goto code_r0x000238f1;\n  default:\n    goto LAB_00023150;\n  case 0x1a:\n    uVar19 = *param_1;\n    if ((((((uVar19 & 8) != 0) || (local_60 == (byte *)0x0)) ||\n         ((pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)))) ||\n        ((pbVar12 = (byte *)((uVar19 >> 0xf ^ 1) & 1), pbVar12 < local_60 &&\n         (local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c)))) ||\n       (((uVar19 & 0x800) != 0 && (pbVar7[1] == 10)))) {\ncode_r0x00023868:\n      param_1[0x98] = 0x10d;\n      uVar19 = 0x10d;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x00023673:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x24;\n    puVar13 = auStack_6c;\n    break;\n  case 0x1d:\ncode_r0x00023690:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x27;\n    puVar13 = auStack_6c;\n    break;\n  case 0x1e:\n    bVar21 = 0;\ncode_r0x00023262:\n    if ((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) {\n      param_1[0x99] = param_1[0x99] + 1;\n      uVar19 = 0x107;\n      *(byte *)(param_1 + 0xa3) = 1;\n      param_1[0x98] = 0x107;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x28;\n    puVar13 = auStack_6c;\n    break;\n  case 0x1f:\n    bVar21 = 0;\ncode_r0x0002351a:\n    if (((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) &&\n       ((param_1[0x99] != 0 || ((*param_1 & 0x20000) == 0)))) {\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x108;\n      param_1[0x99] = param_1[0x99] - 1;\n      param_1[0x98] = 0x108;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x29;\n    puVar13 = auStack_6c;\n    break;\n  case 0x20:\n    if (((*param_1 & 0x10) != 0) || ((byte)param_1[0xa3] == 0)) {\n      param_1[0x98] = 0x102;\n      uVar19 = 0x102;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x00023894:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x2a;\n    puVar13 = auStack_6c;\n    break;\n  case 0x21:\n    bVar21 = 0;\ncode_r0x000234d2:\n    uVar19 = *param_1;\n    if ((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))) {\n      param_1[0x98] = 0x103;\n      uVar19 = 0x103;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x2b;\n    puVar13 = auStack_6c;\n    break;\n  case 0x24:\n    bVar4 = false;\ncode_r0x0002336a:\n    bVar21 = (byte)param_1[0xcc];\n    if (!bVar4) {\n      uVar5 = param_1[0x95];\n      if (uVar5 == 0xffffffff) {\n        local_40[0] = 0xffffffff;\n        local_40[1] = 0xffffffff;\n        local_40[2] = 0xffffffff;\n        local_40[3] = 0xffffffff;\n        local_40[4] = 0xffffffff;\n        local_40[5] = 0xffffffff;\n        local_40[6] = 0xffffffff;\n        local_40[7] = 0xffffffff;\n        if ((*param_1 & 0x40) == 0) {\n          local_40[0] = 0xfffffbff;\n        }\n        if ((*param_1 & 0x80) != 0) {\n          local_40[0] = local_40[0] & 0xfffffffe;\n        }\n        if (bVar21 != 0) {\n          uVar19 = 0;\n          do {\n            if (param_1[uVar19 + 0x10d] == 0xffffffff) {\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }\n            uVar19 = uVar19 + 1;\n          } while (uVar19 != 0x100);\n        }\n        puStack_70 = (uint *)&UNK_000239cf;\n        uVar5 = FUN_0001e6a0();\n        bVar21 = (byte)param_1[0xcc];\n        param_1[0x95] = uVar5;\n      }\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x10a;\n      if (bVar21 == 0) {\n        uVar19 = uVar5 + 0x114;\n      }\n      param_1[0x98] = uVar19;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    uVar19 = 0x2e;\n    puVar13 = auStack_6c;\n    break;\n  case 0x32:\ncode_r0x000236f8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3c;\n    puVar13 = auStack_6c;\n    break;\n  case 0x34:\ncode_r0x000236e0:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3e;\n    puVar13 = auStack_6c;\n    break;\n  case 0x35:\n    bVar21 = 0;\ncode_r0x000233b2:\n    uVar19 = *param_1;\n    if ((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))) {\n      param_1[0x98] = 0x101;\n      uVar19 = 0x101;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3f;\n    puVar13 = auStack_6c;\n    break;\n  case 0x38:\ncode_r0x00023710:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x42;\n    puVar13 = auStack_6c;\n    break;\n  case 0x49:\n  case 0x69:\n    bVar4 = false;\ncode_r0x0002342a:\n    bVar21 = (byte)param_1[0xcc];\n    puVar13 = auStack_6c;\n    if ((!bVar4) || (puVar13 = auStack_6c, (*param_1 & 0x80000) != 0)) break;\n    if (bVar21 != 0) {\n      pcVar8 = &UNK_0002f468 + (uVar19 == 0x73);\ncode_r0x0002345c:\n      param_1[0x96] = (uint)pcVar8;\n      sVar9 = strlen(pcVar8);\n      param_1[0x97] = sVar9;\n      puStack_70 = (uint *)&UNK_0002347b;\n      uVar19 = FUN_00021f80();\n      *(byte *)(param_1 + 0xa3) = 0;\n      param_1[0x98] = uVar19;\n      param_1[0x96] = (uint)local_5c[0];\n      param_1[0x97] = (uint)local_60;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    uVar5 = 0;\n    do {\n      *(undefined4 *)((int)local_40 + uVar5) = 0;\n      uVar5 = uVar5 + 4;\n    } while (uVar5 < 0x20);\n    puStack_70 = (uint *)&UNK_00023ab3;\n    ppuVar6 = __ctype_b_loc();\n    uVar5 = 0;\n    puVar2 = *ppuVar6;\n    do {\n      if ((*(byte *)((int)puVar2 + uVar5 * 2 + 1) & 0x20) != 0) {\n        local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n      }\n      uVar5 = uVar5 + 1;\n    } while (uVar5 != 0x100);\n    if (uVar19 == 0x53) {\ncode_r0x00023b34:\n      local_40[0] = ~local_40[0];\n      local_40[1] = ~local_40[1];\n      local_40[2] = ~local_40[2];\n      local_40[3] = ~local_40[3];\n      local_40[4] = ~local_40[4];\n      local_40[5] = ~local_40[5];\n      local_40[6] = ~local_40[6];\n      local_40[7] = ~local_40[7];\n    }\ncode_r0x00023ae7:\n    *(byte *)(param_1 + 0xa3) = 0;\n    goto code_r0x000237bd;\n  case 0x51:\n    *(byte *)(param_1 + 0xa3) = 0;\n    puStack_70 = (uint *)&UNK_0002357e;\n    uVar19 = FUN_00021f80();\n    param_1[0x98] = uVar19;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;\n  case 0x52:\n    if (local_60 == (byte *)0x0) {\n      pcVar8 = "unfinished \\ escape";\n      ppbVar15 = &pbStack_74;\n      pbStack_74 = (byte *)0x5;\n      puStack_70 = (uint *)((int)&__DT_PLTGOT + *(int *)(&DAT_0002ef08 + uVar5 * 4));\n      goto code_r0x00023a1b;\n    }\n    pbVar12 = (byte *)param_1[pbVar7[1] + 0x10d];\n    if (pbVar12 == (byte *)0xffffffff) {\n      pbStack_74 = local_60;\n      puStack_70 = param_1 + 0xb2;\n      local_5c[1] = pbVar12;\n      uVar5 = FUN_0002b6f0(auStack_50 + 3,local_5c[0]);\n      if (0xfffffffc < uVar5 - 1) {\n        puVar20 = param_1 + 0xb2;\n        for (iVar10 = 2; iVar10 != 0; iVar10 = iVar10 + -1) {\n          *puVar20 = 0;\n          puVar20 = puVar20 + (uint)bVar21 * -2 + 1;\n        }\n        local_5c[0] = (byte *)param_1[0x96];\n        local_60 = (byte *)param_1[0x97];\n        pbVar12 = local_5c[1];\n        goto code_r0x00023748;\n      }\n      pbVar12 = (byte *)param_1[0x97];\n      param_1[0x9d] = uVar5;\n      param_1[0x9c] = auStack_50[3];\n      pbVar7 = (byte *)param_1[0x96];\n      if (uVar5 != 1) goto code_r0x00023235;\n    }\n    else {\ncode_r0x00023748:\n      param_1[0x9d] = 1;\n      param_1[0x9c] = (uint)pbVar12;\n      pbVar12 = local_60;\n      pbVar7 = local_5c[0];\n    }\n    uVar19 = (uint)*pbVar7;\n    local_5c[0] = pbVar7 + 1;\n    param_1[0x96] = (uint)(pbVar7 + 1);\n    local_60 = pbVar12 + -1;\n    param_1[0x97] = (uint)(pbVar12 + -1);\n    switch(uVar19 - 10 & 0xff) {\n    case 0:\n      goto code_r0x0002359b;\n    case 0x1a:\n      goto code_r0x00023673;\n    case 0x1d:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023868;\n      goto code_r0x00023690;\n    case 0x1e:\n      bVar21 = 1;\n      goto code_r0x00023262;\n    case 0x1f:\n      bVar21 = 1;\n      goto code_r0x0002351a;\n    case 0x20:\n      goto code_r0x00023894;\n    case 0x21:\n      bVar21 = 1;\n      goto code_r0x000234d2;\n    case 0x24:\n      bVar4 = true;\n      goto code_r0x0002336a;\n    case 0x27:\n    case 0x28:\n    case 0x29:\n    case 0x2a:\n    case 0x2b:\n    case 0x2c:\n    case 0x2d:\n    case 0x2e:\n    case 0x2f:\n      if ((*param_1 & 0x4000) == 0) {\n        *(byte *)(param_1 + 0xa3) = 0;\n        uVar19 = 0x112;\n        param_1[0x98] = 0x112;\n        goto LAB_0002318d;\n      }\n    default:\nLAB_00023150:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      break;\n    case 0x32:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10e;\n        uVar19 = 0x10e;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236f8;\n    case 0x34:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10f;\n        uVar19 = 0x10f;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236e0;\n    case 0x35:\n      bVar21 = 1;\n      goto code_r0x000233b2;\n    case 0x38:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x111;\n        uVar19 = 0x111;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x00023710;\n    case 0x49:\n    case 0x69:\n      bVar4 = true;\n      goto code_r0x0002342a;\n    case 0x4d:\n    case 0x6d:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      if ((*param_1 & 0x80000) != 0) break;\n      if (bVar21 != 0) {\n        pcVar8 = &UNK_0002f474 + (uVar19 == 0x77);\n        goto code_r0x0002345c;\n      }\n      uVar5 = 0;\n      do {\n        *(undefined4 *)((int)local_40 + uVar5) = 0;\n        uVar5 = uVar5 + 4;\n      } while (uVar5 < 0x20);\n      uVar5 = 0;\n      do {\n        if (*(byte *)((int)param_1 + uVar5 + 8) == 2) {\n          local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 != 0x100);\n      if (uVar19 == 0x57) goto code_r0x00023b34;\n      goto code_r0x00023ae7;\n    case 0x51:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5b;\n      puVar13 = auStack_6c;\n      break;\n    case 0x52:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5c;\n      puVar13 = auStack_6c;\n      break;\n    case 0x54:\n      goto code_r0x000235d7;\n    case 0x56:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023880;\n      goto code_r0x000236c8;\n    case 0x58:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x110;\n        uVar19 = 0x110;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236a8;\n    case 0x71:\n      bStack_51 = 1;\n      goto code_r0x00023295;\n    case 0x72:\n      bVar21 = 1;\n      goto code_r0x000233fa;\n    }\n    break;\n  case 0x54:\n    if ((((*param_1 & 8) != 0) || (param_1[0x98] - 0x106 < 2)) || (param_1[0x98] == 0xffffffff)) {\ncode_r0x00023880:\n      param_1[0x98] = 0x10c;\n      uVar19 = 0x10c;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x000235d7:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x5e;\n    puVar13 = auStack_6c;\n    break;\n  case 0x56:\ncode_r0x000236c8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x60;\n    puVar13 = auStack_6c;\n    break;\n  case 0x58:\ncode_r0x000236a8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x62;\n    puVar13 = auStack_6c;\n    break;\n  case 0x71:\n    bStack_51 = 0;\ncode_r0x00023295:\n    auStack_50[0] = *param_1;\n    puVar13 = auStack_6c;\n    if ((((auStack_50[0] & 0x200) != 0) &&\n        (puVar13 = auStack_6c, (((byte)(auStack_50[0] >> 0xc) ^ 1) & 1) == bStack_51)) &&\n       (((auStack_50[0] & 0x10) != 0 || (puVar13 = auStack_6c, (byte)param_1[0xa3] == 0)))) {\n      local_5c[1] = pbVar7 + (int)pbVar12;\n      param_1[0x9b] = 0xffffffff;\n      param_1[0x9a] = 0xffffffff;\n      if (local_5c[1] == local_5c[0]) {\ncode_r0x00023b5a:\n        puVar13 = auStack_6c;\n        if (bStack_51 == 0) goto code_r0x00023a30;\n      }\n      else {\n        bVar21 = pbVar7[1];\n        pbVar12 = (byte *)(int)(char)bVar21;\n        if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar7 = (byte *)0xffffffff;\n          local_60 = pbVar12;\n          do {\n            pbVar3 = local_60;\n            if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }\n            pbVar7 = pbVar3 + -0x30;\n            param_1[0x9a] = (uint)pbVar7;\n            local_5c[0] = local_5c[0] + 1;\n            if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }\n            bVar21 = *local_5c[0];\n            local_60 = (byte *)(int)(char)bVar21;\n            pbVar12 = (byte *)(int)(char)bVar21 + -0x30;\n          } while ((byte)pbVar12 < 10);\n          if (bVar21 == 0x2c) {\n            if ((int)pbVar7 < 0) goto code_r0x00023bed;\ncode_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;\n            if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }\n            bVar21 = local_5c[0][1];\n            if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            local_5c[0] = pbVar12;\n            goto code_r0x00023bd8;\n          }\n          param_1[0x9b] = (uint)pbVar7;\n          puVar17 = auStack_6c;\n          if (bStack_51 == 0) goto code_r0x00023a30;\n        }\n        else {\n          if (bVar21 == 0x2c) {\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }\ncode_r0x00023bd8:\n          if (bStack_51 == 0) goto code_r0x00023a3a;\n        }\n        puVar13 = auStack_6c;\n        if (*local_5c[0] == 0x5c) goto code_r0x00023a2b;\n      }\ncode_r0x00023a04:\n      if ((*(uint *)(puVar13 + 0x1c) & 0x200000) == 0) {\n        *(byte **)(puVar13 + -4) = pbVar12;\n        pcVar8 = "invalid content of \\{\\}";\n        ppbVar15 = (byte **)(puVar13 + -8);\n        *(undefined4 *)(puVar13 + -8) = 5;\ncode_r0x00023a1b:\n        while( true ) {\n          *(char **)((int)ppbVar15 + -4) = pcVar8;\n          puVar16 = (undefined1 *)((int)ppbVar15 + -8);\n          *(undefined4 *)((int)ppbVar15 + -8) = 0;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23;\n          uVar11 = dcgettext();\n          *(undefined4 *)((int)ppbVar15 + -8) = uVar11;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b;\n          FUN_0001be40();\n          pbVar12 = extraout_ECX;\ncode_r0x00023a2b:\n          *(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;\n          puVar17 = puVar16;\ncode_r0x00023a30:\n          puVar13 = puVar17;\n          puVar18 = puVar17;\n          if (*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)) break;\ncode_r0x00023a3a:\n          puVar13 = puVar18;\n          if ((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))\n          break;\n          uVar5 = param_1[0x9b];\n          if ((int)uVar5 < 0) {\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }\n          if ((int)uVar5 < (int)uVar19) break;\n          if ((int)uVar5 < 0x8000) goto code_r0x00023a66;\n          pcVar8 = "regular expression too big";\n          *(uint *)(puVar18 + -4) = uVar19;\n          ppbVar15 = (byte **)(puVar18 + -8);\n          *(undefined4 *)(puVar18 + -8) = 5;\n        }\n        goto code_r0x00023a04;\n      }\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x7b;\n    break;\n  case 0x72:\n    bVar21 = 0;\ncode_r0x000233fa:\n    if (((*param_1 & 0x400) != 0) || ((((byte)(*param_1 >> 0xf) ^ 1) & 1) != bVar21)) {\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x7c;\n      puVar13 = auStack_6c;\n      break;\n    }\ncode_r0x000238f1:\n    *(byte *)(param_1 + 0xa3) = 1;\n    uVar19 = 0x106;\n    param_1[0x98] = 0x106;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;\n  }\nLAB_00023160:\n  puVar14 = puVar13;\n  *(byte *)(param_1 + 0xa3) = 0;\n  if (bVar21 == 0) {\n    if (*(byte *)((int)param_1 + 5) != 0) {\n      *(undefined4 *)(puVar14 + -4) = 0x2317a;\n      ppuVar6 = __ctype_b_loc();\n      if ((*(byte *)((int)*ppuVar6 + uVar19 * 2 + 1) & 4) != 0) {\n        uVar19 = 0;\n        do {\n          *(undefined4 *)(puVar14 + uVar19 + 0x2c) = 0;\n          uVar19 = uVar19 + 4;\n        } while (uVar19 < 0x20);\n        *(undefined4 *)(puVar14 + -4) = 0x237bd;\n        FUN_0001da50();\ncode_r0x000237bd:\n        *(undefined4 *)(puVar14 + -4) = 0x237c6;\n        iVar10 = FUN_0001e6a0();\n        uVar19 = iVar10 + 0x114;\n      }\n    }\n    param_1[0x98] = uVar19;\n    puVar13 = puVar14;\n  }\n  else {\n    param_1[0x98] = 0x109;\n    uVar19 = 0x109;\n    puVar13 = puVar14;\n  }\nLAB_0002318d:\n  if (*(int *)(puVar13 + 0x4c) == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar19;\n  }\n                    \n  *(undefined **)(puVar13 + -4) = &UNK_00023c01;\n  FUN_0002c430();\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_000230c0(uint *param_1)" identifier (parameter_list "(uint *param_1)" ( (parameter_declaration "uint *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  ushort *puVar2;\n  byte *pbVar3;\n  bool bVar4;\n  uint uVar5;\n  ushort **ppuVar6;\n  byte *pbVar7;\n  char *pcVar8;\n  size_t sVar9;\n  int iVar10;\n  undefined4 uVar11;\n  byte *pbVar12;\n  byte *extraout_ECX;\n  undefined1 *puVar13;\n  undefined1 *puVar14;\n  byte **ppbVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  undefined1 *puVar18;\n  uint uVar19;\n  uint *puVar20;\n  int in_GS_OFFSET;\n  byte bVar21;\n  undefined4 uStackY_80;\n  byte *pbStack_74;\n  uint *puStack_70;\n  undefined1 auStack_6c [12];\n  byte *local_60;\n  byte *local_5c [2];\n  byte bStack_51;\n  uint auStack_50 [4];\n  uint local_40 [11];\n  undefined4 uStack_14;\n  \n  bVar21 = 0;\n  uStack_14 = 0x230cb;\n  pbVar12 = (byte *)param_1[0x97];\n  local_40[8] = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  if (pbVar12 == (byte *)0x0) {\n    param_1[0x98] = 0xffffffff;\n    uVar19 = 0xffffffff;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;\n  }\n  pbVar7 = (byte *)param_1[0x96];\n  uVar19 = param_1[*pbVar7 + 0x10d];\n  if (uVar19 == 0xffffffff) {\n    puStack_70 = param_1 + 0xb2;\n    pbStack_74 = pbVar12;\n    uVar5 = FUN_0002b6f0(auStack_50 + 3,pbVar7);\n    if (0xfffffffc < uVar5 - 1) {\n      param_1[0xb2] = 0;\n      pbVar7 = (byte *)param_1[0x96];\n      param_1[0xb3] = 0;\n      pbVar12 = (byte *)param_1[0x97];\n      goto LAB_00023107;\n    }\n    pbVar12 = (byte *)param_1[0x97];\n    param_1[0x9d] = uVar5;\n    param_1[0x9c] = auStack_50[3];\n    pbVar7 = (byte *)param_1[0x96];\n    if (uVar5 == 1) goto LAB_00023117;\ncode_r0x00023235:\n    uVar19 = 0xffffffff;\n    param_1[0x96] = (uint)(pbVar7 + uVar5);\n    bVar21 = (byte)param_1[0xcc];\n    param_1[0x97] = (int)pbVar12 - uVar5;\n    puVar13 = auStack_6c;\n    goto LAB_00023160;\n  }\nLAB_00023107:\n  param_1[0x9c] = uVar19;\n  param_1[0x9d] = 1;\nLAB_00023117:\n  puVar14 = auStack_6c;\n  puVar18 = auStack_6c;\n  puVar16 = auStack_6c;\n  puVar17 = auStack_6c;\n  puVar13 = auStack_6c;\n  uVar19 = (uint)*pbVar7;\n  local_5c[0] = pbVar7 + 1;\n  param_1[0x96] = (uint)local_5c[0];\n  local_60 = pbVar12 + -1;\n  param_1[0x97] = (uint)local_60;\n  if (0x72 < (byte)(uVar19 - 10)) goto LAB_00023150;\n  uVar5 = uVar19 - 10 & 0xff;\n  switch(uVar5) {\n  case 0:\n    if (((*param_1 & 0x400) != 0) || ((*param_1 & 0x800) == 0)) {\ncode_r0x0002359b:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 10;\n      puVar13 = auStack_6c;\n      break;\n    }\n    goto code_r0x000238f1;\n  default:\n    goto LAB_00023150;\n  case 0x1a:\n    uVar19 = *param_1;\n    if ((((((uVar19 & 8) != 0) || (local_60 == (byte *)0x0)) ||\n         ((pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)))) ||\n        ((pbVar12 = (byte *)((uVar19 >> 0xf ^ 1) & 1), pbVar12 < local_60 &&\n         (local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c)))) ||\n       (((uVar19 & 0x800) != 0 && (pbVar7[1] == 10)))) {\ncode_r0x00023868:\n      param_1[0x98] = 0x10d;\n      uVar19 = 0x10d;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x00023673:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x24;\n    puVar13 = auStack_6c;\n    break;\n  case 0x1d:\ncode_r0x00023690:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x27;\n    puVar13 = auStack_6c;\n    break;\n  case 0x1e:\n    bVar21 = 0;\ncode_r0x00023262:\n    if ((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) {\n      param_1[0x99] = param_1[0x99] + 1;\n      uVar19 = 0x107;\n      *(byte *)(param_1 + 0xa3) = 1;\n      param_1[0x98] = 0x107;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x28;\n    puVar13 = auStack_6c;\n    break;\n  case 0x1f:\n    bVar21 = 0;\ncode_r0x0002351a:\n    if (((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) &&\n       ((param_1[0x99] != 0 || ((*param_1 & 0x20000) == 0)))) {\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x108;\n      param_1[0x99] = param_1[0x99] - 1;\n      param_1[0x98] = 0x108;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x29;\n    puVar13 = auStack_6c;\n    break;\n  case 0x20:\n    if (((*param_1 & 0x10) != 0) || ((byte)param_1[0xa3] == 0)) {\n      param_1[0x98] = 0x102;\n      uVar19 = 0x102;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x00023894:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x2a;\n    puVar13 = auStack_6c;\n    break;\n  case 0x21:\n    bVar21 = 0;\ncode_r0x000234d2:\n    uVar19 = *param_1;\n    if ((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))) {\n      param_1[0x98] = 0x103;\n      uVar19 = 0x103;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x2b;\n    puVar13 = auStack_6c;\n    break;\n  case 0x24:\n    bVar4 = false;\ncode_r0x0002336a:\n    bVar21 = (byte)param_1[0xcc];\n    if (!bVar4) {\n      uVar5 = param_1[0x95];\n      if (uVar5 == 0xffffffff) {\n        local_40[0] = 0xffffffff;\n        local_40[1] = 0xffffffff;\n        local_40[2] = 0xffffffff;\n        local_40[3] = 0xffffffff;\n        local_40[4] = 0xffffffff;\n        local_40[5] = 0xffffffff;\n        local_40[6] = 0xffffffff;\n        local_40[7] = 0xffffffff;\n        if ((*param_1 & 0x40) == 0) {\n          local_40[0] = 0xfffffbff;\n        }\n        if ((*param_1 & 0x80) != 0) {\n          local_40[0] = local_40[0] & 0xfffffffe;\n        }\n        if (bVar21 != 0) {\n          uVar19 = 0;\n          do {\n            if (param_1[uVar19 + 0x10d] == 0xffffffff) {\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }\n            uVar19 = uVar19 + 1;\n          } while (uVar19 != 0x100);\n        }\n        puStack_70 = (uint *)&UNK_000239cf;\n        uVar5 = FUN_0001e6a0();\n        bVar21 = (byte)param_1[0xcc];\n        param_1[0x95] = uVar5;\n      }\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x10a;\n      if (bVar21 == 0) {\n        uVar19 = uVar5 + 0x114;\n      }\n      param_1[0x98] = uVar19;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    uVar19 = 0x2e;\n    puVar13 = auStack_6c;\n    break;\n  case 0x32:\ncode_r0x000236f8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3c;\n    puVar13 = auStack_6c;\n    break;\n  case 0x34:\ncode_r0x000236e0:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3e;\n    puVar13 = auStack_6c;\n    break;\n  case 0x35:\n    bVar21 = 0;\ncode_r0x000233b2:\n    uVar19 = *param_1;\n    if ((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))) {\n      param_1[0x98] = 0x101;\n      uVar19 = 0x101;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3f;\n    puVar13 = auStack_6c;\n    break;\n  case 0x38:\ncode_r0x00023710:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x42;\n    puVar13 = auStack_6c;\n    break;\n  case 0x49:\n  case 0x69:\n    bVar4 = false;\ncode_r0x0002342a:\n    bVar21 = (byte)param_1[0xcc];\n    puVar13 = auStack_6c;\n    if ((!bVar4) || (puVar13 = auStack_6c, (*param_1 & 0x80000) != 0)) break;\n    if (bVar21 != 0) {\n      pcVar8 = &UNK_0002f468 + (uVar19 == 0x73);\ncode_r0x0002345c:\n      param_1[0x96] = (uint)pcVar8;\n      sVar9 = strlen(pcVar8);\n      param_1[0x97] = sVar9;\n      puStack_70 = (uint *)&UNK_0002347b;\n      uVar19 = FUN_00021f80();\n      *(byte *)(param_1 + 0xa3) = 0;\n      param_1[0x98] = uVar19;\n      param_1[0x96] = (uint)local_5c[0];\n      param_1[0x97] = (uint)local_60;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    uVar5 = 0;\n    do {\n      *(undefined4 *)((int)local_40 + uVar5) = 0;\n      uVar5 = uVar5 + 4;\n    } while (uVar5 < 0x20);\n    puStack_70 = (uint *)&UNK_00023ab3;\n    ppuVar6 = __ctype_b_loc();\n    uVar5 = 0;\n    puVar2 = *ppuVar6;\n    do {\n      if ((*(byte *)((int)puVar2 + uVar5 * 2 + 1) & 0x20) != 0) {\n        local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n      }\n      uVar5 = uVar5 + 1;\n    } while (uVar5 != 0x100);\n    if (uVar19 == 0x53) {\ncode_r0x00023b34:\n      local_40[0] = ~local_40[0];\n      local_40[1] = ~local_40[1];\n      local_40[2] = ~local_40[2];\n      local_40[3] = ~local_40[3];\n      local_40[4] = ~local_40[4];\n      local_40[5] = ~local_40[5];\n      local_40[6] = ~local_40[6];\n      local_40[7] = ~local_40[7];\n    }\ncode_r0x00023ae7:\n    *(byte *)(param_1 + 0xa3) = 0;\n    goto code_r0x000237bd;\n  case 0x51:\n    *(byte *)(param_1 + 0xa3) = 0;\n    puStack_70 = (uint *)&UNK_0002357e;\n    uVar19 = FUN_00021f80();\n    param_1[0x98] = uVar19;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;\n  case 0x52:\n    if (local_60 == (byte *)0x0) {\n      pcVar8 = "unfinished \\ escape";\n      ppbVar15 = &pbStack_74;\n      pbStack_74 = (byte *)0x5;\n      puStack_70 = (uint *)((int)&__DT_PLTGOT + *(int *)(&DAT_0002ef08 + uVar5 * 4));\n      goto code_r0x00023a1b;\n    }\n    pbVar12 = (byte *)param_1[pbVar7[1] + 0x10d];\n    if (pbVar12 == (byte *)0xffffffff) {\n      pbStack_74 = local_60;\n      puStack_70 = param_1 + 0xb2;\n      local_5c[1] = pbVar12;\n      uVar5 = FUN_0002b6f0(auStack_50 + 3,local_5c[0]);\n      if (0xfffffffc < uVar5 - 1) {\n        puVar20 = param_1 + 0xb2;\n        for (iVar10 = 2; iVar10 != 0; iVar10 = iVar10 + -1) {\n          *puVar20 = 0;\n          puVar20 = puVar20 + (uint)bVar21 * -2 + 1;\n        }\n        local_5c[0] = (byte *)param_1[0x96];\n        local_60 = (byte *)param_1[0x97];\n        pbVar12 = local_5c[1];\n        goto code_r0x00023748;\n      }\n      pbVar12 = (byte *)param_1[0x97];\n      param_1[0x9d] = uVar5;\n      param_1[0x9c] = auStack_50[3];\n      pbVar7 = (byte *)param_1[0x96];\n      if (uVar5 != 1) goto code_r0x00023235;\n    }\n    else {\ncode_r0x00023748:\n      param_1[0x9d] = 1;\n      param_1[0x9c] = (uint)pbVar12;\n      pbVar12 = local_60;\n      pbVar7 = local_5c[0];\n    }\n    uVar19 = (uint)*pbVar7;\n    local_5c[0] = pbVar7 + 1;\n    param_1[0x96] = (uint)(pbVar7 + 1);\n    local_60 = pbVar12 + -1;\n    param_1[0x97] = (uint)(pbVar12 + -1);\n    switch(uVar19 - 10 & 0xff) {\n    case 0:\n      goto code_r0x0002359b;\n    case 0x1a:\n      goto code_r0x00023673;\n    case 0x1d:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023868;\n      goto code_r0x00023690;\n    case 0x1e:\n      bVar21 = 1;\n      goto code_r0x00023262;\n    case 0x1f:\n      bVar21 = 1;\n      goto code_r0x0002351a;\n    case 0x20:\n      goto code_r0x00023894;\n    case 0x21:\n      bVar21 = 1;\n      goto code_r0x000234d2;\n    case 0x24:\n      bVar4 = true;\n      goto code_r0x0002336a;\n    case 0x27:\n    case 0x28:\n    case 0x29:\n    case 0x2a:\n    case 0x2b:\n    case 0x2c:\n    case 0x2d:\n    case 0x2e:\n    case 0x2f:\n      if ((*param_1 & 0x4000) == 0) {\n        *(byte *)(param_1 + 0xa3) = 0;\n        uVar19 = 0x112;\n        param_1[0x98] = 0x112;\n        goto LAB_0002318d;\n      }\n    default:\nLAB_00023150:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      break;\n    case 0x32:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10e;\n        uVar19 = 0x10e;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236f8;\n    case 0x34:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10f;\n        uVar19 = 0x10f;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236e0;\n    case 0x35:\n      bVar21 = 1;\n      goto code_r0x000233b2;\n    case 0x38:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x111;\n        uVar19 = 0x111;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x00023710;\n    case 0x49:\n    case 0x69:\n      bVar4 = true;\n      goto code_r0x0002342a;\n    case 0x4d:\n    case 0x6d:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      if ((*param_1 & 0x80000) != 0) break;\n      if (bVar21 != 0) {\n        pcVar8 = &UNK_0002f474 + (uVar19 == 0x77);\n        goto code_r0x0002345c;\n      }\n      uVar5 = 0;\n      do {\n        *(undefined4 *)((int)local_40 + uVar5) = 0;\n        uVar5 = uVar5 + 4;\n      } while (uVar5 < 0x20);\n      uVar5 = 0;\n      do {\n        if (*(byte *)((int)param_1 + uVar5 + 8) == 2) {\n          local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 != 0x100);\n      if (uVar19 == 0x57) goto code_r0x00023b34;\n      goto code_r0x00023ae7;\n    case 0x51:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5b;\n      puVar13 = auStack_6c;\n      break;\n    case 0x52:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5c;\n      puVar13 = auStack_6c;\n      break;\n    case 0x54:\n      goto code_r0x000235d7;\n    case 0x56:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023880;\n      goto code_r0x000236c8;\n    case 0x58:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x110;\n        uVar19 = 0x110;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236a8;\n    case 0x71:\n      bStack_51 = 1;\n      goto code_r0x00023295;\n    case 0x72:\n      bVar21 = 1;\n      goto code_r0x000233fa;\n    }\n    break;\n  case 0x54:\n    if ((((*param_1 & 8) != 0) || (param_1[0x98] - 0x106 < 2)) || (param_1[0x98] == 0xffffffff)) {\ncode_r0x00023880:\n      param_1[0x98] = 0x10c;\n      uVar19 = 0x10c;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x000235d7:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x5e;\n    puVar13 = auStack_6c;\n    break;\n  case 0x56:\ncode_r0x000236c8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x60;\n    puVar13 = auStack_6c;\n    break;\n  case 0x58:\ncode_r0x000236a8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x62;\n    puVar13 = auStack_6c;\n    break;\n  case 0x71:\n    bStack_51 = 0;\ncode_r0x00023295:\n    auStack_50[0] = *param_1;\n    puVar13 = auStack_6c;\n    if ((((auStack_50[0] & 0x200) != 0) &&\n        (puVar13 = auStack_6c, (((byte)(auStack_50[0] >> 0xc) ^ 1) & 1) == bStack_51)) &&\n       (((auStack_50[0] & 0x10) != 0 || (puVar13 = auStack_6c, (byte)param_1[0xa3] == 0)))) {\n      local_5c[1] = pbVar7 + (int)pbVar12;\n      param_1[0x9b] = 0xffffffff;\n      param_1[0x9a] = 0xffffffff;\n      if (local_5c[1] == local_5c[0]) {\ncode_r0x00023b5a:\n        puVar13 = auStack_6c;\n        if (bStack_51 == 0) goto code_r0x00023a30;\n      }\n      else {\n        bVar21 = pbVar7[1];\n        pbVar12 = (byte *)(int)(char)bVar21;\n        if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar7 = (byte *)0xffffffff;\n          local_60 = pbVar12;\n          do {\n            pbVar3 = local_60;\n            if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }\n            pbVar7 = pbVar3 + -0x30;\n            param_1[0x9a] = (uint)pbVar7;\n            local_5c[0] = local_5c[0] + 1;\n            if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }\n            bVar21 = *local_5c[0];\n            local_60 = (byte *)(int)(char)bVar21;\n            pbVar12 = (byte *)(int)(char)bVar21 + -0x30;\n          } while ((byte)pbVar12 < 10);\n          if (bVar21 == 0x2c) {\n            if ((int)pbVar7 < 0) goto code_r0x00023bed;\ncode_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;\n            if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }\n            bVar21 = local_5c[0][1];\n            if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            local_5c[0] = pbVar12;\n            goto code_r0x00023bd8;\n          }\n          param_1[0x9b] = (uint)pbVar7;\n          puVar17 = auStack_6c;\n          if (bStack_51 == 0) goto code_r0x00023a30;\n        }\n        else {\n          if (bVar21 == 0x2c) {\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }\ncode_r0x00023bd8:\n          if (bStack_51 == 0) goto code_r0x00023a3a;\n        }\n        puVar13 = auStack_6c;\n        if (*local_5c[0] == 0x5c) goto code_r0x00023a2b;\n      }\ncode_r0x00023a04:\n      if ((*(uint *)(puVar13 + 0x1c) & 0x200000) == 0) {\n        *(byte **)(puVar13 + -4) = pbVar12;\n        pcVar8 = "invalid content of \\{\\}";\n        ppbVar15 = (byte **)(puVar13 + -8);\n        *(undefined4 *)(puVar13 + -8) = 5;\ncode_r0x00023a1b:\n        while( true ) {\n          *(char **)((int)ppbVar15 + -4) = pcVar8;\n          puVar16 = (undefined1 *)((int)ppbVar15 + -8);\n          *(undefined4 *)((int)ppbVar15 + -8) = 0;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23;\n          uVar11 = dcgettext();\n          *(undefined4 *)((int)ppbVar15 + -8) = uVar11;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b;\n          FUN_0001be40();\n          pbVar12 = extraout_ECX;\ncode_r0x00023a2b:\n          *(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;\n          puVar17 = puVar16;\ncode_r0x00023a30:\n          puVar13 = puVar17;\n          puVar18 = puVar17;\n          if (*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)) break;\ncode_r0x00023a3a:\n          puVar13 = puVar18;\n          if ((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))\n          break;\n          uVar5 = param_1[0x9b];\n          if ((int)uVar5 < 0) {\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }\n          if ((int)uVar5 < (int)uVar19) break;\n          if ((int)uVar5 < 0x8000) goto code_r0x00023a66;\n          pcVar8 = "regular expression too big";\n          *(uint *)(puVar18 + -4) = uVar19;\n          ppbVar15 = (byte **)(puVar18 + -8);\n          *(undefined4 *)(puVar18 + -8) = 5;\n        }\n        goto code_r0x00023a04;\n      }\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x7b;\n    break;\n  case 0x72:\n    bVar21 = 0;\ncode_r0x000233fa:\n    if (((*param_1 & 0x400) != 0) || ((((byte)(*param_1 >> 0xf) ^ 1) & 1) != bVar21)) {\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x7c;\n      puVar13 = auStack_6c;\n      break;\n    }\ncode_r0x000238f1:\n    *(byte *)(param_1 + 0xa3) = 1;\n    uVar19 = 0x106;\n    param_1[0x98] = 0x106;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;\n  }\nLAB_00023160:\n  puVar14 = puVar13;\n  *(byte *)(param_1 + 0xa3) = 0;\n  if (bVar21 == 0) {\n    if (*(byte *)((int)param_1 + 5) != 0) {\n      *(undefined4 *)(puVar14 + -4) = 0x2317a;\n      ppuVar6 = __ctype_b_loc();\n      if ((*(byte *)((int)*ppuVar6 + uVar19 * 2 + 1) & 4) != 0) {\n        uVar19 = 0;\n        do {\n          *(undefined4 *)(puVar14 + uVar19 + 0x2c) = 0;\n          uVar19 = uVar19 + 4;\n        } while (uVar19 < 0x20);\n        *(undefined4 *)(puVar14 + -4) = 0x237bd;\n        FUN_0001da50();\ncode_r0x000237bd:\n        *(undefined4 *)(puVar14 + -4) = 0x237c6;\n        iVar10 = FUN_0001e6a0();\n        uVar19 = iVar10 + 0x114;\n      }\n    }\n    param_1[0x98] = uVar19;\n    puVar13 = puVar14;\n  }\n  else {\n    param_1[0x98] = 0x109;\n    uVar19 = 0x109;\n    puVar13 = puVar14;\n  }\nLAB_0002318d:\n  if (*(int *)(puVar13 + 0x4c) == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar19;\n  }\n                    \n  *(undefined **)(puVar13 + -4) = &UNK_00023c01;\n  FUN_0002c430();\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "ushort *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "ushort **ppuVar6;" type_identifier (pointer_declarator "**ppuVar6" * (pointer_declarator "*ppuVar6" * identifier)) ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "size_t sVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "byte *extraout_ECX;" type_identifier (pointer_declarator "*extraout_ECX" * identifier) ;) (declaration "undefined1 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined1 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "byte **ppbVar15;" type_identifier (pointer_declarator "**ppbVar15" * (pointer_declarator "*ppbVar15" * identifier)) ;) (declaration "undefined1 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "undefined1 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "undefined1 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "uint *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "byte bVar21;" type_identifier identifier ;) (declaration "undefined4 uStackY_80;" type_identifier identifier ;) (declaration "byte *pbStack_74;" type_identifier (pointer_declarator "*pbStack_74" * identifier) ;) (declaration "uint *puStack_70;" type_identifier (pointer_declarator "*puStack_70" * identifier) ;) (declaration "undefined1 auStack_6c [12];" type_identifier (array_declarator "auStack_6c [12]" identifier [ number_literal ]) ;) (declaration "byte *local_60;" type_identifier (pointer_declarator "*local_60" * identifier) ;) (declaration "byte *local_5c [2];" type_identifier (pointer_declarator "*local_5c [2]" * (array_declarator "local_5c [2]" identifier [ number_literal ])) ;) (declaration "byte bStack_51;" type_identifier identifier ;) (declaration "uint auStack_50 [4];" type_identifier (array_declarator "auStack_50 [4]" identifier [ number_literal ]) ;) (declaration "uint local_40 [11];" type_identifier (array_declarator "local_40 [11]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x230cb;" (assignment_expression "uStack_14 = 0x230cb" identifier = number_literal) ;) (expression_statement "pbVar12 = (byte *)param_1[0x97];" (assignment_expression "pbVar12 = (byte *)param_1[0x97]" identifier = (cast_expression "(byte *)param_1[0x97]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x97]" identifier [ number_literal ]))) ;) (expression_statement "local_40[8] = *(undefined4 *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_40[8] = *(undefined4 *)(in_GS_OFFSET + 0x14)" (subscript_expression "local_40[8]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(in_GS_OFFSET + 0x14)" * (cast_expression "(undefined4 *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (pbVar12 == (byte *)0x0) {\n    param_1[0x98] = 0xffffffff;\n    uVar19 = 0xffffffff;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;\n  }" if (parenthesized_expression "(pbVar12 == (byte *)0x0)" ( (binary_expression "pbVar12 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    param_1[0x98] = 0xffffffff;\n    uVar19 = 0xffffffff;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;\n  }" { (expression_statement "param_1[0x98] = 0xffffffff;" (assignment_expression "param_1[0x98] = 0xffffffff" (subscript_expression "param_1[0x98]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar19 = 0xffffffff;" (assignment_expression "uVar19 = 0xffffffff" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) })) (expression_statement "pbVar7 = (byte *)param_1[0x96];" (assignment_expression "pbVar7 = (byte *)param_1[0x96]" identifier = (cast_expression "(byte *)param_1[0x96]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x96]" identifier [ number_literal ]))) ;) (expression_statement "uVar19 = param_1[*pbVar7 + 0x10d];" (assignment_expression "uVar19 = param_1[*pbVar7 + 0x10d]" identifier = (subscript_expression "param_1[*pbVar7 + 0x10d]" identifier [ (binary_expression "*pbVar7 + 0x10d" (pointer_expression "*pbVar7" * identifier) + number_literal) ])) ;) (if_statement "if (uVar19 == 0xffffffff) {\n    puStack_70 = param_1 + 0xb2;\n    pbStack_74 = pbVar12;\n    uVar5 = FUN_0002b6f0(auStack_50 + 3,pbVar7);\n    if (0xfffffffc < uVar5 - 1) {\n      param_1[0xb2] = 0;\n      pbVar7 = (byte *)param_1[0x96];\n      param_1[0xb3] = 0;\n      pbVar12 = (byte *)param_1[0x97];\n      goto LAB_00023107;\n    }\n    pbVar12 = (byte *)param_1[0x97];\n    param_1[0x9d] = uVar5;\n    param_1[0x9c] = auStack_50[3];\n    pbVar7 = (byte *)param_1[0x96];\n    if (uVar5 == 1) goto LAB_00023117;\ncode_r0x00023235:\n    uVar19 = 0xffffffff;\n    param_1[0x96] = (uint)(pbVar7 + uVar5);\n    bVar21 = (byte)param_1[0xcc];\n    param_1[0x97] = (int)pbVar12 - uVar5;\n    puVar13 = auStack_6c;\n    goto LAB_00023160;\n  }" if (parenthesized_expression "(uVar19 == 0xffffffff)" ( (binary_expression "uVar19 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n    puStack_70 = param_1 + 0xb2;\n    pbStack_74 = pbVar12;\n    uVar5 = FUN_0002b6f0(auStack_50 + 3,pbVar7);\n    if (0xfffffffc < uVar5 - 1) {\n      param_1[0xb2] = 0;\n      pbVar7 = (byte *)param_1[0x96];\n      param_1[0xb3] = 0;\n      pbVar12 = (byte *)param_1[0x97];\n      goto LAB_00023107;\n    }\n    pbVar12 = (byte *)param_1[0x97];\n    param_1[0x9d] = uVar5;\n    param_1[0x9c] = auStack_50[3];\n    pbVar7 = (byte *)param_1[0x96];\n    if (uVar5 == 1) goto LAB_00023117;\ncode_r0x00023235:\n    uVar19 = 0xffffffff;\n    param_1[0x96] = (uint)(pbVar7 + uVar5);\n    bVar21 = (byte)param_1[0xcc];\n    param_1[0x97] = (int)pbVar12 - uVar5;\n    puVar13 = auStack_6c;\n    goto LAB_00023160;\n  }" { (expression_statement "puStack_70 = param_1 + 0xb2;" (assignment_expression "puStack_70 = param_1 + 0xb2" identifier = (binary_expression "param_1 + 0xb2" identifier + number_literal)) ;) (expression_statement "pbStack_74 = pbVar12;" (assignment_expression "pbStack_74 = pbVar12" identifier = identifier) ;) (expression_statement "uVar5 = FUN_0002b6f0(auStack_50 + 3,pbVar7);" (assignment_expression "uVar5 = FUN_0002b6f0(auStack_50 + 3,pbVar7)" identifier = (call_expression "FUN_0002b6f0(auStack_50 + 3,pbVar7)" identifier (argument_list "(auStack_50 + 3,pbVar7)" ( (binary_expression "auStack_50 + 3" identifier + number_literal) , identifier )))) ;) (if_statement "if (0xfffffffc < uVar5 - 1) {\n      param_1[0xb2] = 0;\n      pbVar7 = (byte *)param_1[0x96];\n      param_1[0xb3] = 0;\n      pbVar12 = (byte *)param_1[0x97];\n      goto LAB_00023107;\n    }" if (parenthesized_expression "(0xfffffffc < uVar5 - 1)" ( (binary_expression "0xfffffffc < uVar5 - 1" number_literal < (binary_expression "uVar5 - 1" identifier - number_literal)) )) (compound_statement "{\n      param_1[0xb2] = 0;\n      pbVar7 = (byte *)param_1[0x96];\n      param_1[0xb3] = 0;\n      pbVar12 = (byte *)param_1[0x97];\n      goto LAB_00023107;\n    }" { (expression_statement "param_1[0xb2] = 0;" (assignment_expression "param_1[0xb2] = 0" (subscript_expression "param_1[0xb2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar7 = (byte *)param_1[0x96];" (assignment_expression "pbVar7 = (byte *)param_1[0x96]" identifier = (cast_expression "(byte *)param_1[0x96]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x96]" identifier [ number_literal ]))) ;) (expression_statement "param_1[0xb3] = 0;" (assignment_expression "param_1[0xb3] = 0" (subscript_expression "param_1[0xb3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar12 = (byte *)param_1[0x97];" (assignment_expression "pbVar12 = (byte *)param_1[0x97]" identifier = (cast_expression "(byte *)param_1[0x97]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x97]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_00023107;" goto statement_identifier ;) })) (expression_statement "pbVar12 = (byte *)param_1[0x97];" (assignment_expression "pbVar12 = (byte *)param_1[0x97]" identifier = (cast_expression "(byte *)param_1[0x97]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x97]" identifier [ number_literal ]))) ;) (expression_statement "param_1[0x9d] = uVar5;" (assignment_expression "param_1[0x9d] = uVar5" (subscript_expression "param_1[0x9d]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[0x9c] = auStack_50[3];" (assignment_expression "param_1[0x9c] = auStack_50[3]" (subscript_expression "param_1[0x9c]" identifier [ number_literal ]) = (subscript_expression "auStack_50[3]" identifier [ number_literal ])) ;) (expression_statement "pbVar7 = (byte *)param_1[0x96];" (assignment_expression "pbVar7 = (byte *)param_1[0x96]" identifier = (cast_expression "(byte *)param_1[0x96]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x96]" identifier [ number_literal ]))) ;) (if_statement "if (uVar5 == 1) goto LAB_00023117;" if (parenthesized_expression "(uVar5 == 1)" ( (binary_expression "uVar5 == 1" identifier == number_literal) )) (goto_statement "goto LAB_00023117;" goto statement_identifier ;)) (labeled_statement "code_r0x00023235:\n    uVar19 = 0xffffffff;" statement_identifier : (expression_statement "uVar19 = 0xffffffff;" (assignment_expression "uVar19 = 0xffffffff" identifier = number_literal) ;)) (expression_statement "param_1[0x96] = (uint)(pbVar7 + uVar5);" (assignment_expression "param_1[0x96] = (uint)(pbVar7 + uVar5)" (subscript_expression "param_1[0x96]" identifier [ number_literal ]) = (call_expression "(uint)(pbVar7 + uVar5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar7 + uVar5)" ( (binary_expression "pbVar7 + uVar5" identifier + identifier) )))) ;) (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;) (expression_statement "param_1[0x97] = (int)pbVar12 - uVar5;" (assignment_expression "param_1[0x97] = (int)pbVar12 - uVar5" (subscript_expression "param_1[0x97]" identifier [ number_literal ]) = (binary_expression "(int)pbVar12 - uVar5" (cast_expression "(int)pbVar12" ( (type_descriptor "int" primitive_type) ) identifier) - identifier)) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (goto_statement "goto LAB_00023160;" goto statement_identifier ;) })) (labeled_statement "LAB_00023107:\n  param_1[0x9c] = uVar19;" statement_identifier : (expression_statement "param_1[0x9c] = uVar19;" (assignment_expression "param_1[0x9c] = uVar19" (subscript_expression "param_1[0x9c]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "param_1[0x9d] = 1;" (assignment_expression "param_1[0x9d] = 1" (subscript_expression "param_1[0x9d]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_00023117:\n  puVar14 = auStack_6c;" statement_identifier : (expression_statement "puVar14 = auStack_6c;" (assignment_expression "puVar14 = auStack_6c" identifier = identifier) ;)) (expression_statement "puVar18 = auStack_6c;" (assignment_expression "puVar18 = auStack_6c" identifier = identifier) ;) (expression_statement "puVar16 = auStack_6c;" (assignment_expression "puVar16 = auStack_6c" identifier = identifier) ;) (expression_statement "puVar17 = auStack_6c;" (assignment_expression "puVar17 = auStack_6c" identifier = identifier) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (expression_statement "uVar19 = (uint)*pbVar7;" (assignment_expression "uVar19 = (uint)*pbVar7" identifier = (binary_expression "(uint)*pbVar7" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "local_5c[0] = pbVar7 + 1;" (assignment_expression "local_5c[0] = pbVar7 + 1" (subscript_expression "local_5c[0]" identifier [ number_literal ]) = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) (expression_statement "param_1[0x96] = (uint)local_5c[0];" (assignment_expression "param_1[0x96] = (uint)local_5c[0]" (subscript_expression "param_1[0x96]" identifier [ number_literal ]) = (cast_expression "(uint)local_5c[0]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_5c[0]" identifier [ number_literal ]))) ;) (expression_statement "local_60 = pbVar12 + -1;" (assignment_expression "local_60 = pbVar12 + -1" identifier = (binary_expression "pbVar12 + -1" identifier + number_literal)) ;) (expression_statement "param_1[0x97] = (uint)local_60;" (assignment_expression "param_1[0x97] = (uint)local_60" (subscript_expression "param_1[0x97]" identifier [ number_literal ]) = (cast_expression "(uint)local_60" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (0x72 < (byte)(uVar19 - 10)) goto LAB_00023150;" if (parenthesized_expression "(0x72 < (byte)(uVar19 - 10))" ( (binary_expression "0x72 < (byte)(uVar19 - 10)" number_literal < (call_expression "(byte)(uVar19 - 10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar19 - 10)" ( (binary_expression "uVar19 - 10" identifier - number_literal) )))) )) (goto_statement "goto LAB_00023150;" goto statement_identifier ;)) (expression_statement "uVar5 = uVar19 - 10 & 0xff;" (assignment_expression "uVar5 = uVar19 - 10 & 0xff" identifier = (binary_expression "uVar19 - 10 & 0xff" (binary_expression "uVar19 - 10" identifier - number_literal) & number_literal)) ;) (switch_statement "switch(uVar5) {\n  case 0:\n    if (((*param_1 & 0x400) != 0) || ((*param_1 & 0x800) == 0)) {\ncode_r0x0002359b:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 10;\n      puVar13 = auStack_6c;\n      break;\n    }\n    goto code_r0x000238f1;\n  default:\n    goto LAB_00023150;\n  case 0x1a:\n    uVar19 = *param_1;\n    if ((((((uVar19 & 8) != 0) || (local_60 == (byte *)0x0)) ||\n         ((pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)))) ||\n        ((pbVar12 = (byte *)((uVar19 >> 0xf ^ 1) & 1), pbVar12 < local_60 &&\n         (local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c)))) ||\n       (((uVar19 & 0x800) != 0 && (pbVar7[1] == 10)))) {\ncode_r0x00023868:\n      param_1[0x98] = 0x10d;\n      uVar19 = 0x10d;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x00023673:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x24;\n    puVar13 = auStack_6c;\n    break;\n  case 0x1d:\ncode_r0x00023690:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x27;\n    puVar13 = auStack_6c;\n    break;\n  case 0x1e:\n    bVar21 = 0;\ncode_r0x00023262:\n    if ((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) {\n      param_1[0x99] = param_1[0x99] + 1;\n      uVar19 = 0x107;\n      *(byte *)(param_1 + 0xa3) = 1;\n      param_1[0x98] = 0x107;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x28;\n    puVar13 = auStack_6c;\n    break;\n  case 0x1f:\n    bVar21 = 0;\ncode_r0x0002351a:\n    if (((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) &&\n       ((param_1[0x99] != 0 || ((*param_1 & 0x20000) == 0)))) {\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x108;\n      param_1[0x99] = param_1[0x99] - 1;\n      param_1[0x98] = 0x108;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x29;\n    puVar13 = auStack_6c;\n    break;\n  case 0x20:\n    if (((*param_1 & 0x10) != 0) || ((byte)param_1[0xa3] == 0)) {\n      param_1[0x98] = 0x102;\n      uVar19 = 0x102;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x00023894:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x2a;\n    puVar13 = auStack_6c;\n    break;\n  case 0x21:\n    bVar21 = 0;\ncode_r0x000234d2:\n    uVar19 = *param_1;\n    if ((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))) {\n      param_1[0x98] = 0x103;\n      uVar19 = 0x103;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x2b;\n    puVar13 = auStack_6c;\n    break;\n  case 0x24:\n    bVar4 = false;\ncode_r0x0002336a:\n    bVar21 = (byte)param_1[0xcc];\n    if (!bVar4) {\n      uVar5 = param_1[0x95];\n      if (uVar5 == 0xffffffff) {\n        local_40[0] = 0xffffffff;\n        local_40[1] = 0xffffffff;\n        local_40[2] = 0xffffffff;\n        local_40[3] = 0xffffffff;\n        local_40[4] = 0xffffffff;\n        local_40[5] = 0xffffffff;\n        local_40[6] = 0xffffffff;\n        local_40[7] = 0xffffffff;\n        if ((*param_1 & 0x40) == 0) {\n          local_40[0] = 0xfffffbff;\n        }\n        if ((*param_1 & 0x80) != 0) {\n          local_40[0] = local_40[0] & 0xfffffffe;\n        }\n        if (bVar21 != 0) {\n          uVar19 = 0;\n          do {\n            if (param_1[uVar19 + 0x10d] == 0xffffffff) {\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }\n            uVar19 = uVar19 + 1;\n          } while (uVar19 != 0x100);\n        }\n        puStack_70 = (uint *)&UNK_000239cf;\n        uVar5 = FUN_0001e6a0();\n        bVar21 = (byte)param_1[0xcc];\n        param_1[0x95] = uVar5;\n      }\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x10a;\n      if (bVar21 == 0) {\n        uVar19 = uVar5 + 0x114;\n      }\n      param_1[0x98] = uVar19;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    uVar19 = 0x2e;\n    puVar13 = auStack_6c;\n    break;\n  case 0x32:\ncode_r0x000236f8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3c;\n    puVar13 = auStack_6c;\n    break;\n  case 0x34:\ncode_r0x000236e0:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3e;\n    puVar13 = auStack_6c;\n    break;\n  case 0x35:\n    bVar21 = 0;\ncode_r0x000233b2:\n    uVar19 = *param_1;\n    if ((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))) {\n      param_1[0x98] = 0x101;\n      uVar19 = 0x101;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3f;\n    puVar13 = auStack_6c;\n    break;\n  case 0x38:\ncode_r0x00023710:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x42;\n    puVar13 = auStack_6c;\n    break;\n  case 0x49:\n  case 0x69:\n    bVar4 = false;\ncode_r0x0002342a:\n    bVar21 = (byte)param_1[0xcc];\n    puVar13 = auStack_6c;\n    if ((!bVar4) || (puVar13 = auStack_6c, (*param_1 & 0x80000) != 0)) break;\n    if (bVar21 != 0) {\n      pcVar8 = &UNK_0002f468 + (uVar19 == 0x73);\ncode_r0x0002345c:\n      param_1[0x96] = (uint)pcVar8;\n      sVar9 = strlen(pcVar8);\n      param_1[0x97] = sVar9;\n      puStack_70 = (uint *)&UNK_0002347b;\n      uVar19 = FUN_00021f80();\n      *(byte *)(param_1 + 0xa3) = 0;\n      param_1[0x98] = uVar19;\n      param_1[0x96] = (uint)local_5c[0];\n      param_1[0x97] = (uint)local_60;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    uVar5 = 0;\n    do {\n      *(undefined4 *)((int)local_40 + uVar5) = 0;\n      uVar5 = uVar5 + 4;\n    } while (uVar5 < 0x20);\n    puStack_70 = (uint *)&UNK_00023ab3;\n    ppuVar6 = __ctype_b_loc();\n    uVar5 = 0;\n    puVar2 = *ppuVar6;\n    do {\n      if ((*(byte *)((int)puVar2 + uVar5 * 2 + 1) & 0x20) != 0) {\n        local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n      }\n      uVar5 = uVar5 + 1;\n    } while (uVar5 != 0x100);\n    if (uVar19 == 0x53) {\ncode_r0x00023b34:\n      local_40[0] = ~local_40[0];\n      local_40[1] = ~local_40[1];\n      local_40[2] = ~local_40[2];\n      local_40[3] = ~local_40[3];\n      local_40[4] = ~local_40[4];\n      local_40[5] = ~local_40[5];\n      local_40[6] = ~local_40[6];\n      local_40[7] = ~local_40[7];\n    }\ncode_r0x00023ae7:\n    *(byte *)(param_1 + 0xa3) = 0;\n    goto code_r0x000237bd;\n  case 0x51:\n    *(byte *)(param_1 + 0xa3) = 0;\n    puStack_70 = (uint *)&UNK_0002357e;\n    uVar19 = FUN_00021f80();\n    param_1[0x98] = uVar19;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;\n  case 0x52:\n    if (local_60 == (byte *)0x0) {\n      pcVar8 = "unfinished \\ escape";\n      ppbVar15 = &pbStack_74;\n      pbStack_74 = (byte *)0x5;\n      puStack_70 = (uint *)((int)&__DT_PLTGOT + *(int *)(&DAT_0002ef08 + uVar5 * 4));\n      goto code_r0x00023a1b;\n    }\n    pbVar12 = (byte *)param_1[pbVar7[1] + 0x10d];\n    if (pbVar12 == (byte *)0xffffffff) {\n      pbStack_74 = local_60;\n      puStack_70 = param_1 + 0xb2;\n      local_5c[1] = pbVar12;\n      uVar5 = FUN_0002b6f0(auStack_50 + 3,local_5c[0]);\n      if (0xfffffffc < uVar5 - 1) {\n        puVar20 = param_1 + 0xb2;\n        for (iVar10 = 2; iVar10 != 0; iVar10 = iVar10 + -1) {\n          *puVar20 = 0;\n          puVar20 = puVar20 + (uint)bVar21 * -2 + 1;\n        }\n        local_5c[0] = (byte *)param_1[0x96];\n        local_60 = (byte *)param_1[0x97];\n        pbVar12 = local_5c[1];\n        goto code_r0x00023748;\n      }\n      pbVar12 = (byte *)param_1[0x97];\n      param_1[0x9d] = uVar5;\n      param_1[0x9c] = auStack_50[3];\n      pbVar7 = (byte *)param_1[0x96];\n      if (uVar5 != 1) goto code_r0x00023235;\n    }\n    else {\ncode_r0x00023748:\n      param_1[0x9d] = 1;\n      param_1[0x9c] = (uint)pbVar12;\n      pbVar12 = local_60;\n      pbVar7 = local_5c[0];\n    }\n    uVar19 = (uint)*pbVar7;\n    local_5c[0] = pbVar7 + 1;\n    param_1[0x96] = (uint)(pbVar7 + 1);\n    local_60 = pbVar12 + -1;\n    param_1[0x97] = (uint)(pbVar12 + -1);\n    switch(uVar19 - 10 & 0xff) {\n    case 0:\n      goto code_r0x0002359b;\n    case 0x1a:\n      goto code_r0x00023673;\n    case 0x1d:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023868;\n      goto code_r0x00023690;\n    case 0x1e:\n      bVar21 = 1;\n      goto code_r0x00023262;\n    case 0x1f:\n      bVar21 = 1;\n      goto code_r0x0002351a;\n    case 0x20:\n      goto code_r0x00023894;\n    case 0x21:\n      bVar21 = 1;\n      goto code_r0x000234d2;\n    case 0x24:\n      bVar4 = true;\n      goto code_r0x0002336a;\n    case 0x27:\n    case 0x28:\n    case 0x29:\n    case 0x2a:\n    case 0x2b:\n    case 0x2c:\n    case 0x2d:\n    case 0x2e:\n    case 0x2f:\n      if ((*param_1 & 0x4000) == 0) {\n        *(byte *)(param_1 + 0xa3) = 0;\n        uVar19 = 0x112;\n        param_1[0x98] = 0x112;\n        goto LAB_0002318d;\n      }\n    default:\nLAB_00023150:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      break;\n    case 0x32:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10e;\n        uVar19 = 0x10e;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236f8;\n    case 0x34:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10f;\n        uVar19 = 0x10f;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236e0;\n    case 0x35:\n      bVar21 = 1;\n      goto code_r0x000233b2;\n    case 0x38:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x111;\n        uVar19 = 0x111;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x00023710;\n    case 0x49:\n    case 0x69:\n      bVar4 = true;\n      goto code_r0x0002342a;\n    case 0x4d:\n    case 0x6d:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      if ((*param_1 & 0x80000) != 0) break;\n      if (bVar21 != 0) {\n        pcVar8 = &UNK_0002f474 + (uVar19 == 0x77);\n        goto code_r0x0002345c;\n      }\n      uVar5 = 0;\n      do {\n        *(undefined4 *)((int)local_40 + uVar5) = 0;\n        uVar5 = uVar5 + 4;\n      } while (uVar5 < 0x20);\n      uVar5 = 0;\n      do {\n        if (*(byte *)((int)param_1 + uVar5 + 8) == 2) {\n          local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 != 0x100);\n      if (uVar19 == 0x57) goto code_r0x00023b34;\n      goto code_r0x00023ae7;\n    case 0x51:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5b;\n      puVar13 = auStack_6c;\n      break;\n    case 0x52:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5c;\n      puVar13 = auStack_6c;\n      break;\n    case 0x54:\n      goto code_r0x000235d7;\n    case 0x56:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023880;\n      goto code_r0x000236c8;\n    case 0x58:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x110;\n        uVar19 = 0x110;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236a8;\n    case 0x71:\n      bStack_51 = 1;\n      goto code_r0x00023295;\n    case 0x72:\n      bVar21 = 1;\n      goto code_r0x000233fa;\n    }\n    break;\n  case 0x54:\n    if ((((*param_1 & 8) != 0) || (param_1[0x98] - 0x106 < 2)) || (param_1[0x98] == 0xffffffff)) {\ncode_r0x00023880:\n      param_1[0x98] = 0x10c;\n      uVar19 = 0x10c;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x000235d7:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x5e;\n    puVar13 = auStack_6c;\n    break;\n  case 0x56:\ncode_r0x000236c8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x60;\n    puVar13 = auStack_6c;\n    break;\n  case 0x58:\ncode_r0x000236a8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x62;\n    puVar13 = auStack_6c;\n    break;\n  case 0x71:\n    bStack_51 = 0;\ncode_r0x00023295:\n    auStack_50[0] = *param_1;\n    puVar13 = auStack_6c;\n    if ((((auStack_50[0] & 0x200) != 0) &&\n        (puVar13 = auStack_6c, (((byte)(auStack_50[0] >> 0xc) ^ 1) & 1) == bStack_51)) &&\n       (((auStack_50[0] & 0x10) != 0 || (puVar13 = auStack_6c, (byte)param_1[0xa3] == 0)))) {\n      local_5c[1] = pbVar7 + (int)pbVar12;\n      param_1[0x9b] = 0xffffffff;\n      param_1[0x9a] = 0xffffffff;\n      if (local_5c[1] == local_5c[0]) {\ncode_r0x00023b5a:\n        puVar13 = auStack_6c;\n        if (bStack_51 == 0) goto code_r0x00023a30;\n      }\n      else {\n        bVar21 = pbVar7[1];\n        pbVar12 = (byte *)(int)(char)bVar21;\n        if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar7 = (byte *)0xffffffff;\n          local_60 = pbVar12;\n          do {\n            pbVar3 = local_60;\n            if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }\n            pbVar7 = pbVar3 + -0x30;\n            param_1[0x9a] = (uint)pbVar7;\n            local_5c[0] = local_5c[0] + 1;\n            if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }\n            bVar21 = *local_5c[0];\n            local_60 = (byte *)(int)(char)bVar21;\n            pbVar12 = (byte *)(int)(char)bVar21 + -0x30;\n          } while ((byte)pbVar12 < 10);\n          if (bVar21 == 0x2c) {\n            if ((int)pbVar7 < 0) goto code_r0x00023bed;\ncode_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;\n            if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }\n            bVar21 = local_5c[0][1];\n            if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            local_5c[0] = pbVar12;\n            goto code_r0x00023bd8;\n          }\n          param_1[0x9b] = (uint)pbVar7;\n          puVar17 = auStack_6c;\n          if (bStack_51 == 0) goto code_r0x00023a30;\n        }\n        else {\n          if (bVar21 == 0x2c) {\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }\ncode_r0x00023bd8:\n          if (bStack_51 == 0) goto code_r0x00023a3a;\n        }\n        puVar13 = auStack_6c;\n        if (*local_5c[0] == 0x5c) goto code_r0x00023a2b;\n      }\ncode_r0x00023a04:\n      if ((*(uint *)(puVar13 + 0x1c) & 0x200000) == 0) {\n        *(byte **)(puVar13 + -4) = pbVar12;\n        pcVar8 = "invalid content of \\{\\}";\n        ppbVar15 = (byte **)(puVar13 + -8);\n        *(undefined4 *)(puVar13 + -8) = 5;\ncode_r0x00023a1b:\n        while( true ) {\n          *(char **)((int)ppbVar15 + -4) = pcVar8;\n          puVar16 = (undefined1 *)((int)ppbVar15 + -8);\n          *(undefined4 *)((int)ppbVar15 + -8) = 0;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23;\n          uVar11 = dcgettext();\n          *(undefined4 *)((int)ppbVar15 + -8) = uVar11;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b;\n          FUN_0001be40();\n          pbVar12 = extraout_ECX;\ncode_r0x00023a2b:\n          *(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;\n          puVar17 = puVar16;\ncode_r0x00023a30:\n          puVar13 = puVar17;\n          puVar18 = puVar17;\n          if (*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)) break;\ncode_r0x00023a3a:\n          puVar13 = puVar18;\n          if ((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))\n          break;\n          uVar5 = param_1[0x9b];\n          if ((int)uVar5 < 0) {\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }\n          if ((int)uVar5 < (int)uVar19) break;\n          if ((int)uVar5 < 0x8000) goto code_r0x00023a66;\n          pcVar8 = "regular expression too big";\n          *(uint *)(puVar18 + -4) = uVar19;\n          ppbVar15 = (byte **)(puVar18 + -8);\n          *(undefined4 *)(puVar18 + -8) = 5;\n        }\n        goto code_r0x00023a04;\n      }\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x7b;\n    break;\n  case 0x72:\n    bVar21 = 0;\ncode_r0x000233fa:\n    if (((*param_1 & 0x400) != 0) || ((((byte)(*param_1 >> 0xf) ^ 1) & 1) != bVar21)) {\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x7c;\n      puVar13 = auStack_6c;\n      break;\n    }\ncode_r0x000238f1:\n    *(byte *)(param_1 + 0xa3) = 1;\n    uVar19 = 0x106;\n    param_1[0x98] = 0x106;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;\n  }" switch (parenthesized_expression "(uVar5)" ( identifier )) (compound_statement "{\n  case 0:\n    if (((*param_1 & 0x400) != 0) || ((*param_1 & 0x800) == 0)) {\ncode_r0x0002359b:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 10;\n      puVar13 = auStack_6c;\n      break;\n    }\n    goto code_r0x000238f1;\n  default:\n    goto LAB_00023150;\n  case 0x1a:\n    uVar19 = *param_1;\n    if ((((((uVar19 & 8) != 0) || (local_60 == (byte *)0x0)) ||\n         ((pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)))) ||\n        ((pbVar12 = (byte *)((uVar19 >> 0xf ^ 1) & 1), pbVar12 < local_60 &&\n         (local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c)))) ||\n       (((uVar19 & 0x800) != 0 && (pbVar7[1] == 10)))) {\ncode_r0x00023868:\n      param_1[0x98] = 0x10d;\n      uVar19 = 0x10d;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x00023673:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x24;\n    puVar13 = auStack_6c;\n    break;\n  case 0x1d:\ncode_r0x00023690:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x27;\n    puVar13 = auStack_6c;\n    break;\n  case 0x1e:\n    bVar21 = 0;\ncode_r0x00023262:\n    if ((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) {\n      param_1[0x99] = param_1[0x99] + 1;\n      uVar19 = 0x107;\n      *(byte *)(param_1 + 0xa3) = 1;\n      param_1[0x98] = 0x107;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x28;\n    puVar13 = auStack_6c;\n    break;\n  case 0x1f:\n    bVar21 = 0;\ncode_r0x0002351a:\n    if (((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) &&\n       ((param_1[0x99] != 0 || ((*param_1 & 0x20000) == 0)))) {\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x108;\n      param_1[0x99] = param_1[0x99] - 1;\n      param_1[0x98] = 0x108;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x29;\n    puVar13 = auStack_6c;\n    break;\n  case 0x20:\n    if (((*param_1 & 0x10) != 0) || ((byte)param_1[0xa3] == 0)) {\n      param_1[0x98] = 0x102;\n      uVar19 = 0x102;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x00023894:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x2a;\n    puVar13 = auStack_6c;\n    break;\n  case 0x21:\n    bVar21 = 0;\ncode_r0x000234d2:\n    uVar19 = *param_1;\n    if ((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))) {\n      param_1[0x98] = 0x103;\n      uVar19 = 0x103;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x2b;\n    puVar13 = auStack_6c;\n    break;\n  case 0x24:\n    bVar4 = false;\ncode_r0x0002336a:\n    bVar21 = (byte)param_1[0xcc];\n    if (!bVar4) {\n      uVar5 = param_1[0x95];\n      if (uVar5 == 0xffffffff) {\n        local_40[0] = 0xffffffff;\n        local_40[1] = 0xffffffff;\n        local_40[2] = 0xffffffff;\n        local_40[3] = 0xffffffff;\n        local_40[4] = 0xffffffff;\n        local_40[5] = 0xffffffff;\n        local_40[6] = 0xffffffff;\n        local_40[7] = 0xffffffff;\n        if ((*param_1 & 0x40) == 0) {\n          local_40[0] = 0xfffffbff;\n        }\n        if ((*param_1 & 0x80) != 0) {\n          local_40[0] = local_40[0] & 0xfffffffe;\n        }\n        if (bVar21 != 0) {\n          uVar19 = 0;\n          do {\n            if (param_1[uVar19 + 0x10d] == 0xffffffff) {\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }\n            uVar19 = uVar19 + 1;\n          } while (uVar19 != 0x100);\n        }\n        puStack_70 = (uint *)&UNK_000239cf;\n        uVar5 = FUN_0001e6a0();\n        bVar21 = (byte)param_1[0xcc];\n        param_1[0x95] = uVar5;\n      }\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x10a;\n      if (bVar21 == 0) {\n        uVar19 = uVar5 + 0x114;\n      }\n      param_1[0x98] = uVar19;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    uVar19 = 0x2e;\n    puVar13 = auStack_6c;\n    break;\n  case 0x32:\ncode_r0x000236f8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3c;\n    puVar13 = auStack_6c;\n    break;\n  case 0x34:\ncode_r0x000236e0:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3e;\n    puVar13 = auStack_6c;\n    break;\n  case 0x35:\n    bVar21 = 0;\ncode_r0x000233b2:\n    uVar19 = *param_1;\n    if ((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))) {\n      param_1[0x98] = 0x101;\n      uVar19 = 0x101;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3f;\n    puVar13 = auStack_6c;\n    break;\n  case 0x38:\ncode_r0x00023710:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x42;\n    puVar13 = auStack_6c;\n    break;\n  case 0x49:\n  case 0x69:\n    bVar4 = false;\ncode_r0x0002342a:\n    bVar21 = (byte)param_1[0xcc];\n    puVar13 = auStack_6c;\n    if ((!bVar4) || (puVar13 = auStack_6c, (*param_1 & 0x80000) != 0)) break;\n    if (bVar21 != 0) {\n      pcVar8 = &UNK_0002f468 + (uVar19 == 0x73);\ncode_r0x0002345c:\n      param_1[0x96] = (uint)pcVar8;\n      sVar9 = strlen(pcVar8);\n      param_1[0x97] = sVar9;\n      puStack_70 = (uint *)&UNK_0002347b;\n      uVar19 = FUN_00021f80();\n      *(byte *)(param_1 + 0xa3) = 0;\n      param_1[0x98] = uVar19;\n      param_1[0x96] = (uint)local_5c[0];\n      param_1[0x97] = (uint)local_60;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    uVar5 = 0;\n    do {\n      *(undefined4 *)((int)local_40 + uVar5) = 0;\n      uVar5 = uVar5 + 4;\n    } while (uVar5 < 0x20);\n    puStack_70 = (uint *)&UNK_00023ab3;\n    ppuVar6 = __ctype_b_loc();\n    uVar5 = 0;\n    puVar2 = *ppuVar6;\n    do {\n      if ((*(byte *)((int)puVar2 + uVar5 * 2 + 1) & 0x20) != 0) {\n        local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n      }\n      uVar5 = uVar5 + 1;\n    } while (uVar5 != 0x100);\n    if (uVar19 == 0x53) {\ncode_r0x00023b34:\n      local_40[0] = ~local_40[0];\n      local_40[1] = ~local_40[1];\n      local_40[2] = ~local_40[2];\n      local_40[3] = ~local_40[3];\n      local_40[4] = ~local_40[4];\n      local_40[5] = ~local_40[5];\n      local_40[6] = ~local_40[6];\n      local_40[7] = ~local_40[7];\n    }\ncode_r0x00023ae7:\n    *(byte *)(param_1 + 0xa3) = 0;\n    goto code_r0x000237bd;\n  case 0x51:\n    *(byte *)(param_1 + 0xa3) = 0;\n    puStack_70 = (uint *)&UNK_0002357e;\n    uVar19 = FUN_00021f80();\n    param_1[0x98] = uVar19;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;\n  case 0x52:\n    if (local_60 == (byte *)0x0) {\n      pcVar8 = "unfinished \\ escape";\n      ppbVar15 = &pbStack_74;\n      pbStack_74 = (byte *)0x5;\n      puStack_70 = (uint *)((int)&__DT_PLTGOT + *(int *)(&DAT_0002ef08 + uVar5 * 4));\n      goto code_r0x00023a1b;\n    }\n    pbVar12 = (byte *)param_1[pbVar7[1] + 0x10d];\n    if (pbVar12 == (byte *)0xffffffff) {\n      pbStack_74 = local_60;\n      puStack_70 = param_1 + 0xb2;\n      local_5c[1] = pbVar12;\n      uVar5 = FUN_0002b6f0(auStack_50 + 3,local_5c[0]);\n      if (0xfffffffc < uVar5 - 1) {\n        puVar20 = param_1 + 0xb2;\n        for (iVar10 = 2; iVar10 != 0; iVar10 = iVar10 + -1) {\n          *puVar20 = 0;\n          puVar20 = puVar20 + (uint)bVar21 * -2 + 1;\n        }\n        local_5c[0] = (byte *)param_1[0x96];\n        local_60 = (byte *)param_1[0x97];\n        pbVar12 = local_5c[1];\n        goto code_r0x00023748;\n      }\n      pbVar12 = (byte *)param_1[0x97];\n      param_1[0x9d] = uVar5;\n      param_1[0x9c] = auStack_50[3];\n      pbVar7 = (byte *)param_1[0x96];\n      if (uVar5 != 1) goto code_r0x00023235;\n    }\n    else {\ncode_r0x00023748:\n      param_1[0x9d] = 1;\n      param_1[0x9c] = (uint)pbVar12;\n      pbVar12 = local_60;\n      pbVar7 = local_5c[0];\n    }\n    uVar19 = (uint)*pbVar7;\n    local_5c[0] = pbVar7 + 1;\n    param_1[0x96] = (uint)(pbVar7 + 1);\n    local_60 = pbVar12 + -1;\n    param_1[0x97] = (uint)(pbVar12 + -1);\n    switch(uVar19 - 10 & 0xff) {\n    case 0:\n      goto code_r0x0002359b;\n    case 0x1a:\n      goto code_r0x00023673;\n    case 0x1d:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023868;\n      goto code_r0x00023690;\n    case 0x1e:\n      bVar21 = 1;\n      goto code_r0x00023262;\n    case 0x1f:\n      bVar21 = 1;\n      goto code_r0x0002351a;\n    case 0x20:\n      goto code_r0x00023894;\n    case 0x21:\n      bVar21 = 1;\n      goto code_r0x000234d2;\n    case 0x24:\n      bVar4 = true;\n      goto code_r0x0002336a;\n    case 0x27:\n    case 0x28:\n    case 0x29:\n    case 0x2a:\n    case 0x2b:\n    case 0x2c:\n    case 0x2d:\n    case 0x2e:\n    case 0x2f:\n      if ((*param_1 & 0x4000) == 0) {\n        *(byte *)(param_1 + 0xa3) = 0;\n        uVar19 = 0x112;\n        param_1[0x98] = 0x112;\n        goto LAB_0002318d;\n      }\n    default:\nLAB_00023150:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      break;\n    case 0x32:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10e;\n        uVar19 = 0x10e;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236f8;\n    case 0x34:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10f;\n        uVar19 = 0x10f;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236e0;\n    case 0x35:\n      bVar21 = 1;\n      goto code_r0x000233b2;\n    case 0x38:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x111;\n        uVar19 = 0x111;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x00023710;\n    case 0x49:\n    case 0x69:\n      bVar4 = true;\n      goto code_r0x0002342a;\n    case 0x4d:\n    case 0x6d:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      if ((*param_1 & 0x80000) != 0) break;\n      if (bVar21 != 0) {\n        pcVar8 = &UNK_0002f474 + (uVar19 == 0x77);\n        goto code_r0x0002345c;\n      }\n      uVar5 = 0;\n      do {\n        *(undefined4 *)((int)local_40 + uVar5) = 0;\n        uVar5 = uVar5 + 4;\n      } while (uVar5 < 0x20);\n      uVar5 = 0;\n      do {\n        if (*(byte *)((int)param_1 + uVar5 + 8) == 2) {\n          local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 != 0x100);\n      if (uVar19 == 0x57) goto code_r0x00023b34;\n      goto code_r0x00023ae7;\n    case 0x51:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5b;\n      puVar13 = auStack_6c;\n      break;\n    case 0x52:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5c;\n      puVar13 = auStack_6c;\n      break;\n    case 0x54:\n      goto code_r0x000235d7;\n    case 0x56:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023880;\n      goto code_r0x000236c8;\n    case 0x58:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x110;\n        uVar19 = 0x110;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236a8;\n    case 0x71:\n      bStack_51 = 1;\n      goto code_r0x00023295;\n    case 0x72:\n      bVar21 = 1;\n      goto code_r0x000233fa;\n    }\n    break;\n  case 0x54:\n    if ((((*param_1 & 8) != 0) || (param_1[0x98] - 0x106 < 2)) || (param_1[0x98] == 0xffffffff)) {\ncode_r0x00023880:\n      param_1[0x98] = 0x10c;\n      uVar19 = 0x10c;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x000235d7:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x5e;\n    puVar13 = auStack_6c;\n    break;\n  case 0x56:\ncode_r0x000236c8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x60;\n    puVar13 = auStack_6c;\n    break;\n  case 0x58:\ncode_r0x000236a8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x62;\n    puVar13 = auStack_6c;\n    break;\n  case 0x71:\n    bStack_51 = 0;\ncode_r0x00023295:\n    auStack_50[0] = *param_1;\n    puVar13 = auStack_6c;\n    if ((((auStack_50[0] & 0x200) != 0) &&\n        (puVar13 = auStack_6c, (((byte)(auStack_50[0] >> 0xc) ^ 1) & 1) == bStack_51)) &&\n       (((auStack_50[0] & 0x10) != 0 || (puVar13 = auStack_6c, (byte)param_1[0xa3] == 0)))) {\n      local_5c[1] = pbVar7 + (int)pbVar12;\n      param_1[0x9b] = 0xffffffff;\n      param_1[0x9a] = 0xffffffff;\n      if (local_5c[1] == local_5c[0]) {\ncode_r0x00023b5a:\n        puVar13 = auStack_6c;\n        if (bStack_51 == 0) goto code_r0x00023a30;\n      }\n      else {\n        bVar21 = pbVar7[1];\n        pbVar12 = (byte *)(int)(char)bVar21;\n        if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar7 = (byte *)0xffffffff;\n          local_60 = pbVar12;\n          do {\n            pbVar3 = local_60;\n            if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }\n            pbVar7 = pbVar3 + -0x30;\n            param_1[0x9a] = (uint)pbVar7;\n            local_5c[0] = local_5c[0] + 1;\n            if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }\n            bVar21 = *local_5c[0];\n            local_60 = (byte *)(int)(char)bVar21;\n            pbVar12 = (byte *)(int)(char)bVar21 + -0x30;\n          } while ((byte)pbVar12 < 10);\n          if (bVar21 == 0x2c) {\n            if ((int)pbVar7 < 0) goto code_r0x00023bed;\ncode_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;\n            if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }\n            bVar21 = local_5c[0][1];\n            if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            local_5c[0] = pbVar12;\n            goto code_r0x00023bd8;\n          }\n          param_1[0x9b] = (uint)pbVar7;\n          puVar17 = auStack_6c;\n          if (bStack_51 == 0) goto code_r0x00023a30;\n        }\n        else {\n          if (bVar21 == 0x2c) {\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }\ncode_r0x00023bd8:\n          if (bStack_51 == 0) goto code_r0x00023a3a;\n        }\n        puVar13 = auStack_6c;\n        if (*local_5c[0] == 0x5c) goto code_r0x00023a2b;\n      }\ncode_r0x00023a04:\n      if ((*(uint *)(puVar13 + 0x1c) & 0x200000) == 0) {\n        *(byte **)(puVar13 + -4) = pbVar12;\n        pcVar8 = "invalid content of \\{\\}";\n        ppbVar15 = (byte **)(puVar13 + -8);\n        *(undefined4 *)(puVar13 + -8) = 5;\ncode_r0x00023a1b:\n        while( true ) {\n          *(char **)((int)ppbVar15 + -4) = pcVar8;\n          puVar16 = (undefined1 *)((int)ppbVar15 + -8);\n          *(undefined4 *)((int)ppbVar15 + -8) = 0;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23;\n          uVar11 = dcgettext();\n          *(undefined4 *)((int)ppbVar15 + -8) = uVar11;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b;\n          FUN_0001be40();\n          pbVar12 = extraout_ECX;\ncode_r0x00023a2b:\n          *(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;\n          puVar17 = puVar16;\ncode_r0x00023a30:\n          puVar13 = puVar17;\n          puVar18 = puVar17;\n          if (*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)) break;\ncode_r0x00023a3a:\n          puVar13 = puVar18;\n          if ((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))\n          break;\n          uVar5 = param_1[0x9b];\n          if ((int)uVar5 < 0) {\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }\n          if ((int)uVar5 < (int)uVar19) break;\n          if ((int)uVar5 < 0x8000) goto code_r0x00023a66;\n          pcVar8 = "regular expression too big";\n          *(uint *)(puVar18 + -4) = uVar19;\n          ppbVar15 = (byte **)(puVar18 + -8);\n          *(undefined4 *)(puVar18 + -8) = 5;\n        }\n        goto code_r0x00023a04;\n      }\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x7b;\n    break;\n  case 0x72:\n    bVar21 = 0;\ncode_r0x000233fa:\n    if (((*param_1 & 0x400) != 0) || ((((byte)(*param_1 >> 0xf) ^ 1) & 1) != bVar21)) {\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x7c;\n      puVar13 = auStack_6c;\n      break;\n    }\ncode_r0x000238f1:\n    *(byte *)(param_1 + 0xa3) = 1;\n    uVar19 = 0x106;\n    param_1[0x98] = 0x106;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;\n  }" { (case_statement "case 0:\n    if (((*param_1 & 0x400) != 0) || ((*param_1 & 0x800) == 0)) {\ncode_r0x0002359b:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 10;\n      puVar13 = auStack_6c;\n      break;\n    }\n    goto code_r0x000238f1;" case number_literal : (if_statement "if (((*param_1 & 0x400) != 0) || ((*param_1 & 0x800) == 0)) {\ncode_r0x0002359b:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 10;\n      puVar13 = auStack_6c;\n      break;\n    }" if (parenthesized_expression "(((*param_1 & 0x400) != 0) || ((*param_1 & 0x800) == 0))" ( (binary_expression "((*param_1 & 0x400) != 0) || ((*param_1 & 0x800) == 0)" (parenthesized_expression "((*param_1 & 0x400) != 0)" ( (binary_expression "(*param_1 & 0x400) != 0" (parenthesized_expression "(*param_1 & 0x400)" ( (binary_expression "*param_1 & 0x400" (pointer_expression "*param_1" * identifier) & number_literal) )) != number_literal) )) || (parenthesized_expression "((*param_1 & 0x800) == 0)" ( (binary_expression "(*param_1 & 0x800) == 0" (parenthesized_expression "(*param_1 & 0x800)" ( (binary_expression "*param_1 & 0x800" (pointer_expression "*param_1" * identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\ncode_r0x0002359b:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 10;\n      puVar13 = auStack_6c;\n      break;\n    }" { (labeled_statement "code_r0x0002359b:\n      bVar21 = (byte)param_1[0xcc];" statement_identifier : (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;)) (expression_statement "uVar19 = 10;" (assignment_expression "uVar19 = 10" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (break_statement "break;" break ;) })) (goto_statement "goto code_r0x000238f1;" goto statement_identifier ;)) (case_statement "default:\n    goto LAB_00023150;" default : (goto_statement "goto LAB_00023150;" goto statement_identifier ;)) (case_statement "case 0x1a:\n    uVar19 = *param_1;\n    if ((((((uVar19 & 8) != 0) || (local_60 == (byte *)0x0)) ||\n         ((pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)))) ||\n        ((pbVar12 = (byte *)((uVar19 >> 0xf ^ 1) & 1), pbVar12 < local_60 &&\n         (local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c)))) ||\n       (((uVar19 & 0x800) != 0 && (pbVar7[1] == 10)))) {\ncode_r0x00023868:\n      param_1[0x98] = 0x10d;\n      uVar19 = 0x10d;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x00023673:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x24;\n    puVar13 = auStack_6c;\n    break;" case number_literal : (expression_statement "uVar19 = *param_1;" (assignment_expression "uVar19 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if ((((((uVar19 & 8) != 0) || (local_60 == (byte *)0x0)) ||\n         ((pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)))) ||\n        ((pbVar12 = (byte *)((uVar19 >> 0xf ^ 1) & 1), pbVar12 < local_60 &&\n         (local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c)))) ||\n       (((uVar19 & 0x800) != 0 && (pbVar7[1] == 10)))) {\ncode_r0x00023868:\n      param_1[0x98] = 0x10d;\n      uVar19 = 0x10d;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" if (parenthesized_expression "((((((uVar19 & 8) != 0) || (local_60 == (byte *)0x0)) ||\n         ((pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)))) ||\n        ((pbVar12 = (byte *)((uVar19 >> 0xf ^ 1) & 1), pbVar12 < local_60 &&\n         (local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c)))) ||\n       (((uVar19 & 0x800) != 0 && (pbVar7[1] == 10))))" ( (binary_expression "(((((uVar19 & 8) != 0) || (local_60 == (byte *)0x0)) ||\n         ((pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)))) ||\n        ((pbVar12 = (byte *)((uVar19 >> 0xf ^ 1) & 1), pbVar12 < local_60 &&\n         (local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c)))) ||\n       (((uVar19 & 0x800) != 0 && (pbVar7[1] == 10)))" (parenthesized_expression "(((((uVar19 & 8) != 0) || (local_60 == (byte *)0x0)) ||\n         ((pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)))) ||\n        ((pbVar12 = (byte *)((uVar19 >> 0xf ^ 1) & 1), pbVar12 < local_60 &&\n         (local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c))))" ( (binary_expression "((((uVar19 & 8) != 0) || (local_60 == (byte *)0x0)) ||\n         ((pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)))) ||\n        ((pbVar12 = (byte *)((uVar19 >> 0xf ^ 1) & 1), pbVar12 < local_60 &&\n         (local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c)))" (parenthesized_expression "((((uVar19 & 8) != 0) || (local_60 == (byte *)0x0)) ||\n         ((pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29))))" ( (binary_expression "(((uVar19 & 8) != 0) || (local_60 == (byte *)0x0)) ||\n         ((pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)))" (parenthesized_expression "(((uVar19 & 8) != 0) || (local_60 == (byte *)0x0))" ( (binary_expression "((uVar19 & 8) != 0) || (local_60 == (byte *)0x0)" (parenthesized_expression "((uVar19 & 8) != 0)" ( (binary_expression "(uVar19 & 8) != 0" (parenthesized_expression "(uVar19 & 8)" ( (binary_expression "uVar19 & 8" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "(local_60 == (byte *)0x0)" ( (binary_expression "local_60 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) || (parenthesized_expression "((pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)))" ( (parenthesized_expression "(pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29))" ( (comma_expression "pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)" (assignment_expression "pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1)" identifier = (cast_expression "(byte *)((uVar19 >> 0xd ^ 1) & 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uVar19 >> 0xd ^ 1) & 1)" ( (binary_expression "(uVar19 >> 0xd ^ 1) & 1" (parenthesized_expression "(uVar19 >> 0xd ^ 1)" ( (binary_expression "uVar19 >> 0xd ^ 1" (binary_expression "uVar19 >> 0xd" identifier >> number_literal) ^ number_literal) )) & number_literal) )))) , (binary_expression "pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)" (binary_expression "pbVar12 < local_60" identifier < identifier) && (parenthesized_expression "(local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)" ( (binary_expression "local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29" (subscript_expression "local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12]" (subscript_expression "local_5c[0]" identifier [ number_literal ]) [ (binary_expression "(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12" (call_expression "(uint)(pbVar7[1] == 0x5c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar7[1] == 0x5c)" ( (binary_expression "pbVar7[1] == 0x5c" (subscript_expression "pbVar7[1]" identifier [ number_literal ]) == number_literal) ))) & (cast_expression "(uint)pbVar12" ( (type_descriptor "uint" type_identifier) ) identifier)) ]) == number_literal) )))) )) ))) )) || (parenthesized_expression "((pbVar12 = (byte *)((uVar19 >> 0xf ^ 1) & 1), pbVar12 < local_60 &&\n         (local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c)))" ( (parenthesized_expression "(pbVar12 = (byte *)((uVar19 >> 0xf ^ 1) & 1), pbVar12 < local_60 &&\n         (local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c))" ( (comma_expression "pbVar12 = (byte *)((uVar19 >> 0xf ^ 1) & 1), pbVar12 < local_60 &&\n         (local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c)" (assignment_expression "pbVar12 = (byte *)((uVar19 >> 0xf ^ 1) & 1)" identifier = (cast_expression "(byte *)((uVar19 >> 0xf ^ 1) & 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uVar19 >> 0xf ^ 1) & 1)" ( (binary_expression "(uVar19 >> 0xf ^ 1) & 1" (parenthesized_expression "(uVar19 >> 0xf ^ 1)" ( (binary_expression "uVar19 >> 0xf ^ 1" (binary_expression "uVar19 >> 0xf" identifier >> number_literal) ^ number_literal) )) & number_literal) )))) , (binary_expression "pbVar12 < local_60 &&\n         (local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c)" (binary_expression "pbVar12 < local_60" identifier < identifier) && (parenthesized_expression "(local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c)" ( (binary_expression "local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c" (subscript_expression "local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)]" (subscript_expression "local_5c[0]" identifier [ number_literal ]) [ (binary_expression "(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)" (cast_expression "(uint)pbVar12" ( (type_descriptor "uint" type_identifier) ) identifier) & (call_expression "(uint)(pbVar7[1] == 0x5c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar7[1] == 0x5c)" ( (binary_expression "pbVar7[1] == 0x5c" (subscript_expression "pbVar7[1]" identifier [ number_literal ]) == number_literal) )))) ]) == number_literal) )))) )) ))) )) || (parenthesized_expression "(((uVar19 & 0x800) != 0 && (pbVar7[1] == 10)))" ( (parenthesized_expression "((uVar19 & 0x800) != 0 && (pbVar7[1] == 10))" ( (binary_expression "(uVar19 & 0x800) != 0 && (pbVar7[1] == 10)" (binary_expression "(uVar19 & 0x800) != 0" (parenthesized_expression "(uVar19 & 0x800)" ( (binary_expression "uVar19 & 0x800" identifier & number_literal) )) != number_literal) && (parenthesized_expression "(pbVar7[1] == 10)" ( (binary_expression "pbVar7[1] == 10" (subscript_expression "pbVar7[1]" identifier [ number_literal ]) == number_literal) ))) )) ))) )) (compound_statement "{\ncode_r0x00023868:\n      param_1[0x98] = 0x10d;\n      uVar19 = 0x10d;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" { (labeled_statement "code_r0x00023868:\n      param_1[0x98] = 0x10d;" statement_identifier : (expression_statement "param_1[0x98] = 0x10d;" (assignment_expression "param_1[0x98] = 0x10d" (subscript_expression "param_1[0x98]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "uVar19 = 0x10d;" (assignment_expression "uVar19 = 0x10d" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) })) (labeled_statement "code_r0x00023673:\n    bVar21 = (byte)param_1[0xcc];" statement_identifier : (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;)) (expression_statement "uVar19 = 0x24;" (assignment_expression "uVar19 = 0x24" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x1d:\ncode_r0x00023690:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x27;\n    puVar13 = auStack_6c;\n    break;" case number_literal : (labeled_statement "code_r0x00023690:\n    bVar21 = (byte)param_1[0xcc];" statement_identifier : (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;)) (expression_statement "uVar19 = 0x27;" (assignment_expression "uVar19 = 0x27" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x1e:\n    bVar21 = 0;\ncode_r0x00023262:\n    if ((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) {\n      param_1[0x99] = param_1[0x99] + 1;\n      uVar19 = 0x107;\n      *(byte *)(param_1 + 0xa3) = 1;\n      param_1[0x98] = 0x107;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x28;\n    puVar13 = auStack_6c;\n    break;" case number_literal : (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" identifier = number_literal) ;) (labeled_statement "code_r0x00023262:\n    if ((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) {\n      param_1[0x99] = param_1[0x99] + 1;\n      uVar19 = 0x107;\n      *(byte *)(param_1 + 0xa3) = 1;\n      param_1[0x98] = 0x107;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" statement_identifier : (if_statement "if ((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) {\n      param_1[0x99] = param_1[0x99] + 1;\n      uVar19 = 0x107;\n      *(byte *)(param_1 + 0xa3) = 1;\n      param_1[0x98] = 0x107;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" if (parenthesized_expression "((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21)" ( (binary_expression "(((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21" (parenthesized_expression "(((byte)(*param_1 >> 0xd) ^ 1) & 1)" ( (binary_expression "((byte)(*param_1 >> 0xd) ^ 1) & 1" (parenthesized_expression "((byte)(*param_1 >> 0xd) ^ 1)" ( (binary_expression "(byte)(*param_1 >> 0xd) ^ 1" (call_expression "(byte)(*param_1 >> 0xd)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*param_1 >> 0xd)" ( (binary_expression "*param_1 >> 0xd" (pointer_expression "*param_1" * identifier) >> number_literal) ))) ^ number_literal) )) & number_literal) )) == identifier) )) (compound_statement "{\n      param_1[0x99] = param_1[0x99] + 1;\n      uVar19 = 0x107;\n      *(byte *)(param_1 + 0xa3) = 1;\n      param_1[0x98] = 0x107;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" { (expression_statement "param_1[0x99] = param_1[0x99] + 1;" (assignment_expression "param_1[0x99] = param_1[0x99] + 1" (subscript_expression "param_1[0x99]" identifier [ number_literal ]) = (binary_expression "param_1[0x99] + 1" (subscript_expression "param_1[0x99]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "uVar19 = 0x107;" (assignment_expression "uVar19 = 0x107" identifier = number_literal) ;) (expression_statement "*(byte *)(param_1 + 0xa3) = 1;" (assignment_expression "*(byte *)(param_1 + 0xa3) = 1" (pointer_expression "*(byte *)(param_1 + 0xa3)" * (cast_expression "(byte *)(param_1 + 0xa3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa3)" ( (binary_expression "param_1 + 0xa3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_1[0x98] = 0x107;" (assignment_expression "param_1[0x98] = 0x107" (subscript_expression "param_1[0x98]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) }))) (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;) (expression_statement "uVar19 = 0x28;" (assignment_expression "uVar19 = 0x28" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x1f:\n    bVar21 = 0;\ncode_r0x0002351a:\n    if (((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) &&\n       ((param_1[0x99] != 0 || ((*param_1 & 0x20000) == 0)))) {\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x108;\n      param_1[0x99] = param_1[0x99] - 1;\n      param_1[0x98] = 0x108;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x29;\n    puVar13 = auStack_6c;\n    break;" case number_literal : (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" identifier = number_literal) ;) (labeled_statement "code_r0x0002351a:\n    if (((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) &&\n       ((param_1[0x99] != 0 || ((*param_1 & 0x20000) == 0)))) {\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x108;\n      param_1[0x99] = param_1[0x99] - 1;\n      param_1[0x98] = 0x108;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" statement_identifier : (if_statement "if (((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) &&\n       ((param_1[0x99] != 0 || ((*param_1 & 0x20000) == 0)))) {\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x108;\n      param_1[0x99] = param_1[0x99] - 1;\n      param_1[0x98] = 0x108;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" if (parenthesized_expression "(((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) &&\n       ((param_1[0x99] != 0 || ((*param_1 & 0x20000) == 0))))" ( (binary_expression "((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) &&\n       ((param_1[0x99] != 0 || ((*param_1 & 0x20000) == 0)))" (parenthesized_expression "((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21)" ( (binary_expression "(((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21" (parenthesized_expression "(((byte)(*param_1 >> 0xd) ^ 1) & 1)" ( (binary_expression "((byte)(*param_1 >> 0xd) ^ 1) & 1" (parenthesized_expression "((byte)(*param_1 >> 0xd) ^ 1)" ( (binary_expression "(byte)(*param_1 >> 0xd) ^ 1" (call_expression "(byte)(*param_1 >> 0xd)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*param_1 >> 0xd)" ( (binary_expression "*param_1 >> 0xd" (pointer_expression "*param_1" * identifier) >> number_literal) ))) ^ number_literal) )) & number_literal) )) == identifier) )) && (parenthesized_expression "((param_1[0x99] != 0 || ((*param_1 & 0x20000) == 0)))" ( (parenthesized_expression "(param_1[0x99] != 0 || ((*param_1 & 0x20000) == 0))" ( (binary_expression "param_1[0x99] != 0 || ((*param_1 & 0x20000) == 0)" (binary_expression "param_1[0x99] != 0" (subscript_expression "param_1[0x99]" identifier [ number_literal ]) != number_literal) || (parenthesized_expression "((*param_1 & 0x20000) == 0)" ( (binary_expression "(*param_1 & 0x20000) == 0" (parenthesized_expression "(*param_1 & 0x20000)" ( (binary_expression "*param_1 & 0x20000" (pointer_expression "*param_1" * identifier) & number_literal) )) == number_literal) ))) )) ))) )) (compound_statement "{\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x108;\n      param_1[0x99] = param_1[0x99] - 1;\n      param_1[0x98] = 0x108;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" { (expression_statement "*(byte *)(param_1 + 0xa3) = 0;" (assignment_expression "*(byte *)(param_1 + 0xa3) = 0" (pointer_expression "*(byte *)(param_1 + 0xa3)" * (cast_expression "(byte *)(param_1 + 0xa3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa3)" ( (binary_expression "param_1 + 0xa3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar19 = 0x108;" (assignment_expression "uVar19 = 0x108" identifier = number_literal) ;) (expression_statement "param_1[0x99] = param_1[0x99] - 1;" (assignment_expression "param_1[0x99] = param_1[0x99] - 1" (subscript_expression "param_1[0x99]" identifier [ number_literal ]) = (binary_expression "param_1[0x99] - 1" (subscript_expression "param_1[0x99]" identifier [ number_literal ]) - number_literal)) ;) (expression_statement "param_1[0x98] = 0x108;" (assignment_expression "param_1[0x98] = 0x108" (subscript_expression "param_1[0x98]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) }))) (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;) (expression_statement "uVar19 = 0x29;" (assignment_expression "uVar19 = 0x29" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x20:\n    if (((*param_1 & 0x10) != 0) || ((byte)param_1[0xa3] == 0)) {\n      param_1[0x98] = 0x102;\n      uVar19 = 0x102;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x00023894:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x2a;\n    puVar13 = auStack_6c;\n    break;" case number_literal : (if_statement "if (((*param_1 & 0x10) != 0) || ((byte)param_1[0xa3] == 0)) {\n      param_1[0x98] = 0x102;\n      uVar19 = 0x102;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" if (parenthesized_expression "(((*param_1 & 0x10) != 0) || ((byte)param_1[0xa3] == 0))" ( (binary_expression "((*param_1 & 0x10) != 0) || ((byte)param_1[0xa3] == 0)" (parenthesized_expression "((*param_1 & 0x10) != 0)" ( (binary_expression "(*param_1 & 0x10) != 0" (parenthesized_expression "(*param_1 & 0x10)" ( (binary_expression "*param_1 & 0x10" (pointer_expression "*param_1" * identifier) & number_literal) )) != number_literal) )) || (parenthesized_expression "((byte)param_1[0xa3] == 0)" ( (binary_expression "(byte)param_1[0xa3] == 0" (cast_expression "(byte)param_1[0xa3]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xa3]" identifier [ number_literal ])) == number_literal) ))) )) (compound_statement "{\n      param_1[0x98] = 0x102;\n      uVar19 = 0x102;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" { (expression_statement "param_1[0x98] = 0x102;" (assignment_expression "param_1[0x98] = 0x102" (subscript_expression "param_1[0x98]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar19 = 0x102;" (assignment_expression "uVar19 = 0x102" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) })) (labeled_statement "code_r0x00023894:\n    bVar21 = (byte)param_1[0xcc];" statement_identifier : (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;)) (expression_statement "uVar19 = 0x2a;" (assignment_expression "uVar19 = 0x2a" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x21:\n    bVar21 = 0;\ncode_r0x000234d2:\n    uVar19 = *param_1;\n    if ((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))) {\n      param_1[0x98] = 0x103;\n      uVar19 = 0x103;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x2b;\n    puVar13 = auStack_6c;\n    break;" case number_literal : (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" identifier = number_literal) ;) (labeled_statement "code_r0x000234d2:\n    uVar19 = *param_1;" statement_identifier : (expression_statement "uVar19 = *param_1;" (assignment_expression "uVar19 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;)) (if_statement "if ((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))) {\n      param_1[0x98] = 0x103;\n      uVar19 = 0x103;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" if (parenthesized_expression "((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0))))" ( (binary_expression "(((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))" (parenthesized_expression "(((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21))" ( (binary_expression "((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)" (parenthesized_expression "((uVar19 & 0x400) == 0)" ( (binary_expression "(uVar19 & 0x400) == 0" (parenthesized_expression "(uVar19 & 0x400)" ( (binary_expression "uVar19 & 0x400" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(((byte)(uVar19 >> 1) & 1) == bVar21)" ( (binary_expression "((byte)(uVar19 >> 1) & 1) == bVar21" (parenthesized_expression "((byte)(uVar19 >> 1) & 1)" ( (binary_expression "(byte)(uVar19 >> 1) & 1" (call_expression "(byte)(uVar19 >> 1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar19 >> 1)" ( (binary_expression "uVar19 >> 1" identifier >> number_literal) ))) & number_literal) )) == identifier) ))) )) && (parenthesized_expression "(((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))" ( (parenthesized_expression "((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0))" ( (binary_expression "(uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)" (binary_expression "(uVar19 & 0x10) != 0" (parenthesized_expression "(uVar19 & 0x10)" ( (binary_expression "uVar19 & 0x10" identifier & number_literal) )) != number_literal) || (parenthesized_expression "((byte)param_1[0xa3] == 0)" ( (binary_expression "(byte)param_1[0xa3] == 0" (cast_expression "(byte)param_1[0xa3]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xa3]" identifier [ number_literal ])) == number_literal) ))) )) ))) )) (compound_statement "{\n      param_1[0x98] = 0x103;\n      uVar19 = 0x103;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" { (expression_statement "param_1[0x98] = 0x103;" (assignment_expression "param_1[0x98] = 0x103" (subscript_expression "param_1[0x98]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar19 = 0x103;" (assignment_expression "uVar19 = 0x103" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) })) (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;) (expression_statement "uVar19 = 0x2b;" (assignment_expression "uVar19 = 0x2b" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x24:\n    bVar4 = false;\ncode_r0x0002336a:\n    bVar21 = (byte)param_1[0xcc];\n    if (!bVar4) {\n      uVar5 = param_1[0x95];\n      if (uVar5 == 0xffffffff) {\n        local_40[0] = 0xffffffff;\n        local_40[1] = 0xffffffff;\n        local_40[2] = 0xffffffff;\n        local_40[3] = 0xffffffff;\n        local_40[4] = 0xffffffff;\n        local_40[5] = 0xffffffff;\n        local_40[6] = 0xffffffff;\n        local_40[7] = 0xffffffff;\n        if ((*param_1 & 0x40) == 0) {\n          local_40[0] = 0xfffffbff;\n        }\n        if ((*param_1 & 0x80) != 0) {\n          local_40[0] = local_40[0] & 0xfffffffe;\n        }\n        if (bVar21 != 0) {\n          uVar19 = 0;\n          do {\n            if (param_1[uVar19 + 0x10d] == 0xffffffff) {\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }\n            uVar19 = uVar19 + 1;\n          } while (uVar19 != 0x100);\n        }\n        puStack_70 = (uint *)&UNK_000239cf;\n        uVar5 = FUN_0001e6a0();\n        bVar21 = (byte)param_1[0xcc];\n        param_1[0x95] = uVar5;\n      }\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x10a;\n      if (bVar21 == 0) {\n        uVar19 = uVar5 + 0x114;\n      }\n      param_1[0x98] = uVar19;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    uVar19 = 0x2e;\n    puVar13 = auStack_6c;\n    break;" case number_literal : (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) (labeled_statement "code_r0x0002336a:\n    bVar21 = (byte)param_1[0xcc];" statement_identifier : (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;)) (if_statement "if (!bVar4) {\n      uVar5 = param_1[0x95];\n      if (uVar5 == 0xffffffff) {\n        local_40[0] = 0xffffffff;\n        local_40[1] = 0xffffffff;\n        local_40[2] = 0xffffffff;\n        local_40[3] = 0xffffffff;\n        local_40[4] = 0xffffffff;\n        local_40[5] = 0xffffffff;\n        local_40[6] = 0xffffffff;\n        local_40[7] = 0xffffffff;\n        if ((*param_1 & 0x40) == 0) {\n          local_40[0] = 0xfffffbff;\n        }\n        if ((*param_1 & 0x80) != 0) {\n          local_40[0] = local_40[0] & 0xfffffffe;\n        }\n        if (bVar21 != 0) {\n          uVar19 = 0;\n          do {\n            if (param_1[uVar19 + 0x10d] == 0xffffffff) {\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }\n            uVar19 = uVar19 + 1;\n          } while (uVar19 != 0x100);\n        }\n        puStack_70 = (uint *)&UNK_000239cf;\n        uVar5 = FUN_0001e6a0();\n        bVar21 = (byte)param_1[0xcc];\n        param_1[0x95] = uVar5;\n      }\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x10a;\n      if (bVar21 == 0) {\n        uVar19 = uVar5 + 0x114;\n      }\n      param_1[0x98] = uVar19;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" if (parenthesized_expression "(!bVar4)" ( (unary_expression "!bVar4" ! identifier) )) (compound_statement "{\n      uVar5 = param_1[0x95];\n      if (uVar5 == 0xffffffff) {\n        local_40[0] = 0xffffffff;\n        local_40[1] = 0xffffffff;\n        local_40[2] = 0xffffffff;\n        local_40[3] = 0xffffffff;\n        local_40[4] = 0xffffffff;\n        local_40[5] = 0xffffffff;\n        local_40[6] = 0xffffffff;\n        local_40[7] = 0xffffffff;\n        if ((*param_1 & 0x40) == 0) {\n          local_40[0] = 0xfffffbff;\n        }\n        if ((*param_1 & 0x80) != 0) {\n          local_40[0] = local_40[0] & 0xfffffffe;\n        }\n        if (bVar21 != 0) {\n          uVar19 = 0;\n          do {\n            if (param_1[uVar19 + 0x10d] == 0xffffffff) {\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }\n            uVar19 = uVar19 + 1;\n          } while (uVar19 != 0x100);\n        }\n        puStack_70 = (uint *)&UNK_000239cf;\n        uVar5 = FUN_0001e6a0();\n        bVar21 = (byte)param_1[0xcc];\n        param_1[0x95] = uVar5;\n      }\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x10a;\n      if (bVar21 == 0) {\n        uVar19 = uVar5 + 0x114;\n      }\n      param_1[0x98] = uVar19;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" { (expression_statement "uVar5 = param_1[0x95];" (assignment_expression "uVar5 = param_1[0x95]" identifier = (subscript_expression "param_1[0x95]" identifier [ number_literal ])) ;) (if_statement "if (uVar5 == 0xffffffff) {\n        local_40[0] = 0xffffffff;\n        local_40[1] = 0xffffffff;\n        local_40[2] = 0xffffffff;\n        local_40[3] = 0xffffffff;\n        local_40[4] = 0xffffffff;\n        local_40[5] = 0xffffffff;\n        local_40[6] = 0xffffffff;\n        local_40[7] = 0xffffffff;\n        if ((*param_1 & 0x40) == 0) {\n          local_40[0] = 0xfffffbff;\n        }\n        if ((*param_1 & 0x80) != 0) {\n          local_40[0] = local_40[0] & 0xfffffffe;\n        }\n        if (bVar21 != 0) {\n          uVar19 = 0;\n          do {\n            if (param_1[uVar19 + 0x10d] == 0xffffffff) {\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }\n            uVar19 = uVar19 + 1;\n          } while (uVar19 != 0x100);\n        }\n        puStack_70 = (uint *)&UNK_000239cf;\n        uVar5 = FUN_0001e6a0();\n        bVar21 = (byte)param_1[0xcc];\n        param_1[0x95] = uVar5;\n      }" if (parenthesized_expression "(uVar5 == 0xffffffff)" ( (binary_expression "uVar5 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n        local_40[0] = 0xffffffff;\n        local_40[1] = 0xffffffff;\n        local_40[2] = 0xffffffff;\n        local_40[3] = 0xffffffff;\n        local_40[4] = 0xffffffff;\n        local_40[5] = 0xffffffff;\n        local_40[6] = 0xffffffff;\n        local_40[7] = 0xffffffff;\n        if ((*param_1 & 0x40) == 0) {\n          local_40[0] = 0xfffffbff;\n        }\n        if ((*param_1 & 0x80) != 0) {\n          local_40[0] = local_40[0] & 0xfffffffe;\n        }\n        if (bVar21 != 0) {\n          uVar19 = 0;\n          do {\n            if (param_1[uVar19 + 0x10d] == 0xffffffff) {\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }\n            uVar19 = uVar19 + 1;\n          } while (uVar19 != 0x100);\n        }\n        puStack_70 = (uint *)&UNK_000239cf;\n        uVar5 = FUN_0001e6a0();\n        bVar21 = (byte)param_1[0xcc];\n        param_1[0x95] = uVar5;\n      }" { (expression_statement "local_40[0] = 0xffffffff;" (assignment_expression "local_40[0] = 0xffffffff" (subscript_expression "local_40[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_40[1] = 0xffffffff;" (assignment_expression "local_40[1] = 0xffffffff" (subscript_expression "local_40[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_40[2] = 0xffffffff;" (assignment_expression "local_40[2] = 0xffffffff" (subscript_expression "local_40[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_40[3] = 0xffffffff;" (assignment_expression "local_40[3] = 0xffffffff" (subscript_expression "local_40[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_40[4] = 0xffffffff;" (assignment_expression "local_40[4] = 0xffffffff" (subscript_expression "local_40[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_40[5] = 0xffffffff;" (assignment_expression "local_40[5] = 0xffffffff" (subscript_expression "local_40[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_40[6] = 0xffffffff;" (assignment_expression "local_40[6] = 0xffffffff" (subscript_expression "local_40[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_40[7] = 0xffffffff;" (assignment_expression "local_40[7] = 0xffffffff" (subscript_expression "local_40[7]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if ((*param_1 & 0x40) == 0) {\n          local_40[0] = 0xfffffbff;\n        }" if (parenthesized_expression "((*param_1 & 0x40) == 0)" ( (binary_expression "(*param_1 & 0x40) == 0" (parenthesized_expression "(*param_1 & 0x40)" ( (binary_expression "*param_1 & 0x40" (pointer_expression "*param_1" * identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n          local_40[0] = 0xfffffbff;\n        }" { (expression_statement "local_40[0] = 0xfffffbff;" (assignment_expression "local_40[0] = 0xfffffbff" (subscript_expression "local_40[0]" identifier [ number_literal ]) = number_literal) ;) })) (if_statement "if ((*param_1 & 0x80) != 0) {\n          local_40[0] = local_40[0] & 0xfffffffe;\n        }" if (parenthesized_expression "((*param_1 & 0x80) != 0)" ( (binary_expression "(*param_1 & 0x80) != 0" (parenthesized_expression "(*param_1 & 0x80)" ( (binary_expression "*param_1 & 0x80" (pointer_expression "*param_1" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          local_40[0] = local_40[0] & 0xfffffffe;\n        }" { (expression_statement "local_40[0] = local_40[0] & 0xfffffffe;" (assignment_expression "local_40[0] = local_40[0] & 0xfffffffe" (subscript_expression "local_40[0]" identifier [ number_literal ]) = (binary_expression "local_40[0] & 0xfffffffe" (subscript_expression "local_40[0]" identifier [ number_literal ]) & number_literal)) ;) })) (if_statement "if (bVar21 != 0) {\n          uVar19 = 0;\n          do {\n            if (param_1[uVar19 + 0x10d] == 0xffffffff) {\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }\n            uVar19 = uVar19 + 1;\n          } while (uVar19 != 0x100);\n        }" if (parenthesized_expression "(bVar21 != 0)" ( (binary_expression "bVar21 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar19 = 0;\n          do {\n            if (param_1[uVar19 + 0x10d] == 0xffffffff) {\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }\n            uVar19 = uVar19 + 1;\n          } while (uVar19 != 0x100);\n        }" { (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (do_statement "do {\n            if (param_1[uVar19 + 0x10d] == 0xffffffff) {\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }\n            uVar19 = uVar19 + 1;\n          } while (uVar19 != 0x100);" do (compound_statement "{\n            if (param_1[uVar19 + 0x10d] == 0xffffffff) {\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }\n            uVar19 = uVar19 + 1;\n          }" { (if_statement "if (param_1[uVar19 + 0x10d] == 0xffffffff) {\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }" if (parenthesized_expression "(param_1[uVar19 + 0x10d] == 0xffffffff)" ( (binary_expression "param_1[uVar19 + 0x10d] == 0xffffffff" (subscript_expression "param_1[uVar19 + 0x10d]" identifier [ (binary_expression "uVar19 + 0x10d" identifier + number_literal) ]) == number_literal) )) (compound_statement "{\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }" { (expression_statement "local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));" (assignment_expression "local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f))" (subscript_expression "local_40[uVar19 >> 5]" identifier [ (binary_expression "uVar19 >> 5" identifier >> number_literal) ]) = (binary_expression "local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f))" (subscript_expression "local_40[uVar19 >> 5]" identifier [ (binary_expression "uVar19 >> 5" identifier >> number_literal) ]) & (unary_expression "~(1 << ((byte)uVar19 & 0x1f))" ~ (parenthesized_expression "(1 << ((byte)uVar19 & 0x1f))" ( (binary_expression "1 << ((byte)uVar19 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar19 & 0x1f)" ( (binary_expression "(byte)uVar19 & 0x1f" (cast_expression "(byte)uVar19" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))))) ;) })) (expression_statement "uVar19 = uVar19 + 1;" (assignment_expression "uVar19 = uVar19 + 1" identifier = (binary_expression "uVar19 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar19 != 0x100)" ( (binary_expression "uVar19 != 0x100" identifier != number_literal) )) ;) })) (expression_statement "puStack_70 = (uint *)&UNK_000239cf;" (assignment_expression "puStack_70 = (uint *)&UNK_000239cf" identifier = (cast_expression "(uint *)&UNK_000239cf" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&UNK_000239cf" & identifier))) ;) (expression_statement "uVar5 = FUN_0001e6a0();" (assignment_expression "uVar5 = FUN_0001e6a0()" identifier = (call_expression "FUN_0001e6a0()" identifier (argument_list "()" ( )))) ;) (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;) (expression_statement "param_1[0x95] = uVar5;" (assignment_expression "param_1[0x95] = uVar5" (subscript_expression "param_1[0x95]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "*(byte *)(param_1 + 0xa3) = 0;" (assignment_expression "*(byte *)(param_1 + 0xa3) = 0" (pointer_expression "*(byte *)(param_1 + 0xa3)" * (cast_expression "(byte *)(param_1 + 0xa3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa3)" ( (binary_expression "param_1 + 0xa3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar19 = 0x10a;" (assignment_expression "uVar19 = 0x10a" identifier = number_literal) ;) (if_statement "if (bVar21 == 0) {\n        uVar19 = uVar5 + 0x114;\n      }" if (parenthesized_expression "(bVar21 == 0)" ( (binary_expression "bVar21 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar19 = uVar5 + 0x114;\n      }" { (expression_statement "uVar19 = uVar5 + 0x114;" (assignment_expression "uVar19 = uVar5 + 0x114" identifier = (binary_expression "uVar5 + 0x114" identifier + number_literal)) ;) })) (expression_statement "param_1[0x98] = uVar19;" (assignment_expression "param_1[0x98] = uVar19" (subscript_expression "param_1[0x98]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) })) (expression_statement "uVar19 = 0x2e;" (assignment_expression "uVar19 = 0x2e" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x32:\ncode_r0x000236f8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3c;\n    puVar13 = auStack_6c;\n    break;" case number_literal : (labeled_statement "code_r0x000236f8:\n    bVar21 = (byte)param_1[0xcc];" statement_identifier : (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;)) (expression_statement "uVar19 = 0x3c;" (assignment_expression "uVar19 = 0x3c" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x34:\ncode_r0x000236e0:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3e;\n    puVar13 = auStack_6c;\n    break;" case number_literal : (labeled_statement "code_r0x000236e0:\n    bVar21 = (byte)param_1[0xcc];" statement_identifier : (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;)) (expression_statement "uVar19 = 0x3e;" (assignment_expression "uVar19 = 0x3e" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x35:\n    bVar21 = 0;\ncode_r0x000233b2:\n    uVar19 = *param_1;\n    if ((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))) {\n      param_1[0x98] = 0x101;\n      uVar19 = 0x101;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3f;\n    puVar13 = auStack_6c;\n    break;" case number_literal : (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" identifier = number_literal) ;) (labeled_statement "code_r0x000233b2:\n    uVar19 = *param_1;" statement_identifier : (expression_statement "uVar19 = *param_1;" (assignment_expression "uVar19 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;)) (if_statement "if ((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))) {\n      param_1[0x98] = 0x101;\n      uVar19 = 0x101;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" if (parenthesized_expression "((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0))))" ( (binary_expression "(((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))" (parenthesized_expression "(((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21))" ( (binary_expression "((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)" (parenthesized_expression "((uVar19 & 0x400) == 0)" ( (binary_expression "(uVar19 & 0x400) == 0" (parenthesized_expression "(uVar19 & 0x400)" ( (binary_expression "uVar19 & 0x400" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(((byte)(uVar19 >> 1) & 1) == bVar21)" ( (binary_expression "((byte)(uVar19 >> 1) & 1) == bVar21" (parenthesized_expression "((byte)(uVar19 >> 1) & 1)" ( (binary_expression "(byte)(uVar19 >> 1) & 1" (call_expression "(byte)(uVar19 >> 1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar19 >> 1)" ( (binary_expression "uVar19 >> 1" identifier >> number_literal) ))) & number_literal) )) == identifier) ))) )) && (parenthesized_expression "(((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))" ( (parenthesized_expression "((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0))" ( (binary_expression "(uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)" (binary_expression "(uVar19 & 0x10) != 0" (parenthesized_expression "(uVar19 & 0x10)" ( (binary_expression "uVar19 & 0x10" identifier & number_literal) )) != number_literal) || (parenthesized_expression "((byte)param_1[0xa3] == 0)" ( (binary_expression "(byte)param_1[0xa3] == 0" (cast_expression "(byte)param_1[0xa3]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xa3]" identifier [ number_literal ])) == number_literal) ))) )) ))) )) (compound_statement "{\n      param_1[0x98] = 0x101;\n      uVar19 = 0x101;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" { (expression_statement "param_1[0x98] = 0x101;" (assignment_expression "param_1[0x98] = 0x101" (subscript_expression "param_1[0x98]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar19 = 0x101;" (assignment_expression "uVar19 = 0x101" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) })) (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;) (expression_statement "uVar19 = 0x3f;" (assignment_expression "uVar19 = 0x3f" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x38:\ncode_r0x00023710:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x42;\n    puVar13 = auStack_6c;\n    break;" case number_literal : (labeled_statement "code_r0x00023710:\n    bVar21 = (byte)param_1[0xcc];" statement_identifier : (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;)) (expression_statement "uVar19 = 0x42;" (assignment_expression "uVar19 = 0x42" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x49:" case number_literal :) (case_statement "case 0x69:\n    bVar4 = false;\ncode_r0x0002342a:\n    bVar21 = (byte)param_1[0xcc];\n    puVar13 = auStack_6c;\n    if ((!bVar4) || (puVar13 = auStack_6c, (*param_1 & 0x80000) != 0)) break;\n    if (bVar21 != 0) {\n      pcVar8 = &UNK_0002f468 + (uVar19 == 0x73);\ncode_r0x0002345c:\n      param_1[0x96] = (uint)pcVar8;\n      sVar9 = strlen(pcVar8);\n      param_1[0x97] = sVar9;\n      puStack_70 = (uint *)&UNK_0002347b;\n      uVar19 = FUN_00021f80();\n      *(byte *)(param_1 + 0xa3) = 0;\n      param_1[0x98] = uVar19;\n      param_1[0x96] = (uint)local_5c[0];\n      param_1[0x97] = (uint)local_60;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    uVar5 = 0;\n    do {\n      *(undefined4 *)((int)local_40 + uVar5) = 0;\n      uVar5 = uVar5 + 4;\n    } while (uVar5 < 0x20);\n    puStack_70 = (uint *)&UNK_00023ab3;\n    ppuVar6 = __ctype_b_loc();\n    uVar5 = 0;\n    puVar2 = *ppuVar6;\n    do {\n      if ((*(byte *)((int)puVar2 + uVar5 * 2 + 1) & 0x20) != 0) {\n        local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n      }\n      uVar5 = uVar5 + 1;\n    } while (uVar5 != 0x100);\n    if (uVar19 == 0x53) {\ncode_r0x00023b34:\n      local_40[0] = ~local_40[0];\n      local_40[1] = ~local_40[1];\n      local_40[2] = ~local_40[2];\n      local_40[3] = ~local_40[3];\n      local_40[4] = ~local_40[4];\n      local_40[5] = ~local_40[5];\n      local_40[6] = ~local_40[6];\n      local_40[7] = ~local_40[7];\n    }\ncode_r0x00023ae7:\n    *(byte *)(param_1 + 0xa3) = 0;\n    goto code_r0x000237bd;" case number_literal : (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) (labeled_statement "code_r0x0002342a:\n    bVar21 = (byte)param_1[0xcc];" statement_identifier : (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;)) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (if_statement "if ((!bVar4) || (puVar13 = auStack_6c, (*param_1 & 0x80000) != 0)) break;" if (parenthesized_expression "((!bVar4) || (puVar13 = auStack_6c, (*param_1 & 0x80000) != 0))" ( (binary_expression "(!bVar4) || (puVar13 = auStack_6c, (*param_1 & 0x80000) != 0)" (parenthesized_expression "(!bVar4)" ( (unary_expression "!bVar4" ! identifier) )) || (parenthesized_expression "(puVar13 = auStack_6c, (*param_1 & 0x80000) != 0)" ( (comma_expression "puVar13 = auStack_6c, (*param_1 & 0x80000) != 0" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) , (binary_expression "(*param_1 & 0x80000) != 0" (parenthesized_expression "(*param_1 & 0x80000)" ( (binary_expression "*param_1 & 0x80000" (pointer_expression "*param_1" * identifier) & number_literal) )) != number_literal)) ))) )) (break_statement "break;" break ;)) (if_statement "if (bVar21 != 0) {\n      pcVar8 = &UNK_0002f468 + (uVar19 == 0x73);\ncode_r0x0002345c:\n      param_1[0x96] = (uint)pcVar8;\n      sVar9 = strlen(pcVar8);\n      param_1[0x97] = sVar9;\n      puStack_70 = (uint *)&UNK_0002347b;\n      uVar19 = FUN_00021f80();\n      *(byte *)(param_1 + 0xa3) = 0;\n      param_1[0x98] = uVar19;\n      param_1[0x96] = (uint)local_5c[0];\n      param_1[0x97] = (uint)local_60;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" if (parenthesized_expression "(bVar21 != 0)" ( (binary_expression "bVar21 != 0" identifier != number_literal) )) (compound_statement "{\n      pcVar8 = &UNK_0002f468 + (uVar19 == 0x73);\ncode_r0x0002345c:\n      param_1[0x96] = (uint)pcVar8;\n      sVar9 = strlen(pcVar8);\n      param_1[0x97] = sVar9;\n      puStack_70 = (uint *)&UNK_0002347b;\n      uVar19 = FUN_00021f80();\n      *(byte *)(param_1 + 0xa3) = 0;\n      param_1[0x98] = uVar19;\n      param_1[0x96] = (uint)local_5c[0];\n      param_1[0x97] = (uint)local_60;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" { (expression_statement "pcVar8 = &UNK_0002f468 + (uVar19 == 0x73);" (assignment_expression "pcVar8 = &UNK_0002f468 + (uVar19 == 0x73)" identifier = (binary_expression "&UNK_0002f468 + (uVar19 == 0x73)" (pointer_expression "&UNK_0002f468" & identifier) + (parenthesized_expression "(uVar19 == 0x73)" ( (binary_expression "uVar19 == 0x73" identifier == number_literal) )))) ;) (labeled_statement "code_r0x0002345c:\n      param_1[0x96] = (uint)pcVar8;" statement_identifier : (expression_statement "param_1[0x96] = (uint)pcVar8;" (assignment_expression "param_1[0x96] = (uint)pcVar8" (subscript_expression "param_1[0x96]" identifier [ number_literal ]) = (cast_expression "(uint)pcVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) (expression_statement "sVar9 = strlen(pcVar8);" (assignment_expression "sVar9 = strlen(pcVar8)" identifier = (call_expression "strlen(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier )))) ;) (expression_statement "param_1[0x97] = sVar9;" (assignment_expression "param_1[0x97] = sVar9" (subscript_expression "param_1[0x97]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puStack_70 = (uint *)&UNK_0002347b;" (assignment_expression "puStack_70 = (uint *)&UNK_0002347b" identifier = (cast_expression "(uint *)&UNK_0002347b" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&UNK_0002347b" & identifier))) ;) (expression_statement "uVar19 = FUN_00021f80();" (assignment_expression "uVar19 = FUN_00021f80()" identifier = (call_expression "FUN_00021f80()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(byte *)(param_1 + 0xa3) = 0;" (assignment_expression "*(byte *)(param_1 + 0xa3) = 0" (pointer_expression "*(byte *)(param_1 + 0xa3)" * (cast_expression "(byte *)(param_1 + 0xa3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa3)" ( (binary_expression "param_1 + 0xa3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_1[0x98] = uVar19;" (assignment_expression "param_1[0x98] = uVar19" (subscript_expression "param_1[0x98]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[0x96] = (uint)local_5c[0];" (assignment_expression "param_1[0x96] = (uint)local_5c[0]" (subscript_expression "param_1[0x96]" identifier [ number_literal ]) = (cast_expression "(uint)local_5c[0]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_5c[0]" identifier [ number_literal ]))) ;) (expression_statement "param_1[0x97] = (uint)local_60;" (assignment_expression "param_1[0x97] = (uint)local_60" (subscript_expression "param_1[0x97]" identifier [ number_literal ]) = (cast_expression "(uint)local_60" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) })) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n      *(undefined4 *)((int)local_40 + uVar5) = 0;\n      uVar5 = uVar5 + 4;\n    } while (uVar5 < 0x20);" do (compound_statement "{\n      *(undefined4 *)((int)local_40 + uVar5) = 0;\n      uVar5 = uVar5 + 4;\n    }" { (expression_statement "*(undefined4 *)((int)local_40 + uVar5) = 0;" (assignment_expression "*(undefined4 *)((int)local_40 + uVar5) = 0" (pointer_expression "*(undefined4 *)((int)local_40 + uVar5)" * (cast_expression "(undefined4 *)((int)local_40 + uVar5)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_40 + uVar5)" ( (binary_expression "(int)local_40 + uVar5" (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "uVar5 = uVar5 + 4;" (assignment_expression "uVar5 = uVar5 + 4" identifier = (binary_expression "uVar5 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar5 < 0x20)" ( (binary_expression "uVar5 < 0x20" identifier < number_literal) )) ;) (expression_statement "puStack_70 = (uint *)&UNK_00023ab3;" (assignment_expression "puStack_70 = (uint *)&UNK_00023ab3" identifier = (cast_expression "(uint *)&UNK_00023ab3" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&UNK_00023ab3" & identifier))) ;) (expression_statement "ppuVar6 = __ctype_b_loc();" (assignment_expression "ppuVar6 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "puVar2 = *ppuVar6;" (assignment_expression "puVar2 = *ppuVar6" identifier = (pointer_expression "*ppuVar6" * identifier)) ;) (do_statement "do {\n      if ((*(byte *)((int)puVar2 + uVar5 * 2 + 1) & 0x20) != 0) {\n        local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n      }\n      uVar5 = uVar5 + 1;\n    } while (uVar5 != 0x100);" do (compound_statement "{\n      if ((*(byte *)((int)puVar2 + uVar5 * 2 + 1) & 0x20) != 0) {\n        local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n      }\n      uVar5 = uVar5 + 1;\n    }" { (if_statement "if ((*(byte *)((int)puVar2 + uVar5 * 2 + 1) & 0x20) != 0) {\n        local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n      }" if (parenthesized_expression "((*(byte *)((int)puVar2 + uVar5 * 2 + 1) & 0x20) != 0)" ( (binary_expression "(*(byte *)((int)puVar2 + uVar5 * 2 + 1) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)puVar2 + uVar5 * 2 + 1) & 0x20)" ( (binary_expression "*(byte *)((int)puVar2 + uVar5 * 2 + 1) & 0x20" (pointer_expression "*(byte *)((int)puVar2 + uVar5 * 2 + 1)" * (cast_expression "(byte *)((int)puVar2 + uVar5 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar2 + uVar5 * 2 + 1)" ( (binary_expression "(int)puVar2 + uVar5 * 2 + 1" (binary_expression "(int)puVar2 + uVar5 * 2" (cast_expression "(int)puVar2" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "uVar5 * 2" identifier * number_literal)) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n      }" { (expression_statement "local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);" (assignment_expression "local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f)" (subscript_expression "local_40[uVar5 >> 5]" identifier [ (binary_expression "uVar5 >> 5" identifier >> number_literal) ]) = (binary_expression "local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f)" (subscript_expression "local_40[uVar5 >> 5]" identifier [ (binary_expression "uVar5 >> 5" identifier >> number_literal) ]) | (binary_expression "1 << ((byte)uVar5 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar5 & 0x1f)" ( (binary_expression "(byte)uVar5 & 0x1f" (cast_expression "(byte)uVar5" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))))) ;) })) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar5 != 0x100)" ( (binary_expression "uVar5 != 0x100" identifier != number_literal) )) ;) (if_statement "if (uVar19 == 0x53) {\ncode_r0x00023b34:\n      local_40[0] = ~local_40[0];\n      local_40[1] = ~local_40[1];\n      local_40[2] = ~local_40[2];\n      local_40[3] = ~local_40[3];\n      local_40[4] = ~local_40[4];\n      local_40[5] = ~local_40[5];\n      local_40[6] = ~local_40[6];\n      local_40[7] = ~local_40[7];\n    }" if (parenthesized_expression "(uVar19 == 0x53)" ( (binary_expression "uVar19 == 0x53" identifier == number_literal) )) (compound_statement "{\ncode_r0x00023b34:\n      local_40[0] = ~local_40[0];\n      local_40[1] = ~local_40[1];\n      local_40[2] = ~local_40[2];\n      local_40[3] = ~local_40[3];\n      local_40[4] = ~local_40[4];\n      local_40[5] = ~local_40[5];\n      local_40[6] = ~local_40[6];\n      local_40[7] = ~local_40[7];\n    }" { (labeled_statement "code_r0x00023b34:\n      local_40[0] = ~local_40[0];" statement_identifier : (expression_statement "local_40[0] = ~local_40[0];" (assignment_expression "local_40[0] = ~local_40[0]" (subscript_expression "local_40[0]" identifier [ number_literal ]) = (unary_expression "~local_40[0]" ~ (subscript_expression "local_40[0]" identifier [ number_literal ]))) ;)) (expression_statement "local_40[1] = ~local_40[1];" (assignment_expression "local_40[1] = ~local_40[1]" (subscript_expression "local_40[1]" identifier [ number_literal ]) = (unary_expression "~local_40[1]" ~ (subscript_expression "local_40[1]" identifier [ number_literal ]))) ;) (expression_statement "local_40[2] = ~local_40[2];" (assignment_expression "local_40[2] = ~local_40[2]" (subscript_expression "local_40[2]" identifier [ number_literal ]) = (unary_expression "~local_40[2]" ~ (subscript_expression "local_40[2]" identifier [ number_literal ]))) ;) (expression_statement "local_40[3] = ~local_40[3];" (assignment_expression "local_40[3] = ~local_40[3]" (subscript_expression "local_40[3]" identifier [ number_literal ]) = (unary_expression "~local_40[3]" ~ (subscript_expression "local_40[3]" identifier [ number_literal ]))) ;) (expression_statement "local_40[4] = ~local_40[4];" (assignment_expression "local_40[4] = ~local_40[4]" (subscript_expression "local_40[4]" identifier [ number_literal ]) = (unary_expression "~local_40[4]" ~ (subscript_expression "local_40[4]" identifier [ number_literal ]))) ;) (expression_statement "local_40[5] = ~local_40[5];" (assignment_expression "local_40[5] = ~local_40[5]" (subscript_expression "local_40[5]" identifier [ number_literal ]) = (unary_expression "~local_40[5]" ~ (subscript_expression "local_40[5]" identifier [ number_literal ]))) ;) (expression_statement "local_40[6] = ~local_40[6];" (assignment_expression "local_40[6] = ~local_40[6]" (subscript_expression "local_40[6]" identifier [ number_literal ]) = (unary_expression "~local_40[6]" ~ (subscript_expression "local_40[6]" identifier [ number_literal ]))) ;) (expression_statement "local_40[7] = ~local_40[7];" (assignment_expression "local_40[7] = ~local_40[7]" (subscript_expression "local_40[7]" identifier [ number_literal ]) = (unary_expression "~local_40[7]" ~ (subscript_expression "local_40[7]" identifier [ number_literal ]))) ;) })) (labeled_statement "code_r0x00023ae7:\n    *(byte *)(param_1 + 0xa3) = 0;" statement_identifier : (expression_statement "*(byte *)(param_1 + 0xa3) = 0;" (assignment_expression "*(byte *)(param_1 + 0xa3) = 0" (pointer_expression "*(byte *)(param_1 + 0xa3)" * (cast_expression "(byte *)(param_1 + 0xa3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa3)" ( (binary_expression "param_1 + 0xa3" identifier + number_literal) )))) = number_literal) ;)) (goto_statement "goto code_r0x000237bd;" goto statement_identifier ;)) (case_statement "case 0x51:\n    *(byte *)(param_1 + 0xa3) = 0;\n    puStack_70 = (uint *)&UNK_0002357e;\n    uVar19 = FUN_00021f80();\n    param_1[0x98] = uVar19;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;" case number_literal : (expression_statement "*(byte *)(param_1 + 0xa3) = 0;" (assignment_expression "*(byte *)(param_1 + 0xa3) = 0" (pointer_expression "*(byte *)(param_1 + 0xa3)" * (cast_expression "(byte *)(param_1 + 0xa3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa3)" ( (binary_expression "param_1 + 0xa3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puStack_70 = (uint *)&UNK_0002357e;" (assignment_expression "puStack_70 = (uint *)&UNK_0002357e" identifier = (cast_expression "(uint *)&UNK_0002357e" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&UNK_0002357e" & identifier))) ;) (expression_statement "uVar19 = FUN_00021f80();" (assignment_expression "uVar19 = FUN_00021f80()" identifier = (call_expression "FUN_00021f80()" identifier (argument_list "()" ( )))) ;) (expression_statement "param_1[0x98] = uVar19;" (assignment_expression "param_1[0x98] = uVar19" (subscript_expression "param_1[0x98]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;)) (case_statement "case 0x52:\n    if (local_60 == (byte *)0x0) {\n      pcVar8 = "unfinished \\ escape";\n      ppbVar15 = &pbStack_74;\n      pbStack_74 = (byte *)0x5;\n      puStack_70 = (uint *)((int)&__DT_PLTGOT + *(int *)(&DAT_0002ef08 + uVar5 * 4));\n      goto code_r0x00023a1b;\n    }\n    pbVar12 = (byte *)param_1[pbVar7[1] + 0x10d];\n    if (pbVar12 == (byte *)0xffffffff) {\n      pbStack_74 = local_60;\n      puStack_70 = param_1 + 0xb2;\n      local_5c[1] = pbVar12;\n      uVar5 = FUN_0002b6f0(auStack_50 + 3,local_5c[0]);\n      if (0xfffffffc < uVar5 - 1) {\n        puVar20 = param_1 + 0xb2;\n        for (iVar10 = 2; iVar10 != 0; iVar10 = iVar10 + -1) {\n          *puVar20 = 0;\n          puVar20 = puVar20 + (uint)bVar21 * -2 + 1;\n        }\n        local_5c[0] = (byte *)param_1[0x96];\n        local_60 = (byte *)param_1[0x97];\n        pbVar12 = local_5c[1];\n        goto code_r0x00023748;\n      }\n      pbVar12 = (byte *)param_1[0x97];\n      param_1[0x9d] = uVar5;\n      param_1[0x9c] = auStack_50[3];\n      pbVar7 = (byte *)param_1[0x96];\n      if (uVar5 != 1) goto code_r0x00023235;\n    }\n    else {\ncode_r0x00023748:\n      param_1[0x9d] = 1;\n      param_1[0x9c] = (uint)pbVar12;\n      pbVar12 = local_60;\n      pbVar7 = local_5c[0];\n    }\n    uVar19 = (uint)*pbVar7;\n    local_5c[0] = pbVar7 + 1;\n    param_1[0x96] = (uint)(pbVar7 + 1);\n    local_60 = pbVar12 + -1;\n    param_1[0x97] = (uint)(pbVar12 + -1);\n    switch(uVar19 - 10 & 0xff) {\n    case 0:\n      goto code_r0x0002359b;\n    case 0x1a:\n      goto code_r0x00023673;\n    case 0x1d:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023868;\n      goto code_r0x00023690;\n    case 0x1e:\n      bVar21 = 1;\n      goto code_r0x00023262;\n    case 0x1f:\n      bVar21 = 1;\n      goto code_r0x0002351a;\n    case 0x20:\n      goto code_r0x00023894;\n    case 0x21:\n      bVar21 = 1;\n      goto code_r0x000234d2;\n    case 0x24:\n      bVar4 = true;\n      goto code_r0x0002336a;\n    case 0x27:\n    case 0x28:\n    case 0x29:\n    case 0x2a:\n    case 0x2b:\n    case 0x2c:\n    case 0x2d:\n    case 0x2e:\n    case 0x2f:\n      if ((*param_1 & 0x4000) == 0) {\n        *(byte *)(param_1 + 0xa3) = 0;\n        uVar19 = 0x112;\n        param_1[0x98] = 0x112;\n        goto LAB_0002318d;\n      }\n    default:\nLAB_00023150:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      break;\n    case 0x32:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10e;\n        uVar19 = 0x10e;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236f8;\n    case 0x34:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10f;\n        uVar19 = 0x10f;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236e0;\n    case 0x35:\n      bVar21 = 1;\n      goto code_r0x000233b2;\n    case 0x38:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x111;\n        uVar19 = 0x111;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x00023710;\n    case 0x49:\n    case 0x69:\n      bVar4 = true;\n      goto code_r0x0002342a;\n    case 0x4d:\n    case 0x6d:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      if ((*param_1 & 0x80000) != 0) break;\n      if (bVar21 != 0) {\n        pcVar8 = &UNK_0002f474 + (uVar19 == 0x77);\n        goto code_r0x0002345c;\n      }\n      uVar5 = 0;\n      do {\n        *(undefined4 *)((int)local_40 + uVar5) = 0;\n        uVar5 = uVar5 + 4;\n      } while (uVar5 < 0x20);\n      uVar5 = 0;\n      do {\n        if (*(byte *)((int)param_1 + uVar5 + 8) == 2) {\n          local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 != 0x100);\n      if (uVar19 == 0x57) goto code_r0x00023b34;\n      goto code_r0x00023ae7;\n    case 0x51:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5b;\n      puVar13 = auStack_6c;\n      break;\n    case 0x52:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5c;\n      puVar13 = auStack_6c;\n      break;\n    case 0x54:\n      goto code_r0x000235d7;\n    case 0x56:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023880;\n      goto code_r0x000236c8;\n    case 0x58:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x110;\n        uVar19 = 0x110;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236a8;\n    case 0x71:\n      bStack_51 = 1;\n      goto code_r0x00023295;\n    case 0x72:\n      bVar21 = 1;\n      goto code_r0x000233fa;\n    }\n    break;" case number_literal : (if_statement "if (local_60 == (byte *)0x0) {\n      pcVar8 = "unfinished \\ escape";\n      ppbVar15 = &pbStack_74;\n      pbStack_74 = (byte *)0x5;\n      puStack_70 = (uint *)((int)&__DT_PLTGOT + *(int *)(&DAT_0002ef08 + uVar5 * 4));\n      goto code_r0x00023a1b;\n    }" if (parenthesized_expression "(local_60 == (byte *)0x0)" ( (binary_expression "local_60 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar8 = "unfinished \\ escape";\n      ppbVar15 = &pbStack_74;\n      pbStack_74 = (byte *)0x5;\n      puStack_70 = (uint *)((int)&__DT_PLTGOT + *(int *)(&DAT_0002ef08 + uVar5 * 4));\n      goto code_r0x00023a1b;\n    }" { (expression_statement "pcVar8 = "unfinished \\ escape";" (assignment_expression "pcVar8 = "unfinished \\ escape"" identifier = (string_literal ""unfinished \\ escape"" " string_content escape_sequence string_content ")) ;) (expression_statement "ppbVar15 = &pbStack_74;" (assignment_expression "ppbVar15 = &pbStack_74" identifier = (pointer_expression "&pbStack_74" & identifier)) ;) (expression_statement "pbStack_74 = (byte *)0x5;" (assignment_expression "pbStack_74 = (byte *)0x5" identifier = (cast_expression "(byte *)0x5" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puStack_70 = (uint *)((int)&__DT_PLTGOT + *(int *)(&DAT_0002ef08 + uVar5 * 4));" (assignment_expression "puStack_70 = (uint *)((int)&__DT_PLTGOT + *(int *)(&DAT_0002ef08 + uVar5 * 4))" identifier = (cast_expression "(uint *)((int)&__DT_PLTGOT + *(int *)(&DAT_0002ef08 + uVar5 * 4))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__DT_PLTGOT + *(int *)(&DAT_0002ef08 + uVar5 * 4))" ( (binary_expression "(int)&__DT_PLTGOT + *(int *)(&DAT_0002ef08 + uVar5 * 4)" (cast_expression "(int)&__DT_PLTGOT" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__DT_PLTGOT" & identifier)) + (pointer_expression "*(int *)(&DAT_0002ef08 + uVar5 * 4)" * (cast_expression "(int *)(&DAT_0002ef08 + uVar5 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0002ef08 + uVar5 * 4)" ( (binary_expression "&DAT_0002ef08 + uVar5 * 4" (pointer_expression "&DAT_0002ef08" & identifier) + (binary_expression "uVar5 * 4" identifier * number_literal)) ))))) )))) ;) (goto_statement "goto code_r0x00023a1b;" goto statement_identifier ;) })) (expression_statement "pbVar12 = (byte *)param_1[pbVar7[1] + 0x10d];" (assignment_expression "pbVar12 = (byte *)param_1[pbVar7[1] + 0x10d]" identifier = (cast_expression "(byte *)param_1[pbVar7[1] + 0x10d]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[pbVar7[1] + 0x10d]" identifier [ (binary_expression "pbVar7[1] + 0x10d" (subscript_expression "pbVar7[1]" identifier [ number_literal ]) + number_literal) ]))) ;) (if_statement "if (pbVar12 == (byte *)0xffffffff) {\n      pbStack_74 = local_60;\n      puStack_70 = param_1 + 0xb2;\n      local_5c[1] = pbVar12;\n      uVar5 = FUN_0002b6f0(auStack_50 + 3,local_5c[0]);\n      if (0xfffffffc < uVar5 - 1) {\n        puVar20 = param_1 + 0xb2;\n        for (iVar10 = 2; iVar10 != 0; iVar10 = iVar10 + -1) {\n          *puVar20 = 0;\n          puVar20 = puVar20 + (uint)bVar21 * -2 + 1;\n        }\n        local_5c[0] = (byte *)param_1[0x96];\n        local_60 = (byte *)param_1[0x97];\n        pbVar12 = local_5c[1];\n        goto code_r0x00023748;\n      }\n      pbVar12 = (byte *)param_1[0x97];\n      param_1[0x9d] = uVar5;\n      param_1[0x9c] = auStack_50[3];\n      pbVar7 = (byte *)param_1[0x96];\n      if (uVar5 != 1) goto code_r0x00023235;\n    }\n    else {\ncode_r0x00023748:\n      param_1[0x9d] = 1;\n      param_1[0x9c] = (uint)pbVar12;\n      pbVar12 = local_60;\n      pbVar7 = local_5c[0];\n    }" if (parenthesized_expression "(pbVar12 == (byte *)0xffffffff)" ( (binary_expression "pbVar12 == (byte *)0xffffffff" identifier == (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pbStack_74 = local_60;\n      puStack_70 = param_1 + 0xb2;\n      local_5c[1] = pbVar12;\n      uVar5 = FUN_0002b6f0(auStack_50 + 3,local_5c[0]);\n      if (0xfffffffc < uVar5 - 1) {\n        puVar20 = param_1 + 0xb2;\n        for (iVar10 = 2; iVar10 != 0; iVar10 = iVar10 + -1) {\n          *puVar20 = 0;\n          puVar20 = puVar20 + (uint)bVar21 * -2 + 1;\n        }\n        local_5c[0] = (byte *)param_1[0x96];\n        local_60 = (byte *)param_1[0x97];\n        pbVar12 = local_5c[1];\n        goto code_r0x00023748;\n      }\n      pbVar12 = (byte *)param_1[0x97];\n      param_1[0x9d] = uVar5;\n      param_1[0x9c] = auStack_50[3];\n      pbVar7 = (byte *)param_1[0x96];\n      if (uVar5 != 1) goto code_r0x00023235;\n    }" { (expression_statement "pbStack_74 = local_60;" (assignment_expression "pbStack_74 = local_60" identifier = identifier) ;) (expression_statement "puStack_70 = param_1 + 0xb2;" (assignment_expression "puStack_70 = param_1 + 0xb2" identifier = (binary_expression "param_1 + 0xb2" identifier + number_literal)) ;) (expression_statement "local_5c[1] = pbVar12;" (assignment_expression "local_5c[1] = pbVar12" (subscript_expression "local_5c[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar5 = FUN_0002b6f0(auStack_50 + 3,local_5c[0]);" (assignment_expression "uVar5 = FUN_0002b6f0(auStack_50 + 3,local_5c[0])" identifier = (call_expression "FUN_0002b6f0(auStack_50 + 3,local_5c[0])" identifier (argument_list "(auStack_50 + 3,local_5c[0])" ( (binary_expression "auStack_50 + 3" identifier + number_literal) , (subscript_expression "local_5c[0]" identifier [ number_literal ]) )))) ;) (if_statement "if (0xfffffffc < uVar5 - 1) {\n        puVar20 = param_1 + 0xb2;\n        for (iVar10 = 2; iVar10 != 0; iVar10 = iVar10 + -1) {\n          *puVar20 = 0;\n          puVar20 = puVar20 + (uint)bVar21 * -2 + 1;\n        }\n        local_5c[0] = (byte *)param_1[0x96];\n        local_60 = (byte *)param_1[0x97];\n        pbVar12 = local_5c[1];\n        goto code_r0x00023748;\n      }" if (parenthesized_expression "(0xfffffffc < uVar5 - 1)" ( (binary_expression "0xfffffffc < uVar5 - 1" number_literal < (binary_expression "uVar5 - 1" identifier - number_literal)) )) (compound_statement "{\n        puVar20 = param_1 + 0xb2;\n        for (iVar10 = 2; iVar10 != 0; iVar10 = iVar10 + -1) {\n          *puVar20 = 0;\n          puVar20 = puVar20 + (uint)bVar21 * -2 + 1;\n        }\n        local_5c[0] = (byte *)param_1[0x96];\n        local_60 = (byte *)param_1[0x97];\n        pbVar12 = local_5c[1];\n        goto code_r0x00023748;\n      }" { (expression_statement "puVar20 = param_1 + 0xb2;" (assignment_expression "puVar20 = param_1 + 0xb2" identifier = (binary_expression "param_1 + 0xb2" identifier + number_literal)) ;) (for_statement "for (iVar10 = 2; iVar10 != 0; iVar10 = iVar10 + -1) {\n          *puVar20 = 0;\n          puVar20 = puVar20 + (uint)bVar21 * -2 + 1;\n        }" for ( (assignment_expression "iVar10 = 2" identifier = number_literal) ; (binary_expression "iVar10 != 0" identifier != number_literal) ; (assignment_expression "iVar10 = iVar10 + -1" identifier = (binary_expression "iVar10 + -1" identifier + number_literal)) ) (compound_statement "{\n          *puVar20 = 0;\n          puVar20 = puVar20 + (uint)bVar21 * -2 + 1;\n        }" { (expression_statement "*puVar20 = 0;" (assignment_expression "*puVar20 = 0" (pointer_expression "*puVar20" * identifier) = number_literal) ;) (expression_statement "puVar20 = puVar20 + (uint)bVar21 * -2 + 1;" (assignment_expression "puVar20 = puVar20 + (uint)bVar21 * -2 + 1" identifier = (binary_expression "puVar20 + (uint)bVar21 * -2 + 1" (binary_expression "puVar20 + (uint)bVar21 * -2" identifier + (binary_expression "(uint)bVar21 * -2" (cast_expression "(uint)bVar21" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "local_5c[0] = (byte *)param_1[0x96];" (assignment_expression "local_5c[0] = (byte *)param_1[0x96]" (subscript_expression "local_5c[0]" identifier [ number_literal ]) = (cast_expression "(byte *)param_1[0x96]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x96]" identifier [ number_literal ]))) ;) (expression_statement "local_60 = (byte *)param_1[0x97];" (assignment_expression "local_60 = (byte *)param_1[0x97]" identifier = (cast_expression "(byte *)param_1[0x97]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x97]" identifier [ number_literal ]))) ;) (expression_statement "pbVar12 = local_5c[1];" (assignment_expression "pbVar12 = local_5c[1]" identifier = (subscript_expression "local_5c[1]" identifier [ number_literal ])) ;) (goto_statement "goto code_r0x00023748;" goto statement_identifier ;) })) (expression_statement "pbVar12 = (byte *)param_1[0x97];" (assignment_expression "pbVar12 = (byte *)param_1[0x97]" identifier = (cast_expression "(byte *)param_1[0x97]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x97]" identifier [ number_literal ]))) ;) (expression_statement "param_1[0x9d] = uVar5;" (assignment_expression "param_1[0x9d] = uVar5" (subscript_expression "param_1[0x9d]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[0x9c] = auStack_50[3];" (assignment_expression "param_1[0x9c] = auStack_50[3]" (subscript_expression "param_1[0x9c]" identifier [ number_literal ]) = (subscript_expression "auStack_50[3]" identifier [ number_literal ])) ;) (expression_statement "pbVar7 = (byte *)param_1[0x96];" (assignment_expression "pbVar7 = (byte *)param_1[0x96]" identifier = (cast_expression "(byte *)param_1[0x96]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x96]" identifier [ number_literal ]))) ;) (if_statement "if (uVar5 != 1) goto code_r0x00023235;" if (parenthesized_expression "(uVar5 != 1)" ( (binary_expression "uVar5 != 1" identifier != number_literal) )) (goto_statement "goto code_r0x00023235;" goto statement_identifier ;)) }) (else_clause "else {\ncode_r0x00023748:\n      param_1[0x9d] = 1;\n      param_1[0x9c] = (uint)pbVar12;\n      pbVar12 = local_60;\n      pbVar7 = local_5c[0];\n    }" else (compound_statement "{\ncode_r0x00023748:\n      param_1[0x9d] = 1;\n      param_1[0x9c] = (uint)pbVar12;\n      pbVar12 = local_60;\n      pbVar7 = local_5c[0];\n    }" { (labeled_statement "code_r0x00023748:\n      param_1[0x9d] = 1;" statement_identifier : (expression_statement "param_1[0x9d] = 1;" (assignment_expression "param_1[0x9d] = 1" (subscript_expression "param_1[0x9d]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "param_1[0x9c] = (uint)pbVar12;" (assignment_expression "param_1[0x9c] = (uint)pbVar12" (subscript_expression "param_1[0x9c]" identifier [ number_literal ]) = (cast_expression "(uint)pbVar12" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pbVar12 = local_60;" (assignment_expression "pbVar12 = local_60" identifier = identifier) ;) (expression_statement "pbVar7 = local_5c[0];" (assignment_expression "pbVar7 = local_5c[0]" identifier = (subscript_expression "local_5c[0]" identifier [ number_literal ])) ;) }))) (expression_statement "uVar19 = (uint)*pbVar7;" (assignment_expression "uVar19 = (uint)*pbVar7" identifier = (binary_expression "(uint)*pbVar7" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "local_5c[0] = pbVar7 + 1;" (assignment_expression "local_5c[0] = pbVar7 + 1" (subscript_expression "local_5c[0]" identifier [ number_literal ]) = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) (expression_statement "param_1[0x96] = (uint)(pbVar7 + 1);" (assignment_expression "param_1[0x96] = (uint)(pbVar7 + 1)" (subscript_expression "param_1[0x96]" identifier [ number_literal ]) = (call_expression "(uint)(pbVar7 + 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar7 + 1)" ( (binary_expression "pbVar7 + 1" identifier + number_literal) )))) ;) (expression_statement "local_60 = pbVar12 + -1;" (assignment_expression "local_60 = pbVar12 + -1" identifier = (binary_expression "pbVar12 + -1" identifier + number_literal)) ;) (expression_statement "param_1[0x97] = (uint)(pbVar12 + -1);" (assignment_expression "param_1[0x97] = (uint)(pbVar12 + -1)" (subscript_expression "param_1[0x97]" identifier [ number_literal ]) = (call_expression "(uint)(pbVar12 + -1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar12 + -1)" ( (binary_expression "pbVar12 + -1" identifier + number_literal) )))) ;) (switch_statement "switch(uVar19 - 10 & 0xff) {\n    case 0:\n      goto code_r0x0002359b;\n    case 0x1a:\n      goto code_r0x00023673;\n    case 0x1d:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023868;\n      goto code_r0x00023690;\n    case 0x1e:\n      bVar21 = 1;\n      goto code_r0x00023262;\n    case 0x1f:\n      bVar21 = 1;\n      goto code_r0x0002351a;\n    case 0x20:\n      goto code_r0x00023894;\n    case 0x21:\n      bVar21 = 1;\n      goto code_r0x000234d2;\n    case 0x24:\n      bVar4 = true;\n      goto code_r0x0002336a;\n    case 0x27:\n    case 0x28:\n    case 0x29:\n    case 0x2a:\n    case 0x2b:\n    case 0x2c:\n    case 0x2d:\n    case 0x2e:\n    case 0x2f:\n      if ((*param_1 & 0x4000) == 0) {\n        *(byte *)(param_1 + 0xa3) = 0;\n        uVar19 = 0x112;\n        param_1[0x98] = 0x112;\n        goto LAB_0002318d;\n      }\n    default:\nLAB_00023150:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      break;\n    case 0x32:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10e;\n        uVar19 = 0x10e;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236f8;\n    case 0x34:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10f;\n        uVar19 = 0x10f;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236e0;\n    case 0x35:\n      bVar21 = 1;\n      goto code_r0x000233b2;\n    case 0x38:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x111;\n        uVar19 = 0x111;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x00023710;\n    case 0x49:\n    case 0x69:\n      bVar4 = true;\n      goto code_r0x0002342a;\n    case 0x4d:\n    case 0x6d:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      if ((*param_1 & 0x80000) != 0) break;\n      if (bVar21 != 0) {\n        pcVar8 = &UNK_0002f474 + (uVar19 == 0x77);\n        goto code_r0x0002345c;\n      }\n      uVar5 = 0;\n      do {\n        *(undefined4 *)((int)local_40 + uVar5) = 0;\n        uVar5 = uVar5 + 4;\n      } while (uVar5 < 0x20);\n      uVar5 = 0;\n      do {\n        if (*(byte *)((int)param_1 + uVar5 + 8) == 2) {\n          local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 != 0x100);\n      if (uVar19 == 0x57) goto code_r0x00023b34;\n      goto code_r0x00023ae7;\n    case 0x51:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5b;\n      puVar13 = auStack_6c;\n      break;\n    case 0x52:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5c;\n      puVar13 = auStack_6c;\n      break;\n    case 0x54:\n      goto code_r0x000235d7;\n    case 0x56:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023880;\n      goto code_r0x000236c8;\n    case 0x58:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x110;\n        uVar19 = 0x110;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236a8;\n    case 0x71:\n      bStack_51 = 1;\n      goto code_r0x00023295;\n    case 0x72:\n      bVar21 = 1;\n      goto code_r0x000233fa;\n    }" switch (parenthesized_expression "(uVar19 - 10 & 0xff)" ( (binary_expression "uVar19 - 10 & 0xff" (binary_expression "uVar19 - 10" identifier - number_literal) & number_literal) )) (compound_statement "{\n    case 0:\n      goto code_r0x0002359b;\n    case 0x1a:\n      goto code_r0x00023673;\n    case 0x1d:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023868;\n      goto code_r0x00023690;\n    case 0x1e:\n      bVar21 = 1;\n      goto code_r0x00023262;\n    case 0x1f:\n      bVar21 = 1;\n      goto code_r0x0002351a;\n    case 0x20:\n      goto code_r0x00023894;\n    case 0x21:\n      bVar21 = 1;\n      goto code_r0x000234d2;\n    case 0x24:\n      bVar4 = true;\n      goto code_r0x0002336a;\n    case 0x27:\n    case 0x28:\n    case 0x29:\n    case 0x2a:\n    case 0x2b:\n    case 0x2c:\n    case 0x2d:\n    case 0x2e:\n    case 0x2f:\n      if ((*param_1 & 0x4000) == 0) {\n        *(byte *)(param_1 + 0xa3) = 0;\n        uVar19 = 0x112;\n        param_1[0x98] = 0x112;\n        goto LAB_0002318d;\n      }\n    default:\nLAB_00023150:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      break;\n    case 0x32:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10e;\n        uVar19 = 0x10e;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236f8;\n    case 0x34:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10f;\n        uVar19 = 0x10f;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236e0;\n    case 0x35:\n      bVar21 = 1;\n      goto code_r0x000233b2;\n    case 0x38:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x111;\n        uVar19 = 0x111;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x00023710;\n    case 0x49:\n    case 0x69:\n      bVar4 = true;\n      goto code_r0x0002342a;\n    case 0x4d:\n    case 0x6d:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      if ((*param_1 & 0x80000) != 0) break;\n      if (bVar21 != 0) {\n        pcVar8 = &UNK_0002f474 + (uVar19 == 0x77);\n        goto code_r0x0002345c;\n      }\n      uVar5 = 0;\n      do {\n        *(undefined4 *)((int)local_40 + uVar5) = 0;\n        uVar5 = uVar5 + 4;\n      } while (uVar5 < 0x20);\n      uVar5 = 0;\n      do {\n        if (*(byte *)((int)param_1 + uVar5 + 8) == 2) {\n          local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 != 0x100);\n      if (uVar19 == 0x57) goto code_r0x00023b34;\n      goto code_r0x00023ae7;\n    case 0x51:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5b;\n      puVar13 = auStack_6c;\n      break;\n    case 0x52:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5c;\n      puVar13 = auStack_6c;\n      break;\n    case 0x54:\n      goto code_r0x000235d7;\n    case 0x56:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023880;\n      goto code_r0x000236c8;\n    case 0x58:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x110;\n        uVar19 = 0x110;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236a8;\n    case 0x71:\n      bStack_51 = 1;\n      goto code_r0x00023295;\n    case 0x72:\n      bVar21 = 1;\n      goto code_r0x000233fa;\n    }" { (case_statement "case 0:\n      goto code_r0x0002359b;" case number_literal : (goto_statement "goto code_r0x0002359b;" goto statement_identifier ;)) (case_statement "case 0x1a:\n      goto code_r0x00023673;" case number_literal : (goto_statement "goto code_r0x00023673;" goto statement_identifier ;)) (case_statement "case 0x1d:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023868;\n      goto code_r0x00023690;" case number_literal : (if_statement "if ((*param_1 & 0x80000) == 0) goto code_r0x00023868;" if (parenthesized_expression "((*param_1 & 0x80000) == 0)" ( (binary_expression "(*param_1 & 0x80000) == 0" (parenthesized_expression "(*param_1 & 0x80000)" ( (binary_expression "*param_1 & 0x80000" (pointer_expression "*param_1" * identifier) & number_literal) )) == number_literal) )) (goto_statement "goto code_r0x00023868;" goto statement_identifier ;)) (goto_statement "goto code_r0x00023690;" goto statement_identifier ;)) (case_statement "case 0x1e:\n      bVar21 = 1;\n      goto code_r0x00023262;" case number_literal : (expression_statement "bVar21 = 1;" (assignment_expression "bVar21 = 1" identifier = number_literal) ;) (goto_statement "goto code_r0x00023262;" goto statement_identifier ;)) (case_statement "case 0x1f:\n      bVar21 = 1;\n      goto code_r0x0002351a;" case number_literal : (expression_statement "bVar21 = 1;" (assignment_expression "bVar21 = 1" identifier = number_literal) ;) (goto_statement "goto code_r0x0002351a;" goto statement_identifier ;)) (case_statement "case 0x20:\n      goto code_r0x00023894;" case number_literal : (goto_statement "goto code_r0x00023894;" goto statement_identifier ;)) (case_statement "case 0x21:\n      bVar21 = 1;\n      goto code_r0x000234d2;" case number_literal : (expression_statement "bVar21 = 1;" (assignment_expression "bVar21 = 1" identifier = number_literal) ;) (goto_statement "goto code_r0x000234d2;" goto statement_identifier ;)) (case_statement "case 0x24:\n      bVar4 = true;\n      goto code_r0x0002336a;" case number_literal : (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" identifier = true) ;) (goto_statement "goto code_r0x0002336a;" goto statement_identifier ;)) (case_statement "case 0x27:" case number_literal :) (case_statement "case 0x28:" case number_literal :) (case_statement "case 0x29:" case number_literal :) (case_statement "case 0x2a:" case number_literal :) (case_statement "case 0x2b:" case number_literal :) (case_statement "case 0x2c:" case number_literal :) (case_statement "case 0x2d:" case number_literal :) (case_statement "case 0x2e:" case number_literal :) (case_statement "case 0x2f:\n      if ((*param_1 & 0x4000) == 0) {\n        *(byte *)(param_1 + 0xa3) = 0;\n        uVar19 = 0x112;\n        param_1[0x98] = 0x112;\n        goto LAB_0002318d;\n      }" case number_literal : (if_statement "if ((*param_1 & 0x4000) == 0) {\n        *(byte *)(param_1 + 0xa3) = 0;\n        uVar19 = 0x112;\n        param_1[0x98] = 0x112;\n        goto LAB_0002318d;\n      }" if (parenthesized_expression "((*param_1 & 0x4000) == 0)" ( (binary_expression "(*param_1 & 0x4000) == 0" (parenthesized_expression "(*param_1 & 0x4000)" ( (binary_expression "*param_1 & 0x4000" (pointer_expression "*param_1" * identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(byte *)(param_1 + 0xa3) = 0;\n        uVar19 = 0x112;\n        param_1[0x98] = 0x112;\n        goto LAB_0002318d;\n      }" { (expression_statement "*(byte *)(param_1 + 0xa3) = 0;" (assignment_expression "*(byte *)(param_1 + 0xa3) = 0" (pointer_expression "*(byte *)(param_1 + 0xa3)" * (cast_expression "(byte *)(param_1 + 0xa3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa3)" ( (binary_expression "param_1 + 0xa3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar19 = 0x112;" (assignment_expression "uVar19 = 0x112" identifier = number_literal) ;) (expression_statement "param_1[0x98] = 0x112;" (assignment_expression "param_1[0x98] = 0x112" (subscript_expression "param_1[0x98]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) }))) (case_statement "default:\nLAB_00023150:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      break;" default : (labeled_statement "LAB_00023150:\n      bVar21 = (byte)param_1[0xcc];" statement_identifier : (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;)) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x32:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10e;\n        uVar19 = 0x10e;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236f8;" case number_literal : (if_statement "if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10e;\n        uVar19 = 0x10e;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }" if (parenthesized_expression "((*param_1 & 0x80000) == 0)" ( (binary_expression "(*param_1 & 0x80000) == 0" (parenthesized_expression "(*param_1 & 0x80000)" ( (binary_expression "*param_1 & 0x80000" (pointer_expression "*param_1" * identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        param_1[0x98] = 0x10e;\n        uVar19 = 0x10e;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }" { (expression_statement "param_1[0x98] = 0x10e;" (assignment_expression "param_1[0x98] = 0x10e" (subscript_expression "param_1[0x98]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar19 = 0x10e;" (assignment_expression "uVar19 = 0x10e" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) })) (goto_statement "goto code_r0x000236f8;" goto statement_identifier ;)) (case_statement "case 0x34:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10f;\n        uVar19 = 0x10f;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236e0;" case number_literal : (if_statement "if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10f;\n        uVar19 = 0x10f;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }" if (parenthesized_expression "((*param_1 & 0x80000) == 0)" ( (binary_expression "(*param_1 & 0x80000) == 0" (parenthesized_expression "(*param_1 & 0x80000)" ( (binary_expression "*param_1 & 0x80000" (pointer_expression "*param_1" * identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        param_1[0x98] = 0x10f;\n        uVar19 = 0x10f;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }" { (expression_statement "param_1[0x98] = 0x10f;" (assignment_expression "param_1[0x98] = 0x10f" (subscript_expression "param_1[0x98]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar19 = 0x10f;" (assignment_expression "uVar19 = 0x10f" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) })) (goto_statement "goto code_r0x000236e0;" goto statement_identifier ;)) (case_statement "case 0x35:\n      bVar21 = 1;\n      goto code_r0x000233b2;" case number_literal : (expression_statement "bVar21 = 1;" (assignment_expression "bVar21 = 1" identifier = number_literal) ;) (goto_statement "goto code_r0x000233b2;" goto statement_identifier ;)) (case_statement "case 0x38:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x111;\n        uVar19 = 0x111;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x00023710;" case number_literal : (if_statement "if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x111;\n        uVar19 = 0x111;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }" if (parenthesized_expression "((*param_1 & 0x80000) == 0)" ( (binary_expression "(*param_1 & 0x80000) == 0" (parenthesized_expression "(*param_1 & 0x80000)" ( (binary_expression "*param_1 & 0x80000" (pointer_expression "*param_1" * identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        param_1[0x98] = 0x111;\n        uVar19 = 0x111;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }" { (expression_statement "param_1[0x98] = 0x111;" (assignment_expression "param_1[0x98] = 0x111" (subscript_expression "param_1[0x98]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar19 = 0x111;" (assignment_expression "uVar19 = 0x111" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) })) (goto_statement "goto code_r0x00023710;" goto statement_identifier ;)) (case_statement "case 0x49:" case number_literal :) (case_statement "case 0x69:\n      bVar4 = true;\n      goto code_r0x0002342a;" case number_literal : (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" identifier = true) ;) (goto_statement "goto code_r0x0002342a;" goto statement_identifier ;)) (case_statement "case 0x4d:" case number_literal :) (case_statement "case 0x6d:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      if ((*param_1 & 0x80000) != 0) break;\n      if (bVar21 != 0) {\n        pcVar8 = &UNK_0002f474 + (uVar19 == 0x77);\n        goto code_r0x0002345c;\n      }\n      uVar5 = 0;\n      do {\n        *(undefined4 *)((int)local_40 + uVar5) = 0;\n        uVar5 = uVar5 + 4;\n      } while (uVar5 < 0x20);\n      uVar5 = 0;\n      do {\n        if (*(byte *)((int)param_1 + uVar5 + 8) == 2) {\n          local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 != 0x100);\n      if (uVar19 == 0x57) goto code_r0x00023b34;\n      goto code_r0x00023ae7;" case number_literal : (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (if_statement "if ((*param_1 & 0x80000) != 0) break;" if (parenthesized_expression "((*param_1 & 0x80000) != 0)" ( (binary_expression "(*param_1 & 0x80000) != 0" (parenthesized_expression "(*param_1 & 0x80000)" ( (binary_expression "*param_1 & 0x80000" (pointer_expression "*param_1" * identifier) & number_literal) )) != number_literal) )) (break_statement "break;" break ;)) (if_statement "if (bVar21 != 0) {\n        pcVar8 = &UNK_0002f474 + (uVar19 == 0x77);\n        goto code_r0x0002345c;\n      }" if (parenthesized_expression "(bVar21 != 0)" ( (binary_expression "bVar21 != 0" identifier != number_literal) )) (compound_statement "{\n        pcVar8 = &UNK_0002f474 + (uVar19 == 0x77);\n        goto code_r0x0002345c;\n      }" { (expression_statement "pcVar8 = &UNK_0002f474 + (uVar19 == 0x77);" (assignment_expression "pcVar8 = &UNK_0002f474 + (uVar19 == 0x77)" identifier = (binary_expression "&UNK_0002f474 + (uVar19 == 0x77)" (pointer_expression "&UNK_0002f474" & identifier) + (parenthesized_expression "(uVar19 == 0x77)" ( (binary_expression "uVar19 == 0x77" identifier == number_literal) )))) ;) (goto_statement "goto code_r0x0002345c;" goto statement_identifier ;) })) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n        *(undefined4 *)((int)local_40 + uVar5) = 0;\n        uVar5 = uVar5 + 4;\n      } while (uVar5 < 0x20);" do (compound_statement "{\n        *(undefined4 *)((int)local_40 + uVar5) = 0;\n        uVar5 = uVar5 + 4;\n      }" { (expression_statement "*(undefined4 *)((int)local_40 + uVar5) = 0;" (assignment_expression "*(undefined4 *)((int)local_40 + uVar5) = 0" (pointer_expression "*(undefined4 *)((int)local_40 + uVar5)" * (cast_expression "(undefined4 *)((int)local_40 + uVar5)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_40 + uVar5)" ( (binary_expression "(int)local_40 + uVar5" (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "uVar5 = uVar5 + 4;" (assignment_expression "uVar5 = uVar5 + 4" identifier = (binary_expression "uVar5 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar5 < 0x20)" ( (binary_expression "uVar5 < 0x20" identifier < number_literal) )) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n        if (*(byte *)((int)param_1 + uVar5 + 8) == 2) {\n          local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 != 0x100);" do (compound_statement "{\n        if (*(byte *)((int)param_1 + uVar5 + 8) == 2) {\n          local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n        }\n        uVar5 = uVar5 + 1;\n      }" { (if_statement "if (*(byte *)((int)param_1 + uVar5 + 8) == 2) {\n          local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n        }" if (parenthesized_expression "(*(byte *)((int)param_1 + uVar5 + 8) == 2)" ( (binary_expression "*(byte *)((int)param_1 + uVar5 + 8) == 2" (pointer_expression "*(byte *)((int)param_1 + uVar5 + 8)" * (cast_expression "(byte *)((int)param_1 + uVar5 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + uVar5 + 8)" ( (binary_expression "(int)param_1 + uVar5 + 8" (binary_expression "(int)param_1 + uVar5" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n          local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n        }" { (expression_statement "local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);" (assignment_expression "local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f)" (subscript_expression "local_40[uVar5 >> 5]" identifier [ (binary_expression "uVar5 >> 5" identifier >> number_literal) ]) = (binary_expression "local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f)" (subscript_expression "local_40[uVar5 >> 5]" identifier [ (binary_expression "uVar5 >> 5" identifier >> number_literal) ]) | (binary_expression "1 << ((byte)uVar5 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar5 & 0x1f)" ( (binary_expression "(byte)uVar5 & 0x1f" (cast_expression "(byte)uVar5" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))))) ;) })) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar5 != 0x100)" ( (binary_expression "uVar5 != 0x100" identifier != number_literal) )) ;) (if_statement "if (uVar19 == 0x57) goto code_r0x00023b34;" if (parenthesized_expression "(uVar19 == 0x57)" ( (binary_expression "uVar19 == 0x57" identifier == number_literal) )) (goto_statement "goto code_r0x00023b34;" goto statement_identifier ;)) (goto_statement "goto code_r0x00023ae7;" goto statement_identifier ;)) (case_statement "case 0x51:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5b;\n      puVar13 = auStack_6c;\n      break;" case number_literal : (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;) (expression_statement "uVar19 = 0x5b;" (assignment_expression "uVar19 = 0x5b" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x52:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5c;\n      puVar13 = auStack_6c;\n      break;" case number_literal : (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;) (expression_statement "uVar19 = 0x5c;" (assignment_expression "uVar19 = 0x5c" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x54:\n      goto code_r0x000235d7;" case number_literal : (goto_statement "goto code_r0x000235d7;" goto statement_identifier ;)) (case_statement "case 0x56:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023880;\n      goto code_r0x000236c8;" case number_literal : (if_statement "if ((*param_1 & 0x80000) == 0) goto code_r0x00023880;" if (parenthesized_expression "((*param_1 & 0x80000) == 0)" ( (binary_expression "(*param_1 & 0x80000) == 0" (parenthesized_expression "(*param_1 & 0x80000)" ( (binary_expression "*param_1 & 0x80000" (pointer_expression "*param_1" * identifier) & number_literal) )) == number_literal) )) (goto_statement "goto code_r0x00023880;" goto statement_identifier ;)) (goto_statement "goto code_r0x000236c8;" goto statement_identifier ;)) (case_statement "case 0x58:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x110;\n        uVar19 = 0x110;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236a8;" case number_literal : (if_statement "if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x110;\n        uVar19 = 0x110;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }" if (parenthesized_expression "((*param_1 & 0x80000) == 0)" ( (binary_expression "(*param_1 & 0x80000) == 0" (parenthesized_expression "(*param_1 & 0x80000)" ( (binary_expression "*param_1 & 0x80000" (pointer_expression "*param_1" * identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        param_1[0x98] = 0x110;\n        uVar19 = 0x110;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }" { (expression_statement "param_1[0x98] = 0x110;" (assignment_expression "param_1[0x98] = 0x110" (subscript_expression "param_1[0x98]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar19 = 0x110;" (assignment_expression "uVar19 = 0x110" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) })) (goto_statement "goto code_r0x000236a8;" goto statement_identifier ;)) (case_statement "case 0x71:\n      bStack_51 = 1;\n      goto code_r0x00023295;" case number_literal : (expression_statement "bStack_51 = 1;" (assignment_expression "bStack_51 = 1" identifier = number_literal) ;) (goto_statement "goto code_r0x00023295;" goto statement_identifier ;)) (case_statement "case 0x72:\n      bVar21 = 1;\n      goto code_r0x000233fa;" case number_literal : (expression_statement "bVar21 = 1;" (assignment_expression "bVar21 = 1" identifier = number_literal) ;) (goto_statement "goto code_r0x000233fa;" goto statement_identifier ;)) })) (break_statement "break;" break ;)) (case_statement "case 0x54:\n    if ((((*param_1 & 8) != 0) || (param_1[0x98] - 0x106 < 2)) || (param_1[0x98] == 0xffffffff)) {\ncode_r0x00023880:\n      param_1[0x98] = 0x10c;\n      uVar19 = 0x10c;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x000235d7:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x5e;\n    puVar13 = auStack_6c;\n    break;" case number_literal : (if_statement "if ((((*param_1 & 8) != 0) || (param_1[0x98] - 0x106 < 2)) || (param_1[0x98] == 0xffffffff)) {\ncode_r0x00023880:\n      param_1[0x98] = 0x10c;\n      uVar19 = 0x10c;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" if (parenthesized_expression "((((*param_1 & 8) != 0) || (param_1[0x98] - 0x106 < 2)) || (param_1[0x98] == 0xffffffff))" ( (binary_expression "(((*param_1 & 8) != 0) || (param_1[0x98] - 0x106 < 2)) || (param_1[0x98] == 0xffffffff)" (parenthesized_expression "(((*param_1 & 8) != 0) || (param_1[0x98] - 0x106 < 2))" ( (binary_expression "((*param_1 & 8) != 0) || (param_1[0x98] - 0x106 < 2)" (parenthesized_expression "((*param_1 & 8) != 0)" ( (binary_expression "(*param_1 & 8) != 0" (parenthesized_expression "(*param_1 & 8)" ( (binary_expression "*param_1 & 8" (pointer_expression "*param_1" * identifier) & number_literal) )) != number_literal) )) || (parenthesized_expression "(param_1[0x98] - 0x106 < 2)" ( (binary_expression "param_1[0x98] - 0x106 < 2" (binary_expression "param_1[0x98] - 0x106" (subscript_expression "param_1[0x98]" identifier [ number_literal ]) - number_literal) < number_literal) ))) )) || (parenthesized_expression "(param_1[0x98] == 0xffffffff)" ( (binary_expression "param_1[0x98] == 0xffffffff" (subscript_expression "param_1[0x98]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\ncode_r0x00023880:\n      param_1[0x98] = 0x10c;\n      uVar19 = 0x10c;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" { (labeled_statement "code_r0x00023880:\n      param_1[0x98] = 0x10c;" statement_identifier : (expression_statement "param_1[0x98] = 0x10c;" (assignment_expression "param_1[0x98] = 0x10c" (subscript_expression "param_1[0x98]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "uVar19 = 0x10c;" (assignment_expression "uVar19 = 0x10c" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) })) (labeled_statement "code_r0x000235d7:\n    bVar21 = (byte)param_1[0xcc];" statement_identifier : (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;)) (expression_statement "uVar19 = 0x5e;" (assignment_expression "uVar19 = 0x5e" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x56:\ncode_r0x000236c8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x60;\n    puVar13 = auStack_6c;\n    break;" case number_literal : (labeled_statement "code_r0x000236c8:\n    bVar21 = (byte)param_1[0xcc];" statement_identifier : (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;)) (expression_statement "uVar19 = 0x60;" (assignment_expression "uVar19 = 0x60" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x58:\ncode_r0x000236a8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x62;\n    puVar13 = auStack_6c;\n    break;" case number_literal : (labeled_statement "code_r0x000236a8:\n    bVar21 = (byte)param_1[0xcc];" statement_identifier : (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;)) (expression_statement "uVar19 = 0x62;" (assignment_expression "uVar19 = 0x62" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x71:\n    bStack_51 = 0;\ncode_r0x00023295:\n    auStack_50[0] = *param_1;\n    puVar13 = auStack_6c;\n    if ((((auStack_50[0] & 0x200) != 0) &&\n        (puVar13 = auStack_6c, (((byte)(auStack_50[0] >> 0xc) ^ 1) & 1) == bStack_51)) &&\n       (((auStack_50[0] & 0x10) != 0 || (puVar13 = auStack_6c, (byte)param_1[0xa3] == 0)))) {\n      local_5c[1] = pbVar7 + (int)pbVar12;\n      param_1[0x9b] = 0xffffffff;\n      param_1[0x9a] = 0xffffffff;\n      if (local_5c[1] == local_5c[0]) {\ncode_r0x00023b5a:\n        puVar13 = auStack_6c;\n        if (bStack_51 == 0) goto code_r0x00023a30;\n      }\n      else {\n        bVar21 = pbVar7[1];\n        pbVar12 = (byte *)(int)(char)bVar21;\n        if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar7 = (byte *)0xffffffff;\n          local_60 = pbVar12;\n          do {\n            pbVar3 = local_60;\n            if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }\n            pbVar7 = pbVar3 + -0x30;\n            param_1[0x9a] = (uint)pbVar7;\n            local_5c[0] = local_5c[0] + 1;\n            if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }\n            bVar21 = *local_5c[0];\n            local_60 = (byte *)(int)(char)bVar21;\n            pbVar12 = (byte *)(int)(char)bVar21 + -0x30;\n          } while ((byte)pbVar12 < 10);\n          if (bVar21 == 0x2c) {\n            if ((int)pbVar7 < 0) goto code_r0x00023bed;\ncode_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;\n            if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }\n            bVar21 = local_5c[0][1];\n            if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            local_5c[0] = pbVar12;\n            goto code_r0x00023bd8;\n          }\n          param_1[0x9b] = (uint)pbVar7;\n          puVar17 = auStack_6c;\n          if (bStack_51 == 0) goto code_r0x00023a30;\n        }\n        else {\n          if (bVar21 == 0x2c) {\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }\ncode_r0x00023bd8:\n          if (bStack_51 == 0) goto code_r0x00023a3a;\n        }\n        puVar13 = auStack_6c;\n        if (*local_5c[0] == 0x5c) goto code_r0x00023a2b;\n      }\ncode_r0x00023a04:\n      if ((*(uint *)(puVar13 + 0x1c) & 0x200000) == 0) {\n        *(byte **)(puVar13 + -4) = pbVar12;\n        pcVar8 = "invalid content of \\{\\}";\n        ppbVar15 = (byte **)(puVar13 + -8);\n        *(undefined4 *)(puVar13 + -8) = 5;\ncode_r0x00023a1b:\n        while( true ) {\n          *(char **)((int)ppbVar15 + -4) = pcVar8;\n          puVar16 = (undefined1 *)((int)ppbVar15 + -8);\n          *(undefined4 *)((int)ppbVar15 + -8) = 0;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23;\n          uVar11 = dcgettext();\n          *(undefined4 *)((int)ppbVar15 + -8) = uVar11;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b;\n          FUN_0001be40();\n          pbVar12 = extraout_ECX;\ncode_r0x00023a2b:\n          *(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;\n          puVar17 = puVar16;\ncode_r0x00023a30:\n          puVar13 = puVar17;\n          puVar18 = puVar17;\n          if (*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)) break;\ncode_r0x00023a3a:\n          puVar13 = puVar18;\n          if ((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))\n          break;\n          uVar5 = param_1[0x9b];\n          if ((int)uVar5 < 0) {\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }\n          if ((int)uVar5 < (int)uVar19) break;\n          if ((int)uVar5 < 0x8000) goto code_r0x00023a66;\n          pcVar8 = "regular expression too big";\n          *(uint *)(puVar18 + -4) = uVar19;\n          ppbVar15 = (byte **)(puVar18 + -8);\n          *(undefined4 *)(puVar18 + -8) = 5;\n        }\n        goto code_r0x00023a04;\n      }\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x7b;\n    break;" case number_literal : (expression_statement "bStack_51 = 0;" (assignment_expression "bStack_51 = 0" identifier = number_literal) ;) (labeled_statement "code_r0x00023295:\n    auStack_50[0] = *param_1;" statement_identifier : (expression_statement "auStack_50[0] = *param_1;" (assignment_expression "auStack_50[0] = *param_1" (subscript_expression "auStack_50[0]" identifier [ number_literal ]) = (pointer_expression "*param_1" * identifier)) ;)) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (if_statement "if ((((auStack_50[0] & 0x200) != 0) &&\n        (puVar13 = auStack_6c, (((byte)(auStack_50[0] >> 0xc) ^ 1) & 1) == bStack_51)) &&\n       (((auStack_50[0] & 0x10) != 0 || (puVar13 = auStack_6c, (byte)param_1[0xa3] == 0)))) {\n      local_5c[1] = pbVar7 + (int)pbVar12;\n      param_1[0x9b] = 0xffffffff;\n      param_1[0x9a] = 0xffffffff;\n      if (local_5c[1] == local_5c[0]) {\ncode_r0x00023b5a:\n        puVar13 = auStack_6c;\n        if (bStack_51 == 0) goto code_r0x00023a30;\n      }\n      else {\n        bVar21 = pbVar7[1];\n        pbVar12 = (byte *)(int)(char)bVar21;\n        if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar7 = (byte *)0xffffffff;\n          local_60 = pbVar12;\n          do {\n            pbVar3 = local_60;\n            if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }\n            pbVar7 = pbVar3 + -0x30;\n            param_1[0x9a] = (uint)pbVar7;\n            local_5c[0] = local_5c[0] + 1;\n            if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }\n            bVar21 = *local_5c[0];\n            local_60 = (byte *)(int)(char)bVar21;\n            pbVar12 = (byte *)(int)(char)bVar21 + -0x30;\n          } while ((byte)pbVar12 < 10);\n          if (bVar21 == 0x2c) {\n            if ((int)pbVar7 < 0) goto code_r0x00023bed;\ncode_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;\n            if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }\n            bVar21 = local_5c[0][1];\n            if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            local_5c[0] = pbVar12;\n            goto code_r0x00023bd8;\n          }\n          param_1[0x9b] = (uint)pbVar7;\n          puVar17 = auStack_6c;\n          if (bStack_51 == 0) goto code_r0x00023a30;\n        }\n        else {\n          if (bVar21 == 0x2c) {\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }\ncode_r0x00023bd8:\n          if (bStack_51 == 0) goto code_r0x00023a3a;\n        }\n        puVar13 = auStack_6c;\n        if (*local_5c[0] == 0x5c) goto code_r0x00023a2b;\n      }\ncode_r0x00023a04:\n      if ((*(uint *)(puVar13 + 0x1c) & 0x200000) == 0) {\n        *(byte **)(puVar13 + -4) = pbVar12;\n        pcVar8 = "invalid content of \\{\\}";\n        ppbVar15 = (byte **)(puVar13 + -8);\n        *(undefined4 *)(puVar13 + -8) = 5;\ncode_r0x00023a1b:\n        while( true ) {\n          *(char **)((int)ppbVar15 + -4) = pcVar8;\n          puVar16 = (undefined1 *)((int)ppbVar15 + -8);\n          *(undefined4 *)((int)ppbVar15 + -8) = 0;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23;\n          uVar11 = dcgettext();\n          *(undefined4 *)((int)ppbVar15 + -8) = uVar11;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b;\n          FUN_0001be40();\n          pbVar12 = extraout_ECX;\ncode_r0x00023a2b:\n          *(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;\n          puVar17 = puVar16;\ncode_r0x00023a30:\n          puVar13 = puVar17;\n          puVar18 = puVar17;\n          if (*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)) break;\ncode_r0x00023a3a:\n          puVar13 = puVar18;\n          if ((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))\n          break;\n          uVar5 = param_1[0x9b];\n          if ((int)uVar5 < 0) {\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }\n          if ((int)uVar5 < (int)uVar19) break;\n          if ((int)uVar5 < 0x8000) goto code_r0x00023a66;\n          pcVar8 = "regular expression too big";\n          *(uint *)(puVar18 + -4) = uVar19;\n          ppbVar15 = (byte **)(puVar18 + -8);\n          *(undefined4 *)(puVar18 + -8) = 5;\n        }\n        goto code_r0x00023a04;\n      }\n    }" if (parenthesized_expression "((((auStack_50[0] & 0x200) != 0) &&\n        (puVar13 = auStack_6c, (((byte)(auStack_50[0] >> 0xc) ^ 1) & 1) == bStack_51)) &&\n       (((auStack_50[0] & 0x10) != 0 || (puVar13 = auStack_6c, (byte)param_1[0xa3] == 0))))" ( (binary_expression "(((auStack_50[0] & 0x200) != 0) &&\n        (puVar13 = auStack_6c, (((byte)(auStack_50[0] >> 0xc) ^ 1) & 1) == bStack_51)) &&\n       (((auStack_50[0] & 0x10) != 0 || (puVar13 = auStack_6c, (byte)param_1[0xa3] == 0)))" (parenthesized_expression "(((auStack_50[0] & 0x200) != 0) &&\n        (puVar13 = auStack_6c, (((byte)(auStack_50[0] >> 0xc) ^ 1) & 1) == bStack_51))" ( (binary_expression "((auStack_50[0] & 0x200) != 0) &&\n        (puVar13 = auStack_6c, (((byte)(auStack_50[0] >> 0xc) ^ 1) & 1) == bStack_51)" (parenthesized_expression "((auStack_50[0] & 0x200) != 0)" ( (binary_expression "(auStack_50[0] & 0x200) != 0" (parenthesized_expression "(auStack_50[0] & 0x200)" ( (binary_expression "auStack_50[0] & 0x200" (subscript_expression "auStack_50[0]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) && (parenthesized_expression "(puVar13 = auStack_6c, (((byte)(auStack_50[0] >> 0xc) ^ 1) & 1) == bStack_51)" ( (comma_expression "puVar13 = auStack_6c, (((byte)(auStack_50[0] >> 0xc) ^ 1) & 1) == bStack_51" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) , (binary_expression "(((byte)(auStack_50[0] >> 0xc) ^ 1) & 1) == bStack_51" (parenthesized_expression "(((byte)(auStack_50[0] >> 0xc) ^ 1) & 1)" ( (binary_expression "((byte)(auStack_50[0] >> 0xc) ^ 1) & 1" (parenthesized_expression "((byte)(auStack_50[0] >> 0xc) ^ 1)" ( (binary_expression "(byte)(auStack_50[0] >> 0xc) ^ 1" (call_expression "(byte)(auStack_50[0] >> 0xc)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(auStack_50[0] >> 0xc)" ( (binary_expression "auStack_50[0] >> 0xc" (subscript_expression "auStack_50[0]" identifier [ number_literal ]) >> number_literal) ))) ^ number_literal) )) & number_literal) )) == identifier)) ))) )) && (parenthesized_expression "(((auStack_50[0] & 0x10) != 0 || (puVar13 = auStack_6c, (byte)param_1[0xa3] == 0)))" ( (parenthesized_expression "((auStack_50[0] & 0x10) != 0 || (puVar13 = auStack_6c, (byte)param_1[0xa3] == 0))" ( (binary_expression "(auStack_50[0] & 0x10) != 0 || (puVar13 = auStack_6c, (byte)param_1[0xa3] == 0)" (binary_expression "(auStack_50[0] & 0x10) != 0" (parenthesized_expression "(auStack_50[0] & 0x10)" ( (binary_expression "auStack_50[0] & 0x10" (subscript_expression "auStack_50[0]" identifier [ number_literal ]) & number_literal) )) != number_literal) || (parenthesized_expression "(puVar13 = auStack_6c, (byte)param_1[0xa3] == 0)" ( (comma_expression "puVar13 = auStack_6c, (byte)param_1[0xa3] == 0" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) , (binary_expression "(byte)param_1[0xa3] == 0" (cast_expression "(byte)param_1[0xa3]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xa3]" identifier [ number_literal ])) == number_literal)) ))) )) ))) )) (compound_statement "{\n      local_5c[1] = pbVar7 + (int)pbVar12;\n      param_1[0x9b] = 0xffffffff;\n      param_1[0x9a] = 0xffffffff;\n      if (local_5c[1] == local_5c[0]) {\ncode_r0x00023b5a:\n        puVar13 = auStack_6c;\n        if (bStack_51 == 0) goto code_r0x00023a30;\n      }\n      else {\n        bVar21 = pbVar7[1];\n        pbVar12 = (byte *)(int)(char)bVar21;\n        if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar7 = (byte *)0xffffffff;\n          local_60 = pbVar12;\n          do {\n            pbVar3 = local_60;\n            if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }\n            pbVar7 = pbVar3 + -0x30;\n            param_1[0x9a] = (uint)pbVar7;\n            local_5c[0] = local_5c[0] + 1;\n            if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }\n            bVar21 = *local_5c[0];\n            local_60 = (byte *)(int)(char)bVar21;\n            pbVar12 = (byte *)(int)(char)bVar21 + -0x30;\n          } while ((byte)pbVar12 < 10);\n          if (bVar21 == 0x2c) {\n            if ((int)pbVar7 < 0) goto code_r0x00023bed;\ncode_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;\n            if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }\n            bVar21 = local_5c[0][1];\n            if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            local_5c[0] = pbVar12;\n            goto code_r0x00023bd8;\n          }\n          param_1[0x9b] = (uint)pbVar7;\n          puVar17 = auStack_6c;\n          if (bStack_51 == 0) goto code_r0x00023a30;\n        }\n        else {\n          if (bVar21 == 0x2c) {\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }\ncode_r0x00023bd8:\n          if (bStack_51 == 0) goto code_r0x00023a3a;\n        }\n        puVar13 = auStack_6c;\n        if (*local_5c[0] == 0x5c) goto code_r0x00023a2b;\n      }\ncode_r0x00023a04:\n      if ((*(uint *)(puVar13 + 0x1c) & 0x200000) == 0) {\n        *(byte **)(puVar13 + -4) = pbVar12;\n        pcVar8 = "invalid content of \\{\\}";\n        ppbVar15 = (byte **)(puVar13 + -8);\n        *(undefined4 *)(puVar13 + -8) = 5;\ncode_r0x00023a1b:\n        while( true ) {\n          *(char **)((int)ppbVar15 + -4) = pcVar8;\n          puVar16 = (undefined1 *)((int)ppbVar15 + -8);\n          *(undefined4 *)((int)ppbVar15 + -8) = 0;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23;\n          uVar11 = dcgettext();\n          *(undefined4 *)((int)ppbVar15 + -8) = uVar11;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b;\n          FUN_0001be40();\n          pbVar12 = extraout_ECX;\ncode_r0x00023a2b:\n          *(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;\n          puVar17 = puVar16;\ncode_r0x00023a30:\n          puVar13 = puVar17;\n          puVar18 = puVar17;\n          if (*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)) break;\ncode_r0x00023a3a:\n          puVar13 = puVar18;\n          if ((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))\n          break;\n          uVar5 = param_1[0x9b];\n          if ((int)uVar5 < 0) {\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }\n          if ((int)uVar5 < (int)uVar19) break;\n          if ((int)uVar5 < 0x8000) goto code_r0x00023a66;\n          pcVar8 = "regular expression too big";\n          *(uint *)(puVar18 + -4) = uVar19;\n          ppbVar15 = (byte **)(puVar18 + -8);\n          *(undefined4 *)(puVar18 + -8) = 5;\n        }\n        goto code_r0x00023a04;\n      }\n    }" { (expression_statement "local_5c[1] = pbVar7 + (int)pbVar12;" (assignment_expression "local_5c[1] = pbVar7 + (int)pbVar12" (subscript_expression "local_5c[1]" identifier [ number_literal ]) = (binary_expression "pbVar7 + (int)pbVar12" identifier + (cast_expression "(int)pbVar12" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "param_1[0x9b] = 0xffffffff;" (assignment_expression "param_1[0x9b] = 0xffffffff" (subscript_expression "param_1[0x9b]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x9a] = 0xffffffff;" (assignment_expression "param_1[0x9a] = 0xffffffff" (subscript_expression "param_1[0x9a]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (local_5c[1] == local_5c[0]) {\ncode_r0x00023b5a:\n        puVar13 = auStack_6c;\n        if (bStack_51 == 0) goto code_r0x00023a30;\n      }\n      else {\n        bVar21 = pbVar7[1];\n        pbVar12 = (byte *)(int)(char)bVar21;\n        if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar7 = (byte *)0xffffffff;\n          local_60 = pbVar12;\n          do {\n            pbVar3 = local_60;\n            if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }\n            pbVar7 = pbVar3 + -0x30;\n            param_1[0x9a] = (uint)pbVar7;\n            local_5c[0] = local_5c[0] + 1;\n            if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }\n            bVar21 = *local_5c[0];\n            local_60 = (byte *)(int)(char)bVar21;\n            pbVar12 = (byte *)(int)(char)bVar21 + -0x30;\n          } while ((byte)pbVar12 < 10);\n          if (bVar21 == 0x2c) {\n            if ((int)pbVar7 < 0) goto code_r0x00023bed;\ncode_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;\n            if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }\n            bVar21 = local_5c[0][1];\n            if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            local_5c[0] = pbVar12;\n            goto code_r0x00023bd8;\n          }\n          param_1[0x9b] = (uint)pbVar7;\n          puVar17 = auStack_6c;\n          if (bStack_51 == 0) goto code_r0x00023a30;\n        }\n        else {\n          if (bVar21 == 0x2c) {\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }\ncode_r0x00023bd8:\n          if (bStack_51 == 0) goto code_r0x00023a3a;\n        }\n        puVar13 = auStack_6c;\n        if (*local_5c[0] == 0x5c) goto code_r0x00023a2b;\n      }" if (parenthesized_expression "(local_5c[1] == local_5c[0])" ( (binary_expression "local_5c[1] == local_5c[0]" (subscript_expression "local_5c[1]" identifier [ number_literal ]) == (subscript_expression "local_5c[0]" identifier [ number_literal ])) )) (compound_statement "{\ncode_r0x00023b5a:\n        puVar13 = auStack_6c;\n        if (bStack_51 == 0) goto code_r0x00023a30;\n      }" { (labeled_statement "code_r0x00023b5a:\n        puVar13 = auStack_6c;" statement_identifier : (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;)) (if_statement "if (bStack_51 == 0) goto code_r0x00023a30;" if (parenthesized_expression "(bStack_51 == 0)" ( (binary_expression "bStack_51 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x00023a30;" goto statement_identifier ;)) }) (else_clause "else {\n        bVar21 = pbVar7[1];\n        pbVar12 = (byte *)(int)(char)bVar21;\n        if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar7 = (byte *)0xffffffff;\n          local_60 = pbVar12;\n          do {\n            pbVar3 = local_60;\n            if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }\n            pbVar7 = pbVar3 + -0x30;\n            param_1[0x9a] = (uint)pbVar7;\n            local_5c[0] = local_5c[0] + 1;\n            if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }\n            bVar21 = *local_5c[0];\n            local_60 = (byte *)(int)(char)bVar21;\n            pbVar12 = (byte *)(int)(char)bVar21 + -0x30;\n          } while ((byte)pbVar12 < 10);\n          if (bVar21 == 0x2c) {\n            if ((int)pbVar7 < 0) goto code_r0x00023bed;\ncode_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;\n            if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }\n            bVar21 = local_5c[0][1];\n            if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            local_5c[0] = pbVar12;\n            goto code_r0x00023bd8;\n          }\n          param_1[0x9b] = (uint)pbVar7;\n          puVar17 = auStack_6c;\n          if (bStack_51 == 0) goto code_r0x00023a30;\n        }\n        else {\n          if (bVar21 == 0x2c) {\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }\ncode_r0x00023bd8:\n          if (bStack_51 == 0) goto code_r0x00023a3a;\n        }\n        puVar13 = auStack_6c;\n        if (*local_5c[0] == 0x5c) goto code_r0x00023a2b;\n      }" else (compound_statement "{\n        bVar21 = pbVar7[1];\n        pbVar12 = (byte *)(int)(char)bVar21;\n        if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar7 = (byte *)0xffffffff;\n          local_60 = pbVar12;\n          do {\n            pbVar3 = local_60;\n            if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }\n            pbVar7 = pbVar3 + -0x30;\n            param_1[0x9a] = (uint)pbVar7;\n            local_5c[0] = local_5c[0] + 1;\n            if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }\n            bVar21 = *local_5c[0];\n            local_60 = (byte *)(int)(char)bVar21;\n            pbVar12 = (byte *)(int)(char)bVar21 + -0x30;\n          } while ((byte)pbVar12 < 10);\n          if (bVar21 == 0x2c) {\n            if ((int)pbVar7 < 0) goto code_r0x00023bed;\ncode_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;\n            if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }\n            bVar21 = local_5c[0][1];\n            if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            local_5c[0] = pbVar12;\n            goto code_r0x00023bd8;\n          }\n          param_1[0x9b] = (uint)pbVar7;\n          puVar17 = auStack_6c;\n          if (bStack_51 == 0) goto code_r0x00023a30;\n        }\n        else {\n          if (bVar21 == 0x2c) {\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }\ncode_r0x00023bd8:\n          if (bStack_51 == 0) goto code_r0x00023a3a;\n        }\n        puVar13 = auStack_6c;\n        if (*local_5c[0] == 0x5c) goto code_r0x00023a2b;\n      }" { (expression_statement "bVar21 = pbVar7[1];" (assignment_expression "bVar21 = pbVar7[1]" identifier = (subscript_expression "pbVar7[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar12 = (byte *)(int)(char)bVar21;" (assignment_expression "pbVar12 = (byte *)(int)(char)bVar21" identifier = (cast_expression "(byte *)(int)(char)bVar21" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)(char)bVar21" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar21" ( (type_descriptor "char" primitive_type) ) identifier)))) ;) (if_statement "if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar7 = (byte *)0xffffffff;\n          local_60 = pbVar12;\n          do {\n            pbVar3 = local_60;\n            if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }\n            pbVar7 = pbVar3 + -0x30;\n            param_1[0x9a] = (uint)pbVar7;\n            local_5c[0] = local_5c[0] + 1;\n            if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }\n            bVar21 = *local_5c[0];\n            local_60 = (byte *)(int)(char)bVar21;\n            pbVar12 = (byte *)(int)(char)bVar21 + -0x30;\n          } while ((byte)pbVar12 < 10);\n          if (bVar21 == 0x2c) {\n            if ((int)pbVar7 < 0) goto code_r0x00023bed;\ncode_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;\n            if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }\n            bVar21 = local_5c[0][1];\n            if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            local_5c[0] = pbVar12;\n            goto code_r0x00023bd8;\n          }\n          param_1[0x9b] = (uint)pbVar7;\n          puVar17 = auStack_6c;\n          if (bStack_51 == 0) goto code_r0x00023a30;\n        }\n        else {\n          if (bVar21 == 0x2c) {\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }\ncode_r0x00023bd8:\n          if (bStack_51 == 0) goto code_r0x00023a3a;\n        }" if (parenthesized_expression "((byte)(bVar21 - 0x30) < 10)" ( (binary_expression "(byte)(bVar21 - 0x30) < 10" (call_expression "(byte)(bVar21 - 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar21 - 0x30)" ( (binary_expression "bVar21 - 0x30" identifier - number_literal) ))) < number_literal) )) (compound_statement "{\n          pbVar7 = (byte *)0xffffffff;\n          local_60 = pbVar12;\n          do {\n            pbVar3 = local_60;\n            if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }\n            pbVar7 = pbVar3 + -0x30;\n            param_1[0x9a] = (uint)pbVar7;\n            local_5c[0] = local_5c[0] + 1;\n            if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }\n            bVar21 = *local_5c[0];\n            local_60 = (byte *)(int)(char)bVar21;\n            pbVar12 = (byte *)(int)(char)bVar21 + -0x30;\n          } while ((byte)pbVar12 < 10);\n          if (bVar21 == 0x2c) {\n            if ((int)pbVar7 < 0) goto code_r0x00023bed;\ncode_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;\n            if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }\n            bVar21 = local_5c[0][1];\n            if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            local_5c[0] = pbVar12;\n            goto code_r0x00023bd8;\n          }\n          param_1[0x9b] = (uint)pbVar7;\n          puVar17 = auStack_6c;\n          if (bStack_51 == 0) goto code_r0x00023a30;\n        }" { (expression_statement "pbVar7 = (byte *)0xffffffff;" (assignment_expression "pbVar7 = (byte *)0xffffffff" identifier = (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_60 = pbVar12;" (assignment_expression "local_60 = pbVar12" identifier = identifier) ;) (do_statement "do {\n            pbVar3 = local_60;\n            if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }\n            pbVar7 = pbVar3 + -0x30;\n            param_1[0x9a] = (uint)pbVar7;\n            local_5c[0] = local_5c[0] + 1;\n            if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }\n            bVar21 = *local_5c[0];\n            local_60 = (byte *)(int)(char)bVar21;\n            pbVar12 = (byte *)(int)(char)bVar21 + -0x30;\n          } while ((byte)pbVar12 < 10);" do (compound_statement "{\n            pbVar3 = local_60;\n            if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }\n            pbVar7 = pbVar3 + -0x30;\n            param_1[0x9a] = (uint)pbVar7;\n            local_5c[0] = local_5c[0] + 1;\n            if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }\n            bVar21 = *local_5c[0];\n            local_60 = (byte *)(int)(char)bVar21;\n            pbVar12 = (byte *)(int)(char)bVar21 + -0x30;\n          }" { (expression_statement "pbVar3 = local_60;" (assignment_expression "pbVar3 = local_60" identifier = identifier) ;) (if_statement "if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }" if (parenthesized_expression "((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))" ( (binary_expression "(-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10))" (parenthesized_expression "(-1 < (int)pbVar7)" ( (binary_expression "-1 < (int)pbVar7" number_literal < (cast_expression "(int)pbVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10))" ( (comma_expression "pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)" (assignment_expression "pbVar3 = local_60 + (int)pbVar7 * 10" identifier = (binary_expression "local_60 + (int)pbVar7 * 10" identifier + (binary_expression "(int)pbVar7 * 10" (cast_expression "(int)pbVar7" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) , (binary_expression "0x8030 < (int)(local_60 + (int)pbVar7 * 10)" number_literal < (cast_expression "(int)(local_60 + (int)pbVar7 * 10)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_60 + (int)pbVar7 * 10)" ( (binary_expression "local_60 + (int)pbVar7 * 10" identifier + (binary_expression "(int)pbVar7 * 10" (cast_expression "(int)pbVar7" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ))) )) (compound_statement "{\n              pbVar3 = (byte *)0x8030;\n            }" { (expression_statement "pbVar3 = (byte *)0x8030;" (assignment_expression "pbVar3 = (byte *)0x8030" identifier = (cast_expression "(byte *)0x8030" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "pbVar7 = pbVar3 + -0x30;" (assignment_expression "pbVar7 = pbVar3 + -0x30" identifier = (binary_expression "pbVar3 + -0x30" identifier + number_literal)) ;) (expression_statement "param_1[0x9a] = (uint)pbVar7;" (assignment_expression "param_1[0x9a] = (uint)pbVar7" (subscript_expression "param_1[0x9a]" identifier [ number_literal ]) = (cast_expression "(uint)pbVar7" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_5c[0] = local_5c[0] + 1;" (assignment_expression "local_5c[0] = local_5c[0] + 1" (subscript_expression "local_5c[0]" identifier [ number_literal ]) = (binary_expression "local_5c[0] + 1" (subscript_expression "local_5c[0]" identifier [ number_literal ]) + number_literal)) ;) (if_statement "if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }" if (parenthesized_expression "(local_5c[1] == local_5c[0])" ( (binary_expression "local_5c[1] == local_5c[0]" (subscript_expression "local_5c[1]" identifier [ number_literal ]) == (subscript_expression "local_5c[0]" identifier [ number_literal ])) )) (compound_statement "{\n              goto code_r0x00023b5a;\n            }" { (goto_statement "goto code_r0x00023b5a;" goto statement_identifier ;) })) (expression_statement "bVar21 = *local_5c[0];" (assignment_expression "bVar21 = *local_5c[0]" identifier = (pointer_expression "*local_5c[0]" * (subscript_expression "local_5c[0]" identifier [ number_literal ]))) ;) (expression_statement "local_60 = (byte *)(int)(char)bVar21;" (assignment_expression "local_60 = (byte *)(int)(char)bVar21" identifier = (cast_expression "(byte *)(int)(char)bVar21" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)(char)bVar21" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar21" ( (type_descriptor "char" primitive_type) ) identifier)))) ;) (expression_statement "pbVar12 = (byte *)(int)(char)bVar21 + -0x30;" (assignment_expression "pbVar12 = (byte *)(int)(char)bVar21 + -0x30" identifier = (binary_expression "(byte *)(int)(char)bVar21 + -0x30" (cast_expression "(byte *)(int)(char)bVar21" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)(char)bVar21" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar21" ( (type_descriptor "char" primitive_type) ) identifier))) + number_literal)) ;) }) while (parenthesized_expression "((byte)pbVar12 < 10)" ( (binary_expression "(byte)pbVar12 < 10" (cast_expression "(byte)pbVar12" ( (type_descriptor "byte" type_identifier) ) identifier) < number_literal) )) ;) (if_statement "if (bVar21 == 0x2c) {\n            if ((int)pbVar7 < 0) goto code_r0x00023bed;\ncode_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;\n            if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }\n            bVar21 = local_5c[0][1];\n            if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            local_5c[0] = pbVar12;\n            goto code_r0x00023bd8;\n          }" if (parenthesized_expression "(bVar21 == 0x2c)" ( (binary_expression "bVar21 == 0x2c" identifier == number_literal) )) (compound_statement "{\n            if ((int)pbVar7 < 0) goto code_r0x00023bed;\ncode_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;\n            if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }\n            bVar21 = local_5c[0][1];\n            if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            local_5c[0] = pbVar12;\n            goto code_r0x00023bd8;\n          }" { (if_statement "if ((int)pbVar7 < 0) goto code_r0x00023bed;" if (parenthesized_expression "((int)pbVar7 < 0)" ( (binary_expression "(int)pbVar7 < 0" (cast_expression "(int)pbVar7" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto code_r0x00023bed;" goto statement_identifier ;)) (labeled_statement "code_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;" statement_identifier : (expression_statement "pbVar12 = local_5c[0] + 1;" (assignment_expression "pbVar12 = local_5c[0] + 1" identifier = (binary_expression "local_5c[0] + 1" (subscript_expression "local_5c[0]" identifier [ number_literal ]) + number_literal)) ;)) (if_statement "if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }" if (parenthesized_expression "(local_5c[1] == pbVar12)" ( (binary_expression "local_5c[1] == pbVar12" (subscript_expression "local_5c[1]" identifier [ number_literal ]) == identifier) )) (compound_statement "{\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }" { (labeled_statement "code_r0x00023bca:\n              local_5c[0] = local_5c[1];" statement_identifier : (expression_statement "local_5c[0] = local_5c[1];" (assignment_expression "local_5c[0] = local_5c[1]" (subscript_expression "local_5c[0]" identifier [ number_literal ]) = (subscript_expression "local_5c[1]" identifier [ number_literal ])) ;)) (goto_statement "goto code_r0x00023b5a;" goto statement_identifier ;) })) (expression_statement "bVar21 = local_5c[0][1];" (assignment_expression "bVar21 = local_5c[0][1]" identifier = (subscript_expression "local_5c[0][1]" (subscript_expression "local_5c[0]" identifier [ number_literal ]) [ number_literal ])) ;) (if_statement "if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }" if (parenthesized_expression "((byte)(bVar21 - 0x30) < 10)" ( (binary_expression "(byte)(bVar21 - 0x30) < 10" (call_expression "(byte)(bVar21 - 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar21 - 0x30)" ( (binary_expression "bVar21 - 0x30" identifier - number_literal) ))) < number_literal) )) (compound_statement "{\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }" { (expression_statement "uVar19 = 0xffffffff;" (assignment_expression "uVar19 = 0xffffffff" identifier = number_literal) ;) (do_statement "do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);" do (compound_statement "{\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              }" { (expression_statement "iVar10 = (int)(char)bVar21;" (assignment_expression "iVar10 = (int)(char)bVar21" identifier = (cast_expression "(int)(char)bVar21" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar21" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (if_statement "if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }" if (parenthesized_expression "((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10))" ( (binary_expression "(-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)" (parenthesized_expression "(-1 < (int)uVar19)" ( (binary_expression "-1 < (int)uVar19" number_literal < (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)" ( (comma_expression "iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10" (assignment_expression "iVar10 = iVar10 + uVar19 * 10" identifier = (binary_expression "iVar10 + uVar19 * 10" identifier + (binary_expression "uVar19 * 10" identifier * number_literal))) , (binary_expression "0x8030 < iVar10" number_literal < identifier)) ))) )) (compound_statement "{\n                  iVar10 = 0x8030;\n                }" { (expression_statement "iVar10 = 0x8030;" (assignment_expression "iVar10 = 0x8030" identifier = number_literal) ;) })) (expression_statement "uVar19 = iVar10 - 0x30;" (assignment_expression "uVar19 = iVar10 - 0x30" identifier = (binary_expression "iVar10 - 0x30" identifier - number_literal)) ;) (expression_statement "param_1[0x9b] = uVar19;" (assignment_expression "param_1[0x9b] = uVar19" (subscript_expression "param_1[0x9b]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (if_statement "if (local_5c[1] == pbVar12) goto code_r0x00023bca;" if (parenthesized_expression "(local_5c[1] == pbVar12)" ( (binary_expression "local_5c[1] == pbVar12" (subscript_expression "local_5c[1]" identifier [ number_literal ]) == identifier) )) (goto_statement "goto code_r0x00023bca;" goto statement_identifier ;)) (expression_statement "bVar21 = *pbVar12;" (assignment_expression "bVar21 = *pbVar12" identifier = (pointer_expression "*pbVar12" * identifier)) ;) }) while (parenthesized_expression "((byte)(bVar21 - 0x30) < 10)" ( (binary_expression "(byte)(bVar21 - 0x30) < 10" (call_expression "(byte)(bVar21 - 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar21 - 0x30)" ( (binary_expression "bVar21 - 0x30" identifier - number_literal) ))) < number_literal) )) ;) })) (expression_statement "local_5c[0] = pbVar12;" (assignment_expression "local_5c[0] = pbVar12" (subscript_expression "local_5c[0]" identifier [ number_literal ]) = identifier) ;) (goto_statement "goto code_r0x00023bd8;" goto statement_identifier ;) })) (expression_statement "param_1[0x9b] = (uint)pbVar7;" (assignment_expression "param_1[0x9b] = (uint)pbVar7" (subscript_expression "param_1[0x9b]" identifier [ number_literal ]) = (cast_expression "(uint)pbVar7" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar17 = auStack_6c;" (assignment_expression "puVar17 = auStack_6c" identifier = identifier) ;) (if_statement "if (bStack_51 == 0) goto code_r0x00023a30;" if (parenthesized_expression "(bStack_51 == 0)" ( (binary_expression "bStack_51 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x00023a30;" goto statement_identifier ;)) }) (else_clause "else {\n          if (bVar21 == 0x2c) {\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }\ncode_r0x00023bd8:\n          if (bStack_51 == 0) goto code_r0x00023a3a;\n        }" else (compound_statement "{\n          if (bVar21 == 0x2c) {\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }\ncode_r0x00023bd8:\n          if (bStack_51 == 0) goto code_r0x00023a3a;\n        }" { (if_statement "if (bVar21 == 0x2c) {\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }" if (parenthesized_expression "(bVar21 == 0x2c)" ( (binary_expression "bVar21 == 0x2c" identifier == number_literal) )) (compound_statement "{\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }" { (labeled_statement "code_r0x00023bed:\n            param_1[0x9a] = 0;" statement_identifier : (expression_statement "param_1[0x9a] = 0;" (assignment_expression "param_1[0x9a] = 0" (subscript_expression "param_1[0x9a]" identifier [ number_literal ]) = number_literal) ;)) (goto_statement "goto code_r0x00023b6e;" goto statement_identifier ;) })) (labeled_statement "code_r0x00023bd8:\n          if (bStack_51 == 0) goto code_r0x00023a3a;" statement_identifier : (if_statement "if (bStack_51 == 0) goto code_r0x00023a3a;" if (parenthesized_expression "(bStack_51 == 0)" ( (binary_expression "bStack_51 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x00023a3a;" goto statement_identifier ;))) }))) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (if_statement "if (*local_5c[0] == 0x5c) goto code_r0x00023a2b;" if (parenthesized_expression "(*local_5c[0] == 0x5c)" ( (binary_expression "*local_5c[0] == 0x5c" (pointer_expression "*local_5c[0]" * (subscript_expression "local_5c[0]" identifier [ number_literal ])) == number_literal) )) (goto_statement "goto code_r0x00023a2b;" goto statement_identifier ;)) }))) (labeled_statement "code_r0x00023a04:\n      if ((*(uint *)(puVar13 + 0x1c) & 0x200000) == 0) {\n        *(byte **)(puVar13 + -4) = pbVar12;\n        pcVar8 = "invalid content of \\{\\}";\n        ppbVar15 = (byte **)(puVar13 + -8);\n        *(undefined4 *)(puVar13 + -8) = 5;\ncode_r0x00023a1b:\n        while( true ) {\n          *(char **)((int)ppbVar15 + -4) = pcVar8;\n          puVar16 = (undefined1 *)((int)ppbVar15 + -8);\n          *(undefined4 *)((int)ppbVar15 + -8) = 0;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23;\n          uVar11 = dcgettext();\n          *(undefined4 *)((int)ppbVar15 + -8) = uVar11;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b;\n          FUN_0001be40();\n          pbVar12 = extraout_ECX;\ncode_r0x00023a2b:\n          *(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;\n          puVar17 = puVar16;\ncode_r0x00023a30:\n          puVar13 = puVar17;\n          puVar18 = puVar17;\n          if (*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)) break;\ncode_r0x00023a3a:\n          puVar13 = puVar18;\n          if ((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))\n          break;\n          uVar5 = param_1[0x9b];\n          if ((int)uVar5 < 0) {\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }\n          if ((int)uVar5 < (int)uVar19) break;\n          if ((int)uVar5 < 0x8000) goto code_r0x00023a66;\n          pcVar8 = "regular expression too big";\n          *(uint *)(puVar18 + -4) = uVar19;\n          ppbVar15 = (byte **)(puVar18 + -8);\n          *(undefined4 *)(puVar18 + -8) = 5;\n        }\n        goto code_r0x00023a04;\n      }" statement_identifier : (if_statement "if ((*(uint *)(puVar13 + 0x1c) & 0x200000) == 0) {\n        *(byte **)(puVar13 + -4) = pbVar12;\n        pcVar8 = "invalid content of \\{\\}";\n        ppbVar15 = (byte **)(puVar13 + -8);\n        *(undefined4 *)(puVar13 + -8) = 5;\ncode_r0x00023a1b:\n        while( true ) {\n          *(char **)((int)ppbVar15 + -4) = pcVar8;\n          puVar16 = (undefined1 *)((int)ppbVar15 + -8);\n          *(undefined4 *)((int)ppbVar15 + -8) = 0;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23;\n          uVar11 = dcgettext();\n          *(undefined4 *)((int)ppbVar15 + -8) = uVar11;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b;\n          FUN_0001be40();\n          pbVar12 = extraout_ECX;\ncode_r0x00023a2b:\n          *(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;\n          puVar17 = puVar16;\ncode_r0x00023a30:\n          puVar13 = puVar17;\n          puVar18 = puVar17;\n          if (*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)) break;\ncode_r0x00023a3a:\n          puVar13 = puVar18;\n          if ((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))\n          break;\n          uVar5 = param_1[0x9b];\n          if ((int)uVar5 < 0) {\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }\n          if ((int)uVar5 < (int)uVar19) break;\n          if ((int)uVar5 < 0x8000) goto code_r0x00023a66;\n          pcVar8 = "regular expression too big";\n          *(uint *)(puVar18 + -4) = uVar19;\n          ppbVar15 = (byte **)(puVar18 + -8);\n          *(undefined4 *)(puVar18 + -8) = 5;\n        }\n        goto code_r0x00023a04;\n      }" if (parenthesized_expression "((*(uint *)(puVar13 + 0x1c) & 0x200000) == 0)" ( (binary_expression "(*(uint *)(puVar13 + 0x1c) & 0x200000) == 0" (parenthesized_expression "(*(uint *)(puVar13 + 0x1c) & 0x200000)" ( (binary_expression "*(uint *)(puVar13 + 0x1c) & 0x200000" (pointer_expression "*(uint *)(puVar13 + 0x1c)" * (cast_expression "(uint *)(puVar13 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x1c)" ( (binary_expression "puVar13 + 0x1c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(byte **)(puVar13 + -4) = pbVar12;\n        pcVar8 = "invalid content of \\{\\}";\n        ppbVar15 = (byte **)(puVar13 + -8);\n        *(undefined4 *)(puVar13 + -8) = 5;\ncode_r0x00023a1b:\n        while( true ) {\n          *(char **)((int)ppbVar15 + -4) = pcVar8;\n          puVar16 = (undefined1 *)((int)ppbVar15 + -8);\n          *(undefined4 *)((int)ppbVar15 + -8) = 0;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23;\n          uVar11 = dcgettext();\n          *(undefined4 *)((int)ppbVar15 + -8) = uVar11;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b;\n          FUN_0001be40();\n          pbVar12 = extraout_ECX;\ncode_r0x00023a2b:\n          *(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;\n          puVar17 = puVar16;\ncode_r0x00023a30:\n          puVar13 = puVar17;\n          puVar18 = puVar17;\n          if (*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)) break;\ncode_r0x00023a3a:\n          puVar13 = puVar18;\n          if ((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))\n          break;\n          uVar5 = param_1[0x9b];\n          if ((int)uVar5 < 0) {\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }\n          if ((int)uVar5 < (int)uVar19) break;\n          if ((int)uVar5 < 0x8000) goto code_r0x00023a66;\n          pcVar8 = "regular expression too big";\n          *(uint *)(puVar18 + -4) = uVar19;\n          ppbVar15 = (byte **)(puVar18 + -8);\n          *(undefined4 *)(puVar18 + -8) = 5;\n        }\n        goto code_r0x00023a04;\n      }" { (expression_statement "*(byte **)(puVar13 + -4) = pbVar12;" (assignment_expression "*(byte **)(puVar13 + -4) = pbVar12" (pointer_expression "*(byte **)(puVar13 + -4)" * (cast_expression "(byte **)(puVar13 + -4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -4)" ( (binary_expression "puVar13 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar8 = "invalid content of \\{\\}";" (assignment_expression "pcVar8 = "invalid content of \\{\\}"" identifier = (string_literal ""invalid content of \\{\\}"" " string_content escape_sequence string_content escape_sequence string_content ")) ;) (expression_statement "ppbVar15 = (byte **)(puVar13 + -8);" (assignment_expression "ppbVar15 = (byte **)(puVar13 + -8)" identifier = (cast_expression "(byte **)(puVar13 + -8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -8)" ( (binary_expression "puVar13 + -8" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *)(puVar13 + -8) = 5;" (assignment_expression "*(undefined4 *)(puVar13 + -8) = 5" (pointer_expression "*(undefined4 *)(puVar13 + -8)" * (cast_expression "(undefined4 *)(puVar13 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -8)" ( (binary_expression "puVar13 + -8" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "code_r0x00023a1b:\n        while( true ) {\n          *(char **)((int)ppbVar15 + -4) = pcVar8;\n          puVar16 = (undefined1 *)((int)ppbVar15 + -8);\n          *(undefined4 *)((int)ppbVar15 + -8) = 0;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23;\n          uVar11 = dcgettext();\n          *(undefined4 *)((int)ppbVar15 + -8) = uVar11;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b;\n          FUN_0001be40();\n          pbVar12 = extraout_ECX;\ncode_r0x00023a2b:\n          *(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;\n          puVar17 = puVar16;\ncode_r0x00023a30:\n          puVar13 = puVar17;\n          puVar18 = puVar17;\n          if (*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)) break;\ncode_r0x00023a3a:\n          puVar13 = puVar18;\n          if ((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))\n          break;\n          uVar5 = param_1[0x9b];\n          if ((int)uVar5 < 0) {\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }\n          if ((int)uVar5 < (int)uVar19) break;\n          if ((int)uVar5 < 0x8000) goto code_r0x00023a66;\n          pcVar8 = "regular expression too big";\n          *(uint *)(puVar18 + -4) = uVar19;\n          ppbVar15 = (byte **)(puVar18 + -8);\n          *(undefined4 *)(puVar18 + -8) = 5;\n        }" statement_identifier : (while_statement "while( true ) {\n          *(char **)((int)ppbVar15 + -4) = pcVar8;\n          puVar16 = (undefined1 *)((int)ppbVar15 + -8);\n          *(undefined4 *)((int)ppbVar15 + -8) = 0;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23;\n          uVar11 = dcgettext();\n          *(undefined4 *)((int)ppbVar15 + -8) = uVar11;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b;\n          FUN_0001be40();\n          pbVar12 = extraout_ECX;\ncode_r0x00023a2b:\n          *(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;\n          puVar17 = puVar16;\ncode_r0x00023a30:\n          puVar13 = puVar17;\n          puVar18 = puVar17;\n          if (*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)) break;\ncode_r0x00023a3a:\n          puVar13 = puVar18;\n          if ((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))\n          break;\n          uVar5 = param_1[0x9b];\n          if ((int)uVar5 < 0) {\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }\n          if ((int)uVar5 < (int)uVar19) break;\n          if ((int)uVar5 < 0x8000) goto code_r0x00023a66;\n          pcVar8 = "regular expression too big";\n          *(uint *)(puVar18 + -4) = uVar19;\n          ppbVar15 = (byte **)(puVar18 + -8);\n          *(undefined4 *)(puVar18 + -8) = 5;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          *(char **)((int)ppbVar15 + -4) = pcVar8;\n          puVar16 = (undefined1 *)((int)ppbVar15 + -8);\n          *(undefined4 *)((int)ppbVar15 + -8) = 0;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23;\n          uVar11 = dcgettext();\n          *(undefined4 *)((int)ppbVar15 + -8) = uVar11;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b;\n          FUN_0001be40();\n          pbVar12 = extraout_ECX;\ncode_r0x00023a2b:\n          *(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;\n          puVar17 = puVar16;\ncode_r0x00023a30:\n          puVar13 = puVar17;\n          puVar18 = puVar17;\n          if (*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)) break;\ncode_r0x00023a3a:\n          puVar13 = puVar18;\n          if ((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))\n          break;\n          uVar5 = param_1[0x9b];\n          if ((int)uVar5 < 0) {\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }\n          if ((int)uVar5 < (int)uVar19) break;\n          if ((int)uVar5 < 0x8000) goto code_r0x00023a66;\n          pcVar8 = "regular expression too big";\n          *(uint *)(puVar18 + -4) = uVar19;\n          ppbVar15 = (byte **)(puVar18 + -8);\n          *(undefined4 *)(puVar18 + -8) = 5;\n        }" { (expression_statement "*(char **)((int)ppbVar15 + -4) = pcVar8;" (assignment_expression "*(char **)((int)ppbVar15 + -4) = pcVar8" (pointer_expression "*(char **)((int)ppbVar15 + -4)" * (cast_expression "(char **)((int)ppbVar15 + -4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -4)" ( (binary_expression "(int)ppbVar15 + -4" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "puVar16 = (undefined1 *)((int)ppbVar15 + -8);" (assignment_expression "puVar16 = (undefined1 *)((int)ppbVar15 + -8)" identifier = (cast_expression "(undefined1 *)((int)ppbVar15 + -8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -8)" ( (binary_expression "(int)ppbVar15 + -8" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*(undefined4 *)((int)ppbVar15 + -8) = 0;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -8) = 0" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -8)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -8)" ( (binary_expression "(int)ppbVar15 + -8" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23;" (assignment_expression "*(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23" (pointer_expression "*(undefined **)((int)ppbVar15 + -0xc)" * (cast_expression "(undefined **)((int)ppbVar15 + -0xc)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -0xc)" ( (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&UNK_00023a23" & identifier)) ;) (expression_statement "uVar11 = dcgettext();" (assignment_expression "uVar11 = dcgettext()" identifier = (call_expression "dcgettext()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)((int)ppbVar15 + -8) = uVar11;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -8) = uVar11" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -8)" * (cast_expression "(undefined4 *)((int)ppbVar15 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppbVar15 + -8)" ( (binary_expression "(int)ppbVar15 + -8" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b;" (assignment_expression "*(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b" (pointer_expression "*(undefined **)((int)ppbVar15 + -0xc)" * (cast_expression "(undefined **)((int)ppbVar15 + -0xc)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppbVar15 + -0xc)" ( (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&UNK_00023a2b" & identifier)) ;) (expression_statement "FUN_0001be40();" (call_expression "FUN_0001be40()" identifier (argument_list "()" ( ))) ;) (expression_statement "pbVar12 = extraout_ECX;" (assignment_expression "pbVar12 = extraout_ECX" identifier = identifier) ;) (labeled_statement "code_r0x00023a2b:\n          *(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;" statement_identifier : (expression_statement "*(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;" (assignment_expression "*(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1" (pointer_expression "*(int *)(puVar16 + 0x10)" * (cast_expression "(int *)(puVar16 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x10)" ( (binary_expression "puVar16 + 0x10" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar16 + 0x10) + 1" (pointer_expression "*(int *)(puVar16 + 0x10)" * (cast_expression "(int *)(puVar16 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x10)" ( (binary_expression "puVar16 + 0x10" identifier + number_literal) )))) + number_literal)) ;)) (expression_statement "puVar17 = puVar16;" (assignment_expression "puVar17 = puVar16" identifier = identifier) ;) (labeled_statement "code_r0x00023a30:\n          puVar13 = puVar17;" statement_identifier : (expression_statement "puVar13 = puVar17;" (assignment_expression "puVar13 = puVar17" identifier = identifier) ;)) (expression_statement "puVar18 = puVar17;" (assignment_expression "puVar18 = puVar17" identifier = identifier) ;) (if_statement "if (*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)) break;" if (parenthesized_expression "(*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10))" ( (binary_expression "*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)" (pointer_expression "*(int *)(puVar17 + 0x14)" * (cast_expression "(int *)(puVar17 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x14)" ( (binary_expression "puVar17 + 0x14" identifier + number_literal) )))) == (pointer_expression "*(int *)(puVar17 + 0x10)" * (cast_expression "(int *)(puVar17 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x10)" ( (binary_expression "puVar17 + 0x10" identifier + number_literal) ))))) )) (break_statement "break;" break ;)) (labeled_statement "code_r0x00023a3a:\n          puVar13 = puVar18;" statement_identifier : (expression_statement "puVar13 = puVar18;" (assignment_expression "puVar13 = puVar18" identifier = identifier) ;)) (if_statement "if ((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))\n          break;" if (parenthesized_expression "((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))" ( (binary_expression "(**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0)" (parenthesized_expression "(**(char **)(puVar18 + 0x10) != '}')" ( (binary_expression "**(char **)(puVar18 + 0x10) != '}'" (pointer_expression "**(char **)(puVar18 + 0x10)" * (pointer_expression "*(char **)(puVar18 + 0x10)" * (cast_expression "(char **)(puVar18 + 0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + 0x10)" ( (binary_expression "puVar18 + 0x10" identifier + number_literal) ))))) != (char_literal "'}'" ' character ')) )) || (parenthesized_expression "(uVar19 = param_1[0x9a], (int)uVar19 < 0)" ( (comma_expression "uVar19 = param_1[0x9a], (int)uVar19 < 0" (assignment_expression "uVar19 = param_1[0x9a]" identifier = (subscript_expression "param_1[0x9a]" identifier [ number_literal ])) , (binary_expression "(int)uVar19 < 0" (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ))) )) (break_statement "break;" break ;)) (expression_statement "uVar5 = param_1[0x9b];" (assignment_expression "uVar5 = param_1[0x9b]" identifier = (subscript_expression "param_1[0x9b]" identifier [ number_literal ])) ;) (if_statement "if ((int)uVar5 < 0) {\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }" if (parenthesized_expression "((int)uVar5 < 0)" ( (binary_expression "(int)uVar5 < 0" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }" { (labeled_statement "code_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);" statement_identifier : (expression_statement "iVar10 = *(int *)(puVar18 + 0x10);" (assignment_expression "iVar10 = *(int *)(puVar18 + 0x10)" identifier = (pointer_expression "*(int *)(puVar18 + 0x10)" * (cast_expression "(int *)(puVar18 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x10)" ( (binary_expression "puVar18 + 0x10" identifier + number_literal) ))))) ;)) (expression_statement "iVar1 = *(int *)(puVar18 + 0x14);" (assignment_expression "iVar1 = *(int *)(puVar18 + 0x14)" identifier = (pointer_expression "*(int *)(puVar18 + 0x14)" * (cast_expression "(int *)(puVar18 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + 0x14)" ( (binary_expression "puVar18 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(byte *)(param_1 + 0xa3) = 0;" (assignment_expression "*(byte *)(param_1 + 0xa3) = 0" (pointer_expression "*(byte *)(param_1 + 0xa3)" * (cast_expression "(byte *)(param_1 + 0xa3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa3)" ( (binary_expression "param_1 + 0xa3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar19 = 0x104;" (assignment_expression "uVar19 = 0x104" identifier = number_literal) ;) (expression_statement "param_1[0x98] = 0x104;" (assignment_expression "param_1[0x98] = 0x104" (subscript_expression "param_1[0x98]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x96] = iVar10 + 1U;" (assignment_expression "param_1[0x96] = iVar10 + 1U" (subscript_expression "param_1[0x96]" identifier [ number_literal ]) = (binary_expression "iVar10 + 1U" identifier + number_literal)) ;) (expression_statement "param_1[0x97] = iVar1 - (iVar10 + 1U);" (assignment_expression "param_1[0x97] = iVar1 - (iVar10 + 1U)" (subscript_expression "param_1[0x97]" identifier [ number_literal ]) = (binary_expression "iVar1 - (iVar10 + 1U)" identifier - (parenthesized_expression "(iVar10 + 1U)" ( (binary_expression "iVar10 + 1U" identifier + number_literal) )))) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;) })) (if_statement "if ((int)uVar5 < (int)uVar19) break;" if (parenthesized_expression "((int)uVar5 < (int)uVar19)" ( (binary_expression "(int)uVar5 < (int)uVar19" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) (break_statement "break;" break ;)) (if_statement "if ((int)uVar5 < 0x8000) goto code_r0x00023a66;" if (parenthesized_expression "((int)uVar5 < 0x8000)" ( (binary_expression "(int)uVar5 < 0x8000" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto code_r0x00023a66;" goto statement_identifier ;)) (expression_statement "pcVar8 = "regular expression too big";" (assignment_expression "pcVar8 = "regular expression too big"" identifier = (string_literal ""regular expression too big"" " string_content ")) ;) (expression_statement "*(uint *)(puVar18 + -4) = uVar19;" (assignment_expression "*(uint *)(puVar18 + -4) = uVar19" (pointer_expression "*(uint *)(puVar18 + -4)" * (cast_expression "(uint *)(puVar18 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -4)" ( (binary_expression "puVar18 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "ppbVar15 = (byte **)(puVar18 + -8);" (assignment_expression "ppbVar15 = (byte **)(puVar18 + -8)" identifier = (cast_expression "(byte **)(puVar18 + -8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) ;) (expression_statement "*(undefined4 *)(puVar18 + -8) = 5;" (assignment_expression "*(undefined4 *)(puVar18 + -8) = 5" (pointer_expression "*(undefined4 *)(puVar18 + -8)" * (cast_expression "(undefined4 *)(puVar18 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar18 + -8)" ( (binary_expression "puVar18 + -8" identifier + number_literal) )))) = number_literal) ;) }))) (goto_statement "goto code_r0x00023a04;" goto statement_identifier ;) }))) })) (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;) (expression_statement "uVar19 = 0x7b;" (assignment_expression "uVar19 = 0x7b" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x72:\n    bVar21 = 0;\ncode_r0x000233fa:\n    if (((*param_1 & 0x400) != 0) || ((((byte)(*param_1 >> 0xf) ^ 1) & 1) != bVar21)) {\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x7c;\n      puVar13 = auStack_6c;\n      break;\n    }\ncode_r0x000238f1:\n    *(byte *)(param_1 + 0xa3) = 1;\n    uVar19 = 0x106;\n    param_1[0x98] = 0x106;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;" case number_literal : (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" identifier = number_literal) ;) (labeled_statement "code_r0x000233fa:\n    if (((*param_1 & 0x400) != 0) || ((((byte)(*param_1 >> 0xf) ^ 1) & 1) != bVar21)) {\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x7c;\n      puVar13 = auStack_6c;\n      break;\n    }" statement_identifier : (if_statement "if (((*param_1 & 0x400) != 0) || ((((byte)(*param_1 >> 0xf) ^ 1) & 1) != bVar21)) {\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x7c;\n      puVar13 = auStack_6c;\n      break;\n    }" if (parenthesized_expression "(((*param_1 & 0x400) != 0) || ((((byte)(*param_1 >> 0xf) ^ 1) & 1) != bVar21))" ( (binary_expression "((*param_1 & 0x400) != 0) || ((((byte)(*param_1 >> 0xf) ^ 1) & 1) != bVar21)" (parenthesized_expression "((*param_1 & 0x400) != 0)" ( (binary_expression "(*param_1 & 0x400) != 0" (parenthesized_expression "(*param_1 & 0x400)" ( (binary_expression "*param_1 & 0x400" (pointer_expression "*param_1" * identifier) & number_literal) )) != number_literal) )) || (parenthesized_expression "((((byte)(*param_1 >> 0xf) ^ 1) & 1) != bVar21)" ( (binary_expression "(((byte)(*param_1 >> 0xf) ^ 1) & 1) != bVar21" (parenthesized_expression "(((byte)(*param_1 >> 0xf) ^ 1) & 1)" ( (binary_expression "((byte)(*param_1 >> 0xf) ^ 1) & 1" (parenthesized_expression "((byte)(*param_1 >> 0xf) ^ 1)" ( (binary_expression "(byte)(*param_1 >> 0xf) ^ 1" (call_expression "(byte)(*param_1 >> 0xf)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*param_1 >> 0xf)" ( (binary_expression "*param_1 >> 0xf" (pointer_expression "*param_1" * identifier) >> number_literal) ))) ^ number_literal) )) & number_literal) )) != identifier) ))) )) (compound_statement "{\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x7c;\n      puVar13 = auStack_6c;\n      break;\n    }" { (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" identifier = (cast_expression "(byte)param_1[0xcc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xcc]" identifier [ number_literal ]))) ;) (expression_statement "uVar19 = 0x7c;" (assignment_expression "uVar19 = 0x7c" identifier = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (break_statement "break;" break ;) }))) (labeled_statement "code_r0x000238f1:\n    *(byte *)(param_1 + 0xa3) = 1;" statement_identifier : (expression_statement "*(byte *)(param_1 + 0xa3) = 1;" (assignment_expression "*(byte *)(param_1 + 0xa3) = 1" (pointer_expression "*(byte *)(param_1 + 0xa3)" * (cast_expression "(byte *)(param_1 + 0xa3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa3)" ( (binary_expression "param_1 + 0xa3" identifier + number_literal) )))) = number_literal) ;)) (expression_statement "uVar19 = 0x106;" (assignment_expression "uVar19 = 0x106" identifier = number_literal) ;) (expression_statement "param_1[0x98] = 0x106;" (assignment_expression "param_1[0x98] = 0x106" (subscript_expression "param_1[0x98]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" identifier = identifier) ;) (goto_statement "goto LAB_0002318d;" goto statement_identifier ;)) })) (labeled_statement "LAB_00023160:\n  puVar14 = puVar13;" statement_identifier : (expression_statement "puVar14 = puVar13;" (assignment_expression "puVar14 = puVar13" identifier = identifier) ;)) (expression_statement "*(byte *)(param_1 + 0xa3) = 0;" (assignment_expression "*(byte *)(param_1 + 0xa3) = 0" (pointer_expression "*(byte *)(param_1 + 0xa3)" * (cast_expression "(byte *)(param_1 + 0xa3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa3)" ( (binary_expression "param_1 + 0xa3" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (bVar21 == 0) {\n    if (*(byte *)((int)param_1 + 5) != 0) {\n      *(undefined4 *)(puVar14 + -4) = 0x2317a;\n      ppuVar6 = __ctype_b_loc();\n      if ((*(byte *)((int)*ppuVar6 + uVar19 * 2 + 1) & 4) != 0) {\n        uVar19 = 0;\n        do {\n          *(undefined4 *)(puVar14 + uVar19 + 0x2c) = 0;\n          uVar19 = uVar19 + 4;\n        } while (uVar19 < 0x20);\n        *(undefined4 *)(puVar14 + -4) = 0x237bd;\n        FUN_0001da50();\ncode_r0x000237bd:\n        *(undefined4 *)(puVar14 + -4) = 0x237c6;\n        iVar10 = FUN_0001e6a0();\n        uVar19 = iVar10 + 0x114;\n      }\n    }\n    param_1[0x98] = uVar19;\n    puVar13 = puVar14;\n  }\n  else {\n    param_1[0x98] = 0x109;\n    uVar19 = 0x109;\n    puVar13 = puVar14;\n  }" if (parenthesized_expression "(bVar21 == 0)" ( (binary_expression "bVar21 == 0" identifier == number_literal) )) (compound_statement "{\n    if (*(byte *)((int)param_1 + 5) != 0) {\n      *(undefined4 *)(puVar14 + -4) = 0x2317a;\n      ppuVar6 = __ctype_b_loc();\n      if ((*(byte *)((int)*ppuVar6 + uVar19 * 2 + 1) & 4) != 0) {\n        uVar19 = 0;\n        do {\n          *(undefined4 *)(puVar14 + uVar19 + 0x2c) = 0;\n          uVar19 = uVar19 + 4;\n        } while (uVar19 < 0x20);\n        *(undefined4 *)(puVar14 + -4) = 0x237bd;\n        FUN_0001da50();\ncode_r0x000237bd:\n        *(undefined4 *)(puVar14 + -4) = 0x237c6;\n        iVar10 = FUN_0001e6a0();\n        uVar19 = iVar10 + 0x114;\n      }\n    }\n    param_1[0x98] = uVar19;\n    puVar13 = puVar14;\n  }" { (if_statement "if (*(byte *)((int)param_1 + 5) != 0) {\n      *(undefined4 *)(puVar14 + -4) = 0x2317a;\n      ppuVar6 = __ctype_b_loc();\n      if ((*(byte *)((int)*ppuVar6 + uVar19 * 2 + 1) & 4) != 0) {\n        uVar19 = 0;\n        do {\n          *(undefined4 *)(puVar14 + uVar19 + 0x2c) = 0;\n          uVar19 = uVar19 + 4;\n        } while (uVar19 < 0x20);\n        *(undefined4 *)(puVar14 + -4) = 0x237bd;\n        FUN_0001da50();\ncode_r0x000237bd:\n        *(undefined4 *)(puVar14 + -4) = 0x237c6;\n        iVar10 = FUN_0001e6a0();\n        uVar19 = iVar10 + 0x114;\n      }\n    }" if (parenthesized_expression "(*(byte *)((int)param_1 + 5) != 0)" ( (binary_expression "*(byte *)((int)param_1 + 5) != 0" (pointer_expression "*(byte *)((int)param_1 + 5)" * (cast_expression "(byte *)((int)param_1 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 5)" ( (binary_expression "(int)param_1 + 5" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n      *(undefined4 *)(puVar14 + -4) = 0x2317a;\n      ppuVar6 = __ctype_b_loc();\n      if ((*(byte *)((int)*ppuVar6 + uVar19 * 2 + 1) & 4) != 0) {\n        uVar19 = 0;\n        do {\n          *(undefined4 *)(puVar14 + uVar19 + 0x2c) = 0;\n          uVar19 = uVar19 + 4;\n        } while (uVar19 < 0x20);\n        *(undefined4 *)(puVar14 + -4) = 0x237bd;\n        FUN_0001da50();\ncode_r0x000237bd:\n        *(undefined4 *)(puVar14 + -4) = 0x237c6;\n        iVar10 = FUN_0001e6a0();\n        uVar19 = iVar10 + 0x114;\n      }\n    }" { (expression_statement "*(undefined4 *)(puVar14 + -4) = 0x2317a;" (assignment_expression "*(undefined4 *)(puVar14 + -4) = 0x2317a" (pointer_expression "*(undefined4 *)(puVar14 + -4)" * (cast_expression "(undefined4 *)(puVar14 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -4)" ( (binary_expression "puVar14 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "ppuVar6 = __ctype_b_loc();" (assignment_expression "ppuVar6 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((*(byte *)((int)*ppuVar6 + uVar19 * 2 + 1) & 4) != 0) {\n        uVar19 = 0;\n        do {\n          *(undefined4 *)(puVar14 + uVar19 + 0x2c) = 0;\n          uVar19 = uVar19 + 4;\n        } while (uVar19 < 0x20);\n        *(undefined4 *)(puVar14 + -4) = 0x237bd;\n        FUN_0001da50();\ncode_r0x000237bd:\n        *(undefined4 *)(puVar14 + -4) = 0x237c6;\n        iVar10 = FUN_0001e6a0();\n        uVar19 = iVar10 + 0x114;\n      }" if (parenthesized_expression "((*(byte *)((int)*ppuVar6 + uVar19 * 2 + 1) & 4) != 0)" ( (binary_expression "(*(byte *)((int)*ppuVar6 + uVar19 * 2 + 1) & 4) != 0" (parenthesized_expression "(*(byte *)((int)*ppuVar6 + uVar19 * 2 + 1) & 4)" ( (binary_expression "*(byte *)((int)*ppuVar6 + uVar19 * 2 + 1) & 4" (pointer_expression "*(byte *)((int)*ppuVar6 + uVar19 * 2 + 1)" * (cast_expression "(byte *)((int)*ppuVar6 + uVar19 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*ppuVar6 + uVar19 * 2 + 1)" ( (binary_expression "(int)*ppuVar6 + uVar19 * 2 + 1" (binary_expression "(int)*ppuVar6 + uVar19 * 2" (cast_expression "(int)*ppuVar6" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*ppuVar6" * identifier)) + (binary_expression "uVar19 * 2" identifier * number_literal)) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        uVar19 = 0;\n        do {\n          *(undefined4 *)(puVar14 + uVar19 + 0x2c) = 0;\n          uVar19 = uVar19 + 4;\n        } while (uVar19 < 0x20);\n        *(undefined4 *)(puVar14 + -4) = 0x237bd;\n        FUN_0001da50();\ncode_r0x000237bd:\n        *(undefined4 *)(puVar14 + -4) = 0x237c6;\n        iVar10 = FUN_0001e6a0();\n        uVar19 = iVar10 + 0x114;\n      }" { (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (do_statement "do {\n          *(undefined4 *)(puVar14 + uVar19 + 0x2c) = 0;\n          uVar19 = uVar19 + 4;\n        } while (uVar19 < 0x20);" do (compound_statement "{\n          *(undefined4 *)(puVar14 + uVar19 + 0x2c) = 0;\n          uVar19 = uVar19 + 4;\n        }" { (expression_statement "*(undefined4 *)(puVar14 + uVar19 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)(puVar14 + uVar19 + 0x2c) = 0" (pointer_expression "*(undefined4 *)(puVar14 + uVar19 + 0x2c)" * (cast_expression "(undefined4 *)(puVar14 + uVar19 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + uVar19 + 0x2c)" ( (binary_expression "puVar14 + uVar19 + 0x2c" (binary_expression "puVar14 + uVar19" identifier + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar19 = uVar19 + 4;" (assignment_expression "uVar19 = uVar19 + 4" identifier = (binary_expression "uVar19 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar19 < 0x20)" ( (binary_expression "uVar19 < 0x20" identifier < number_literal) )) ;) (expression_statement "*(undefined4 *)(puVar14 + -4) = 0x237bd;" (assignment_expression "*(undefined4 *)(puVar14 + -4) = 0x237bd" (pointer_expression "*(undefined4 *)(puVar14 + -4)" * (cast_expression "(undefined4 *)(puVar14 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -4)" ( (binary_expression "puVar14 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0001da50();" (call_expression "FUN_0001da50()" identifier (argument_list "()" ( ))) ;) (labeled_statement "code_r0x000237bd:\n        *(undefined4 *)(puVar14 + -4) = 0x237c6;" statement_identifier : (expression_statement "*(undefined4 *)(puVar14 + -4) = 0x237c6;" (assignment_expression "*(undefined4 *)(puVar14 + -4) = 0x237c6" (pointer_expression "*(undefined4 *)(puVar14 + -4)" * (cast_expression "(undefined4 *)(puVar14 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + -4)" ( (binary_expression "puVar14 + -4" identifier + number_literal) )))) = number_literal) ;)) (expression_statement "iVar10 = FUN_0001e6a0();" (assignment_expression "iVar10 = FUN_0001e6a0()" identifier = (call_expression "FUN_0001e6a0()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar19 = iVar10 + 0x114;" (assignment_expression "uVar19 = iVar10 + 0x114" identifier = (binary_expression "iVar10 + 0x114" identifier + number_literal)) ;) })) })) (expression_statement "param_1[0x98] = uVar19;" (assignment_expression "param_1[0x98] = uVar19" (subscript_expression "param_1[0x98]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13 = puVar14;" (assignment_expression "puVar13 = puVar14" identifier = identifier) ;) }) (else_clause "else {\n    param_1[0x98] = 0x109;\n    uVar19 = 0x109;\n    puVar13 = puVar14;\n  }" else (compound_statement "{\n    param_1[0x98] = 0x109;\n    uVar19 = 0x109;\n    puVar13 = puVar14;\n  }" { (expression_statement "param_1[0x98] = 0x109;" (assignment_expression "param_1[0x98] = 0x109" (subscript_expression "param_1[0x98]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar19 = 0x109;" (assignment_expression "uVar19 = 0x109" identifier = number_literal) ;) (expression_statement "puVar13 = puVar14;" (assignment_expression "puVar13 = puVar14" identifier = identifier) ;) }))) (labeled_statement "LAB_0002318d:\n  if (*(int *)(puVar13 + 0x4c) == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar19;\n  }" statement_identifier : (if_statement "if (*(int *)(puVar13 + 0x4c) == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar19;\n  }" if (parenthesized_expression "(*(int *)(puVar13 + 0x4c) == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "*(int *)(puVar13 + 0x4c) == *(int *)(in_GS_OFFSET + 0x14)" (pointer_expression "*(int *)(puVar13 + 0x4c)" * (cast_expression "(int *)(puVar13 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x4c)" ( (binary_expression "puVar13 + 0x4c" identifier + number_literal) )))) == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return uVar19;\n  }" { (return_statement "return uVar19;" return identifier ;) }))) (expression_statement "*(undefined **)(puVar13 + -4) = &UNK_00023c01;" (assignment_expression "*(undefined **)(puVar13 + -4) = &UNK_00023c01" (pointer_expression "*(undefined **)(puVar13 + -4)" * (cast_expression "(undefined **)(puVar13 + -4)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -4)" ( (binary_expression "puVar13 + -4" identifier + number_literal) )))) = (pointer_expression "&UNK_00023c01" & identifier)) ;) (expression_statement "FUN_0002c430();" (call_expression "FUN_0002c430()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression (pointer_expression * IDENT) + LIT) ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) )))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT - LIT) & LIT)) ;) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) != LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) == LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (break_statement break ;) })) (goto_statement goto statement_identifier ;)) (case_statement default : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) || (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT >> LIT) ^ LIT) )) & LIT) )))) , (binary_expression (binary_expression IDENT < IDENT) && (parenthesized_expression ( (binary_expression (subscript_expression (subscript_expression IDENT [ LIT ]) [ (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) & (cast_expression ( (type_descriptor TYPE) ) IDENT)) ]) == LIT) )))) )) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT >> LIT) ^ LIT) )) & LIT) )))) , (binary_expression (binary_expression IDENT < IDENT) && (parenthesized_expression ( (binary_expression (subscript_expression (subscript_expression IDENT [ LIT ]) [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )))) ]) == LIT) )))) )) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (break_statement break ;)) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * IDENT) >> LIT) ))) ^ LIT) )) & LIT) )) == IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * IDENT) >> LIT) ))) ^ LIT) )) & LIT) )) == IDENT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) == LIT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) - LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (break_statement break ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) != LIT) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) & LIT) )) == IDENT) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == LIT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = BOOL) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;)) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) & LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT >> LIT) ]) = (binary_expression (subscript_expression IDENT [ (binary_expression IDENT >> LIT) ]) & (unary_expression ~ (parenthesized_expression ( (binary_expression LIT << (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 != LIT) )) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (break_statement break ;)) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (break_statement break ;)) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) & LIT) )) == IDENT) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == LIT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (break_statement break ;)) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = BOOL) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (unary_expression ! IDENT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) != LIT)) ))) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression & IDENT) + (parenthesized_expression ( (binary_expression IDENT == LIT) )))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (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 ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < LIT) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression IDENT * LIT)) + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT >> LIT) ]) = (binary_expression (subscript_expression IDENT [ (binary_expression IDENT >> LIT) ]) | (binary_expression LIT << (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 != LIT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (unary_expression ~ (subscript_expression IDENT [ LIT ]))) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (unary_expression ~ (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (unary_expression ~ (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (unary_expression ~ (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (unary_expression ~ (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (unary_expression ~ (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (unary_expression ~ (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (unary_expression ~ (subscript_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) )))) = LIT) ;)) (goto_statement goto statement_identifier ;)) (case_statement case 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence string_content ")) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression IDENT * LIT)) ))))) )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (subscript_expression IDENT [ LIT ]) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (for_statement for ( (assignment_expression IDENT = LIT) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (switch_statement switch (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) )) (compound_statement { (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = BOOL) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (goto_statement goto statement_identifier ;) }))) (case_statement default : (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (break_statement break ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = BOOL) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) != LIT) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression & IDENT) + (parenthesized_expression ( (binary_expression 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < LIT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT >> LIT) ]) = (binary_expression (subscript_expression IDENT [ (binary_expression IDENT >> LIT) ]) | (binary_expression LIT << (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 != LIT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (break_statement break ;)) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;)) })) (break_statement break ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) != LIT) )) || (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - LIT) < LIT) ))) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (break_statement break ;)) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (break_statement break ;)) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) >> LIT) ))) ^ LIT) )) & LIT) )) == IDENT)) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) != LIT) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == LIT)) ))) )) ))) )) (compound_statement { (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 ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (subscript_expression IDENT [ LIT ])) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))) < LIT) )) (compound_statement { (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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT))) , (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ))))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (subscript_expression IDENT [ LIT ])) )) (compound_statement { (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) , (binary_expression LIT < IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) while (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))) < LIT) )) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;)) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;))) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (subscript_expression IDENT [ LIT ])) == LIT) )) (goto_statement goto statement_identifier ;)) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence string_content escape_sequence string_content ")) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (labeled_statement statement_identifier : (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = 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 IDENT + LIT) )))) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (break_statement break ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) != (char_literal ' character ')) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT)) ))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT - (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }))) (goto_statement goto statement_identifier ;) }))) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) != LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * IDENT) >> LIT) ))) ^ LIT) )) & LIT) )) != IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (break_statement break ;) }))) (labeled_statement 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 IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;)) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = 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 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) + (binary_expression IDENT * LIT)) + LIT) )))) & LIT) )) != LIT) )) (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 (binary_expression IDENT + IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < LIT) )) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (labeled_statement 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 IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "uint __regparm3 FUN_000230c0(uint *param_1)\n\n{\n  int iVar1;\n  ushort *puVar2;\n  byte *pbVar3;\n  bool bVar4;\n  uint uVar5;\n  ushort **ppuVar6;\n  byte *pbVar7;\n  char *pcVar8;\n  size_t sVar9;\n  int iVar10;\n  undefined4 uVar11;\n  byte *pbVar12;\n  byte *extraout_ECX;\n  undefined1 *puVar13;\n  undefined1 *puVar14;\n  byte **ppbVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  undefined1 *puVar18;\n  uint uVar19;\n  uint *puVar20;\n  int in_GS_OFFSET;\n  byte bVar21;\n  undefined4 uStackY_80;\n  byte *pbStack_74;\n  uint *puStack_70;\n  undefined1 auStack_6c [12];\n  byte *local_60;\n  byte *local_5c [2];\n  byte bStack_51;\n  uint auStack_50 [4];\n  uint local_40 [11];\n  undefined4 uStack_14;\n  \n  bVar21 = 0;\n  uStack_14 = 0x230cb;\n  pbVar12 = (byte *)param_1[0x97];\n  local_40[8] = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  if (pbVar12 == (byte *)0x0) {\n    param_1[0x98] = 0xffffffff;\n    uVar19 = 0xffffffff;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;\n  }\n  pbVar7 = (byte *)param_1[0x96];\n  uVar19 = param_1[*pbVar7 + 0x10d];\n  if (uVar19 == 0xffffffff) {\n    puStack_70 = param_1 + 0xb2;\n    pbStack_74 = pbVar12;\n    uVar5 = FUN_0002b6f0(auStack_50 + 3,pbVar7);\n    if (0xfffffffc < uVar5 - 1) {\n      param_1[0xb2] = 0;\n      pbVar7 = (byte *)param_1[0x96];\n      param_1[0xb3] = 0;\n      pbVar12 = (byte *)param_1[0x97];\n      goto LAB_00023107;\n    }\n    pbVar12 = (byte *)param_1[0x97];\n    param_1[0x9d] = uVar5;\n    param_1[0x9c] = auStack_50[3];\n    pbVar7 = (byte *)param_1[0x96];\n    if (uVar5 == 1) goto LAB_00023117;\ncode_r0x00023235:\n    uVar19 = 0xffffffff;\n    param_1[0x96] = (uint)(pbVar7 + uVar5);\n    bVar21 = (byte)param_1[0xcc];\n    param_1[0x97] = (int)pbVar12 - uVar5;\n    puVar13 = auStack_6c;\n    goto LAB_00023160;\n  }\nLAB_00023107:\n  param_1[0x9c] = uVar19;\n  param_1[0x9d] = 1;\nLAB_00023117:\n  puVar14 = auStack_6c;\n  puVar18 = auStack_6c;\n  puVar16 = auStack_6c;\n  puVar17 = auStack_6c;\n  puVar13 = auStack_6c;\n  uVar19 = (uint)*pbVar7;\n  local_5c[0] = pbVar7 + 1;\n  param_1[0x96] = (uint)local_5c[0];\n  local_60 = pbVar12 + -1;\n  param_1[0x97] = (uint)local_60;\n  if (0x72 < (byte)(uVar19 - 10)) goto LAB_00023150;\n  uVar5 = uVar19 - 10 & 0xff;\n  switch(uVar5) {\n  case 0:\n    if (((*param_1 & 0x400) != 0) || ((*param_1 & 0x800) == 0)) {\ncode_r0x0002359b:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 10;\n      puVar13 = auStack_6c;\n      break;\n    }\n    goto code_r0x000238f1;\n  default:\n    goto LAB_00023150;\n  case 0x1a:\n    uVar19 = *param_1;\n    if ((((((uVar19 & 8) != 0) || (local_60 == (byte *)0x0)) ||\n         ((pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)))) ||\n        ((pbVar12 = (byte *)((uVar19 >> 0xf ^ 1) & 1), pbVar12 < local_60 &&\n         (local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c)))) ||\n       (((uVar19 & 0x800) != 0 && (pbVar7[1] == 10)))) {\ncode_r0x00023868:\n      param_1[0x98] = 0x10d;\n      uVar19 = 0x10d;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x00023673:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x24;\n    puVar13 = auStack_6c;\n    break;\n  case 0x1d:\ncode_r0x00023690:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x27;\n    puVar13 = auStack_6c;\n    break;\n  case 0x1e:\n    bVar21 = 0;\ncode_r0x00023262:\n    if ((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) {\n      param_1[0x99] = param_1[0x99] + 1;\n      uVar19 = 0x107;\n      *(byte *)(param_1 + 0xa3) = 1;\n      param_1[0x98] = 0x107;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x28;\n    puVar13 = auStack_6c;\n    break;\n  case 0x1f:\n    bVar21 = 0;\ncode_r0x0002351a:\n    if (((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) &&\n       ((param_1[0x99] != 0 || ((*param_1 & 0x20000) == 0)))) {\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x108;\n      param_1[0x99] = param_1[0x99] - 1;\n      param_1[0x98] = 0x108;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x29;\n    puVar13 = auStack_6c;\n    break;\n  case 0x20:\n    if (((*param_1 & 0x10) != 0) || ((byte)param_1[0xa3] == 0)) {\n      param_1[0x98] = 0x102;\n      uVar19 = 0x102;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x00023894:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x2a;\n    puVar13 = auStack_6c;\n    break;\n  case 0x21:\n    bVar21 = 0;\ncode_r0x000234d2:\n    uVar19 = *param_1;\n    if ((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))) {\n      param_1[0x98] = 0x103;\n      uVar19 = 0x103;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x2b;\n    puVar13 = auStack_6c;\n    break;\n  case 0x24:\n    bVar4 = false;\ncode_r0x0002336a:\n    bVar21 = (byte)param_1[0xcc];\n    if (!bVar4) {\n      uVar5 = param_1[0x95];\n      if (uVar5 == 0xffffffff) {\n        local_40[0] = 0xffffffff;\n        local_40[1] = 0xffffffff;\n        local_40[2] = 0xffffffff;\n        local_40[3] = 0xffffffff;\n        local_40[4] = 0xffffffff;\n        local_40[5] = 0xffffffff;\n        local_40[6] = 0xffffffff;\n        local_40[7] = 0xffffffff;\n        if ((*param_1 & 0x40) == 0) {\n          local_40[0] = 0xfffffbff;\n        }\n        if ((*param_1 & 0x80) != 0) {\n          local_40[0] = local_40[0] & 0xfffffffe;\n        }\n        if (bVar21 != 0) {\n          uVar19 = 0;\n          do {\n            if (param_1[uVar19 + 0x10d] == 0xffffffff) {\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }\n            uVar19 = uVar19 + 1;\n          } while (uVar19 != 0x100);\n        }\n        puStack_70 = (uint *)&UNK_000239cf;\n        uVar5 = FUN_0001e6a0();\n        bVar21 = (byte)param_1[0xcc];\n        param_1[0x95] = uVar5;\n      }\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x10a;\n      if (bVar21 == 0) {\n        uVar19 = uVar5 + 0x114;\n      }\n      param_1[0x98] = uVar19;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    uVar19 = 0x2e;\n    puVar13 = auStack_6c;\n    break;\n  case 0x32:\ncode_r0x000236f8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3c;\n    puVar13 = auStack_6c;\n    break;\n  case 0x34:\ncode_r0x000236e0:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3e;\n    puVar13 = auStack_6c;\n    break;\n  case 0x35:\n    bVar21 = 0;\ncode_r0x000233b2:\n    uVar19 = *param_1;\n    if ((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))) {\n      param_1[0x98] = 0x101;\n      uVar19 = 0x101;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3f;\n    puVar13 = auStack_6c;\n    break;\n  case 0x38:\ncode_r0x00023710:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x42;\n    puVar13 = auStack_6c;\n    break;\n  case 0x49:\n  case 0x69:\n    bVar4 = false;\ncode_r0x0002342a:\n    bVar21 = (byte)param_1[0xcc];\n    puVar13 = auStack_6c;\n    if ((!bVar4) || (puVar13 = auStack_6c, (*param_1 & 0x80000) != 0)) break;\n    if (bVar21 != 0) {\n      pcVar8 = &UNK_0002f468 + (uVar19 == 0x73);\ncode_r0x0002345c:\n      param_1[0x96] = (uint)pcVar8;\n      sVar9 = strlen(pcVar8);\n      param_1[0x97] = sVar9;\n      puStack_70 = (uint *)&UNK_0002347b;\n      uVar19 = FUN_00021f80();\n      *(byte *)(param_1 + 0xa3) = 0;\n      param_1[0x98] = uVar19;\n      param_1[0x96] = (uint)local_5c[0];\n      param_1[0x97] = (uint)local_60;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    uVar5 = 0;\n    do {\n      *(undefined4 *)((int)local_40 + uVar5) = 0;\n      uVar5 = uVar5 + 4;\n    } while (uVar5 < 0x20);\n    puStack_70 = (uint *)&UNK_00023ab3;\n    ppuVar6 = __ctype_b_loc();\n    uVar5 = 0;\n    puVar2 = *ppuVar6;\n    do {\n      if ((*(byte *)((int)puVar2 + uVar5 * 2 + 1) & 0x20) != 0) {\n        local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n      }\n      uVar5 = uVar5 + 1;\n    } while (uVar5 != 0x100);\n    if (uVar19 == 0x53) {\ncode_r0x00023b34:\n      local_40[0] = ~local_40[0];\n      local_40[1] = ~local_40[1];\n      local_40[2] = ~local_40[2];\n      local_40[3] = ~local_40[3];\n      local_40[4] = ~local_40[4];\n      local_40[5] = ~local_40[5];\n      local_40[6] = ~local_40[6];\n      local_40[7] = ~local_40[7];\n    }\ncode_r0x00023ae7:\n    *(byte *)(param_1 + 0xa3) = 0;\n    goto code_r0x000237bd;\n  case 0x51:\n    *(byte *)(param_1 + 0xa3) = 0;\n    puStack_70 = (uint *)&UNK_0002357e;\n    uVar19 = FUN_00021f80();\n    param_1[0x98] = uVar19;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;\n  case 0x52:\n    if (local_60 == (byte *)0x0) {\n      pcVar8 = "unfinished \\ escape";\n      ppbVar15 = &pbStack_74;\n      pbStack_74 = (byte *)0x5;\n      puStack_70 = (uint *)((int)&__DT_PLTGOT + *(int *)(&DAT_0002ef08 + uVar5 * 4));\n      goto code_r0x00023a1b;\n    }\n    pbVar12 = (byte *)param_1[pbVar7[1] + 0x10d];\n    if (pbVar12 == (byte *)0xffffffff) {\n      pbStack_74 = local_60;\n      puStack_70 = param_1 + 0xb2;\n      local_5c[1] = pbVar12;\n      uVar5 = FUN_0002b6f0(auStack_50 + 3,local_5c[0]);\n      if (0xfffffffc < uVar5 - 1) {\n        puVar20 = param_1 + 0xb2;\n        for (iVar10 = 2; iVar10 != 0; iVar10 = iVar10 + -1) {\n          *puVar20 = 0;\n          puVar20 = puVar20 + (uint)bVar21 * -2 + 1;\n        }\n        local_5c[0] = (byte *)param_1[0x96];\n        local_60 = (byte *)param_1[0x97];\n        pbVar12 = local_5c[1];\n        goto code_r0x00023748;\n      }\n      pbVar12 = (byte *)param_1[0x97];\n      param_1[0x9d] = uVar5;\n      param_1[0x9c] = auStack_50[3];\n      pbVar7 = (byte *)param_1[0x96];\n      if (uVar5 != 1) goto code_r0x00023235;\n    }\n    else {\ncode_r0x00023748:\n      param_1[0x9d] = 1;\n      param_1[0x9c] = (uint)pbVar12;\n      pbVar12 = local_60;\n      pbVar7 = local_5c[0];\n    }\n    uVar19 = (uint)*pbVar7;\n    local_5c[0] = pbVar7 + 1;\n    param_1[0x96] = (uint)(pbVar7 + 1);\n    local_60 = pbVar12 + -1;\n    param_1[0x97] = (uint)(pbVar12 + -1);\n    switch(uVar19 - 10 & 0xff) {\n    case 0:\n      goto code_r0x0002359b;\n    case 0x1a:\n      goto code_r0x00023673;\n    case 0x1d:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023868;\n      goto code_r0x00023690;\n    case 0x1e:\n      bVar21 = 1;\n      goto code_r0x00023262;\n    case 0x1f:\n      bVar21 = 1;\n      goto code_r0x0002351a;\n    case 0x20:\n      goto code_r0x00023894;\n    case 0x21:\n      bVar21 = 1;\n      goto code_r0x000234d2;\n    case 0x24:\n      bVar4 = true;\n      goto code_r0x0002336a;\n    case 0x27:\n    case 0x28:\n    case 0x29:\n    case 0x2a:\n    case 0x2b:\n    case 0x2c:\n    case 0x2d:\n    case 0x2e:\n    case 0x2f:\n      if ((*param_1 & 0x4000) == 0) {\n        *(byte *)(param_1 + 0xa3) = 0;\n        uVar19 = 0x112;\n        param_1[0x98] = 0x112;\n        goto LAB_0002318d;\n      }\n    default:\nLAB_00023150:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      break;\n    case 0x32:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10e;\n        uVar19 = 0x10e;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236f8;\n    case 0x34:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10f;\n        uVar19 = 0x10f;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236e0;\n    case 0x35:\n      bVar21 = 1;\n      goto code_r0x000233b2;\n    case 0x38:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x111;\n        uVar19 = 0x111;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x00023710;\n    case 0x49:\n    case 0x69:\n      bVar4 = true;\n      goto code_r0x0002342a;\n    case 0x4d:\n    case 0x6d:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      if ((*param_1 & 0x80000) != 0) break;\n      if (bVar21 != 0) {\n        pcVar8 = &UNK_0002f474 + (uVar19 == 0x77);\n        goto code_r0x0002345c;\n      }\n      uVar5 = 0;\n      do {\n        *(undefined4 *)((int)local_40 + uVar5) = 0;\n        uVar5 = uVar5 + 4;\n      } while (uVar5 < 0x20);\n      uVar5 = 0;\n      do {\n        if (*(byte *)((int)param_1 + uVar5 + 8) == 2) {\n          local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 != 0x100);\n      if (uVar19 == 0x57) goto code_r0x00023b34;\n      goto code_r0x00023ae7;\n    case 0x51:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5b;\n      puVar13 = auStack_6c;\n      break;\n    case 0x52:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5c;\n      puVar13 = auStack_6c;\n      break;\n    case 0x54:\n      goto code_r0x000235d7;\n    case 0x56:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023880;\n      goto code_r0x000236c8;\n    case 0x58:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x110;\n        uVar19 = 0x110;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236a8;\n    case 0x71:\n      bStack_51 = 1;\n      goto code_r0x00023295;\n    case 0x72:\n      bVar21 = 1;\n      goto code_r0x000233fa;\n    }\n    break;\n  case 0x54:\n    if ((((*param_1 & 8) != 0) || (param_1[0x98] - 0x106 < 2)) || (param_1[0x98] == 0xffffffff)) {\ncode_r0x00023880:\n      param_1[0x98] = 0x10c;\n      uVar19 = 0x10c;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x000235d7:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x5e;\n    puVar13 = auStack_6c;\n    break;\n  case 0x56:\ncode_r0x000236c8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x60;\n    puVar13 = auStack_6c;\n    break;\n  case 0x58:\ncode_r0x000236a8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x62;\n    puVar13 = auStack_6c;\n    break;\n  case 0x71:\n    bStack_51 = 0;\ncode_r0x00023295:\n    auStack_50[0] = *param_1;\n    puVar13 = auStack_6c;\n    if ((((auStack_50[0] & 0x200) != 0) &&\n        (puVar13 = auStack_6c, (((byte)(auStack_50[0] >> 0xc) ^ 1) & 1) == bStack_51)) &&\n       (((auStack_50[0] & 0x10) != 0 || (puVar13 = auStack_6c, (byte)param_1[0xa3] == 0)))) {\n      local_5c[1] = pbVar7 + (int)pbVar12;\n      param_1[0x9b] = 0xffffffff;\n      param_1[0x9a] = 0xffffffff;\n      if (local_5c[1] == local_5c[0]) {\ncode_r0x00023b5a:\n        puVar13 = auStack_6c;\n        if (bStack_51 == 0) goto code_r0x00023a30;\n      }\n      else {\n        bVar21 = pbVar7[1];\n        pbVar12 = (byte *)(int)(char)bVar21;\n        if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar7 = (byte *)0xffffffff;\n          local_60 = pbVar12;\n          do {\n            pbVar3 = local_60;\n            if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }\n            pbVar7 = pbVar3 + -0x30;\n            param_1[0x9a] = (uint)pbVar7;\n            local_5c[0] = local_5c[0] + 1;\n            if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }\n            bVar21 = *local_5c[0];\n            local_60 = (byte *)(int)(char)bVar21;\n            pbVar12 = (byte *)(int)(char)bVar21 + -0x30;\n          } while ((byte)pbVar12 < 10);\n          if (bVar21 == 0x2c) {\n            if ((int)pbVar7 < 0) goto code_r0x00023bed;\ncode_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;\n            if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }\n            bVar21 = local_5c[0][1];\n            if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            local_5c[0] = pbVar12;\n            goto code_r0x00023bd8;\n          }\n          param_1[0x9b] = (uint)pbVar7;\n          puVar17 = auStack_6c;\n          if (bStack_51 == 0) goto code_r0x00023a30;\n        }\n        else {\n          if (bVar21 == 0x2c) {\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }\ncode_r0x00023bd8:\n          if (bStack_51 == 0) goto code_r0x00023a3a;\n        }\n        puVar13 = auStack_6c;\n        if (*local_5c[0] == 0x5c) goto code_r0x00023a2b;\n      }\ncode_r0x00023a04:\n      if ((*(uint *)(puVar13 + 0x1c) & 0x200000) == 0) {\n        *(byte **)(puVar13 + -4) = pbVar12;\n        pcVar8 = "invalid content of \\{\\}";\n        ppbVar15 = (byte **)(puVar13 + -8);\n        *(undefined4 *)(puVar13 + -8) = 5;\ncode_r0x00023a1b:\n        while( true ) {\n          *(char **)((int)ppbVar15 + -4) = pcVar8;\n          puVar16 = (undefined1 *)((int)ppbVar15 + -8);\n          *(undefined4 *)((int)ppbVar15 + -8) = 0;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23;\n          uVar11 = dcgettext();\n          *(undefined4 *)((int)ppbVar15 + -8) = uVar11;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b;\n          FUN_0001be40();\n          pbVar12 = extraout_ECX;\ncode_r0x00023a2b:\n          *(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;\n          puVar17 = puVar16;\ncode_r0x00023a30:\n          puVar13 = puVar17;\n          puVar18 = puVar17;\n          if (*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)) break;\ncode_r0x00023a3a:\n          puVar13 = puVar18;\n          if ((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))\n          break;\n          uVar5 = param_1[0x9b];\n          if ((int)uVar5 < 0) {\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }\n          if ((int)uVar5 < (int)uVar19) break;\n          if ((int)uVar5 < 0x8000) goto code_r0x00023a66;\n          pcVar8 = "regular expression too big";\n          *(uint *)(puVar18 + -4) = uVar19;\n          ppbVar15 = (byte **)(puVar18 + -8);\n          *(undefined4 *)(puVar18 + -8) = 5;\n        }\n        goto code_r0x00023a04;\n      }\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x7b;\n    break;\n  case 0x72:\n    bVar21 = 0;\ncode_r0x000233fa:\n    if (((*param_1 & 0x400) != 0) || ((((byte)(*param_1 >> 0xf) ^ 1) & 1) != bVar21)) {\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x7c;\n      puVar13 = auStack_6c;\n      break;\n    }\ncode_r0x000238f1:\n    *(byte *)(param_1 + 0xa3) = 1;\n    uVar19 = 0x106;\n    param_1[0x98] = 0x106;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;\n  }\nLAB_00023160:\n  puVar14 = puVar13;\n  *(byte *)(param_1 + 0xa3) = 0;\n  if (bVar21 == 0) {\n    if (*(byte *)((int)param_1 + 5) != 0) {\n      *(undefined4 *)(puVar14 + -4) = 0x2317a;\n      ppuVar6 = __ctype_b_loc();\n      if ((*(byte *)((int)*ppuVar6 + uVar19 * 2 + 1) & 4) != 0) {\n        uVar19 = 0;\n        do {\n          *(undefined4 *)(puVar14 + uVar19 + 0x2c) = 0;\n          uVar19 = uVar19 + 4;\n        } while (uVar19 < 0x20);\n        *(undefined4 *)(puVar14 + -4) = 0x237bd;\n        FUN_0001da50();\ncode_r0x000237bd:\n        *(undefined4 *)(puVar14 + -4) = 0x237c6;\n        iVar10 = FUN_0001e6a0();\n        uVar19 = iVar10 + 0x114;\n      }\n    }\n    param_1[0x98] = uVar19;\n    puVar13 = puVar14;\n  }\n  else {\n    param_1[0x98] = 0x109;\n    uVar19 = 0x109;\n    puVar13 = puVar14;\n  }\nLAB_0002318d:\n  if (*(int *)(puVar13 + 0x4c) == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar19;\n  }\n                    \n  *(undefined **)(puVar13 + -4) = &UNK_00023c01;\n  FUN_0002c430();\n}" (type_identifier "uint") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_000230c0(uint *param_1)" (identifier "FUN_000230c0") (parameter_list "(uint *param_1)" (( "(") (parameter_declaration "uint *param_1" (type_identifier "uint") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  int iVar1;\n  ushort *puVar2;\n  byte *pbVar3;\n  bool bVar4;\n  uint uVar5;\n  ushort **ppuVar6;\n  byte *pbVar7;\n  char *pcVar8;\n  size_t sVar9;\n  int iVar10;\n  undefined4 uVar11;\n  byte *pbVar12;\n  byte *extraout_ECX;\n  undefined1 *puVar13;\n  undefined1 *puVar14;\n  byte **ppbVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  undefined1 *puVar18;\n  uint uVar19;\n  uint *puVar20;\n  int in_GS_OFFSET;\n  byte bVar21;\n  undefined4 uStackY_80;\n  byte *pbStack_74;\n  uint *puStack_70;\n  undefined1 auStack_6c [12];\n  byte *local_60;\n  byte *local_5c [2];\n  byte bStack_51;\n  uint auStack_50 [4];\n  uint local_40 [11];\n  undefined4 uStack_14;\n  \n  bVar21 = 0;\n  uStack_14 = 0x230cb;\n  pbVar12 = (byte *)param_1[0x97];\n  local_40[8] = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  if (pbVar12 == (byte *)0x0) {\n    param_1[0x98] = 0xffffffff;\n    uVar19 = 0xffffffff;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;\n  }\n  pbVar7 = (byte *)param_1[0x96];\n  uVar19 = param_1[*pbVar7 + 0x10d];\n  if (uVar19 == 0xffffffff) {\n    puStack_70 = param_1 + 0xb2;\n    pbStack_74 = pbVar12;\n    uVar5 = FUN_0002b6f0(auStack_50 + 3,pbVar7);\n    if (0xfffffffc < uVar5 - 1) {\n      param_1[0xb2] = 0;\n      pbVar7 = (byte *)param_1[0x96];\n      param_1[0xb3] = 0;\n      pbVar12 = (byte *)param_1[0x97];\n      goto LAB_00023107;\n    }\n    pbVar12 = (byte *)param_1[0x97];\n    param_1[0x9d] = uVar5;\n    param_1[0x9c] = auStack_50[3];\n    pbVar7 = (byte *)param_1[0x96];\n    if (uVar5 == 1) goto LAB_00023117;\ncode_r0x00023235:\n    uVar19 = 0xffffffff;\n    param_1[0x96] = (uint)(pbVar7 + uVar5);\n    bVar21 = (byte)param_1[0xcc];\n    param_1[0x97] = (int)pbVar12 - uVar5;\n    puVar13 = auStack_6c;\n    goto LAB_00023160;\n  }\nLAB_00023107:\n  param_1[0x9c] = uVar19;\n  param_1[0x9d] = 1;\nLAB_00023117:\n  puVar14 = auStack_6c;\n  puVar18 = auStack_6c;\n  puVar16 = auStack_6c;\n  puVar17 = auStack_6c;\n  puVar13 = auStack_6c;\n  uVar19 = (uint)*pbVar7;\n  local_5c[0] = pbVar7 + 1;\n  param_1[0x96] = (uint)local_5c[0];\n  local_60 = pbVar12 + -1;\n  param_1[0x97] = (uint)local_60;\n  if (0x72 < (byte)(uVar19 - 10)) goto LAB_00023150;\n  uVar5 = uVar19 - 10 & 0xff;\n  switch(uVar5) {\n  case 0:\n    if (((*param_1 & 0x400) != 0) || ((*param_1 & 0x800) == 0)) {\ncode_r0x0002359b:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 10;\n      puVar13 = auStack_6c;\n      break;\n    }\n    goto code_r0x000238f1;\n  default:\n    goto LAB_00023150;\n  case 0x1a:\n    uVar19 = *param_1;\n    if ((((((uVar19 & 8) != 0) || (local_60 == (byte *)0x0)) ||\n         ((pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)))) ||\n        ((pbVar12 = (byte *)((uVar19 >> 0xf ^ 1) & 1), pbVar12 < local_60 &&\n         (local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c)))) ||\n       (((uVar19 & 0x800) != 0 && (pbVar7[1] == 10)))) {\ncode_r0x00023868:\n      param_1[0x98] = 0x10d;\n      uVar19 = 0x10d;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x00023673:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x24;\n    puVar13 = auStack_6c;\n    break;\n  case 0x1d:\ncode_r0x00023690:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x27;\n    puVar13 = auStack_6c;\n    break;\n  case 0x1e:\n    bVar21 = 0;\ncode_r0x00023262:\n    if ((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) {\n      param_1[0x99] = param_1[0x99] + 1;\n      uVar19 = 0x107;\n      *(byte *)(param_1 + 0xa3) = 1;\n      param_1[0x98] = 0x107;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x28;\n    puVar13 = auStack_6c;\n    break;\n  case 0x1f:\n    bVar21 = 0;\ncode_r0x0002351a:\n    if (((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) &&\n       ((param_1[0x99] != 0 || ((*param_1 & 0x20000) == 0)))) {\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x108;\n      param_1[0x99] = param_1[0x99] - 1;\n      param_1[0x98] = 0x108;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x29;\n    puVar13 = auStack_6c;\n    break;\n  case 0x20:\n    if (((*param_1 & 0x10) != 0) || ((byte)param_1[0xa3] == 0)) {\n      param_1[0x98] = 0x102;\n      uVar19 = 0x102;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x00023894:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x2a;\n    puVar13 = auStack_6c;\n    break;\n  case 0x21:\n    bVar21 = 0;\ncode_r0x000234d2:\n    uVar19 = *param_1;\n    if ((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))) {\n      param_1[0x98] = 0x103;\n      uVar19 = 0x103;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x2b;\n    puVar13 = auStack_6c;\n    break;\n  case 0x24:\n    bVar4 = false;\ncode_r0x0002336a:\n    bVar21 = (byte)param_1[0xcc];\n    if (!bVar4) {\n      uVar5 = param_1[0x95];\n      if (uVar5 == 0xffffffff) {\n        local_40[0] = 0xffffffff;\n        local_40[1] = 0xffffffff;\n        local_40[2] = 0xffffffff;\n        local_40[3] = 0xffffffff;\n        local_40[4] = 0xffffffff;\n        local_40[5] = 0xffffffff;\n        local_40[6] = 0xffffffff;\n        local_40[7] = 0xffffffff;\n        if ((*param_1 & 0x40) == 0) {\n          local_40[0] = 0xfffffbff;\n        }\n        if ((*param_1 & 0x80) != 0) {\n          local_40[0] = local_40[0] & 0xfffffffe;\n        }\n        if (bVar21 != 0) {\n          uVar19 = 0;\n          do {\n            if (param_1[uVar19 + 0x10d] == 0xffffffff) {\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }\n            uVar19 = uVar19 + 1;\n          } while (uVar19 != 0x100);\n        }\n        puStack_70 = (uint *)&UNK_000239cf;\n        uVar5 = FUN_0001e6a0();\n        bVar21 = (byte)param_1[0xcc];\n        param_1[0x95] = uVar5;\n      }\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x10a;\n      if (bVar21 == 0) {\n        uVar19 = uVar5 + 0x114;\n      }\n      param_1[0x98] = uVar19;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    uVar19 = 0x2e;\n    puVar13 = auStack_6c;\n    break;\n  case 0x32:\ncode_r0x000236f8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3c;\n    puVar13 = auStack_6c;\n    break;\n  case 0x34:\ncode_r0x000236e0:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3e;\n    puVar13 = auStack_6c;\n    break;\n  case 0x35:\n    bVar21 = 0;\ncode_r0x000233b2:\n    uVar19 = *param_1;\n    if ((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))) {\n      param_1[0x98] = 0x101;\n      uVar19 = 0x101;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3f;\n    puVar13 = auStack_6c;\n    break;\n  case 0x38:\ncode_r0x00023710:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x42;\n    puVar13 = auStack_6c;\n    break;\n  case 0x49:\n  case 0x69:\n    bVar4 = false;\ncode_r0x0002342a:\n    bVar21 = (byte)param_1[0xcc];\n    puVar13 = auStack_6c;\n    if ((!bVar4) || (puVar13 = auStack_6c, (*param_1 & 0x80000) != 0)) break;\n    if (bVar21 != 0) {\n      pcVar8 = &UNK_0002f468 + (uVar19 == 0x73);\ncode_r0x0002345c:\n      param_1[0x96] = (uint)pcVar8;\n      sVar9 = strlen(pcVar8);\n      param_1[0x97] = sVar9;\n      puStack_70 = (uint *)&UNK_0002347b;\n      uVar19 = FUN_00021f80();\n      *(byte *)(param_1 + 0xa3) = 0;\n      param_1[0x98] = uVar19;\n      param_1[0x96] = (uint)local_5c[0];\n      param_1[0x97] = (uint)local_60;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    uVar5 = 0;\n    do {\n      *(undefined4 *)((int)local_40 + uVar5) = 0;\n      uVar5 = uVar5 + 4;\n    } while (uVar5 < 0x20);\n    puStack_70 = (uint *)&UNK_00023ab3;\n    ppuVar6 = __ctype_b_loc();\n    uVar5 = 0;\n    puVar2 = *ppuVar6;\n    do {\n      if ((*(byte *)((int)puVar2 + uVar5 * 2 + 1) & 0x20) != 0) {\n        local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n      }\n      uVar5 = uVar5 + 1;\n    } while (uVar5 != 0x100);\n    if (uVar19 == 0x53) {\ncode_r0x00023b34:\n      local_40[0] = ~local_40[0];\n      local_40[1] = ~local_40[1];\n      local_40[2] = ~local_40[2];\n      local_40[3] = ~local_40[3];\n      local_40[4] = ~local_40[4];\n      local_40[5] = ~local_40[5];\n      local_40[6] = ~local_40[6];\n      local_40[7] = ~local_40[7];\n    }\ncode_r0x00023ae7:\n    *(byte *)(param_1 + 0xa3) = 0;\n    goto code_r0x000237bd;\n  case 0x51:\n    *(byte *)(param_1 + 0xa3) = 0;\n    puStack_70 = (uint *)&UNK_0002357e;\n    uVar19 = FUN_00021f80();\n    param_1[0x98] = uVar19;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;\n  case 0x52:\n    if (local_60 == (byte *)0x0) {\n      pcVar8 = "unfinished \\ escape";\n      ppbVar15 = &pbStack_74;\n      pbStack_74 = (byte *)0x5;\n      puStack_70 = (uint *)((int)&__DT_PLTGOT + *(int *)(&DAT_0002ef08 + uVar5 * 4));\n      goto code_r0x00023a1b;\n    }\n    pbVar12 = (byte *)param_1[pbVar7[1] + 0x10d];\n    if (pbVar12 == (byte *)0xffffffff) {\n      pbStack_74 = local_60;\n      puStack_70 = param_1 + 0xb2;\n      local_5c[1] = pbVar12;\n      uVar5 = FUN_0002b6f0(auStack_50 + 3,local_5c[0]);\n      if (0xfffffffc < uVar5 - 1) {\n        puVar20 = param_1 + 0xb2;\n        for (iVar10 = 2; iVar10 != 0; iVar10 = iVar10 + -1) {\n          *puVar20 = 0;\n          puVar20 = puVar20 + (uint)bVar21 * -2 + 1;\n        }\n        local_5c[0] = (byte *)param_1[0x96];\n        local_60 = (byte *)param_1[0x97];\n        pbVar12 = local_5c[1];\n        goto code_r0x00023748;\n      }\n      pbVar12 = (byte *)param_1[0x97];\n      param_1[0x9d] = uVar5;\n      param_1[0x9c] = auStack_50[3];\n      pbVar7 = (byte *)param_1[0x96];\n      if (uVar5 != 1) goto code_r0x00023235;\n    }\n    else {\ncode_r0x00023748:\n      param_1[0x9d] = 1;\n      param_1[0x9c] = (uint)pbVar12;\n      pbVar12 = local_60;\n      pbVar7 = local_5c[0];\n    }\n    uVar19 = (uint)*pbVar7;\n    local_5c[0] = pbVar7 + 1;\n    param_1[0x96] = (uint)(pbVar7 + 1);\n    local_60 = pbVar12 + -1;\n    param_1[0x97] = (uint)(pbVar12 + -1);\n    switch(uVar19 - 10 & 0xff) {\n    case 0:\n      goto code_r0x0002359b;\n    case 0x1a:\n      goto code_r0x00023673;\n    case 0x1d:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023868;\n      goto code_r0x00023690;\n    case 0x1e:\n      bVar21 = 1;\n      goto code_r0x00023262;\n    case 0x1f:\n      bVar21 = 1;\n      goto code_r0x0002351a;\n    case 0x20:\n      goto code_r0x00023894;\n    case 0x21:\n      bVar21 = 1;\n      goto code_r0x000234d2;\n    case 0x24:\n      bVar4 = true;\n      goto code_r0x0002336a;\n    case 0x27:\n    case 0x28:\n    case 0x29:\n    case 0x2a:\n    case 0x2b:\n    case 0x2c:\n    case 0x2d:\n    case 0x2e:\n    case 0x2f:\n      if ((*param_1 & 0x4000) == 0) {\n        *(byte *)(param_1 + 0xa3) = 0;\n        uVar19 = 0x112;\n        param_1[0x98] = 0x112;\n        goto LAB_0002318d;\n      }\n    default:\nLAB_00023150:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      break;\n    case 0x32:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10e;\n        uVar19 = 0x10e;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236f8;\n    case 0x34:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10f;\n        uVar19 = 0x10f;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236e0;\n    case 0x35:\n      bVar21 = 1;\n      goto code_r0x000233b2;\n    case 0x38:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x111;\n        uVar19 = 0x111;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x00023710;\n    case 0x49:\n    case 0x69:\n      bVar4 = true;\n      goto code_r0x0002342a;\n    case 0x4d:\n    case 0x6d:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      if ((*param_1 & 0x80000) != 0) break;\n      if (bVar21 != 0) {\n        pcVar8 = &UNK_0002f474 + (uVar19 == 0x77);\n        goto code_r0x0002345c;\n      }\n      uVar5 = 0;\n      do {\n        *(undefined4 *)((int)local_40 + uVar5) = 0;\n        uVar5 = uVar5 + 4;\n      } while (uVar5 < 0x20);\n      uVar5 = 0;\n      do {\n        if (*(byte *)((int)param_1 + uVar5 + 8) == 2) {\n          local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 != 0x100);\n      if (uVar19 == 0x57) goto code_r0x00023b34;\n      goto code_r0x00023ae7;\n    case 0x51:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5b;\n      puVar13 = auStack_6c;\n      break;\n    case 0x52:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5c;\n      puVar13 = auStack_6c;\n      break;\n    case 0x54:\n      goto code_r0x000235d7;\n    case 0x56:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023880;\n      goto code_r0x000236c8;\n    case 0x58:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x110;\n        uVar19 = 0x110;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236a8;\n    case 0x71:\n      bStack_51 = 1;\n      goto code_r0x00023295;\n    case 0x72:\n      bVar21 = 1;\n      goto code_r0x000233fa;\n    }\n    break;\n  case 0x54:\n    if ((((*param_1 & 8) != 0) || (param_1[0x98] - 0x106 < 2)) || (param_1[0x98] == 0xffffffff)) {\ncode_r0x00023880:\n      param_1[0x98] = 0x10c;\n      uVar19 = 0x10c;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x000235d7:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x5e;\n    puVar13 = auStack_6c;\n    break;\n  case 0x56:\ncode_r0x000236c8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x60;\n    puVar13 = auStack_6c;\n    break;\n  case 0x58:\ncode_r0x000236a8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x62;\n    puVar13 = auStack_6c;\n    break;\n  case 0x71:\n    bStack_51 = 0;\ncode_r0x00023295:\n    auStack_50[0] = *param_1;\n    puVar13 = auStack_6c;\n    if ((((auStack_50[0] & 0x200) != 0) &&\n        (puVar13 = auStack_6c, (((byte)(auStack_50[0] >> 0xc) ^ 1) & 1) == bStack_51)) &&\n       (((auStack_50[0] & 0x10) != 0 || (puVar13 = auStack_6c, (byte)param_1[0xa3] == 0)))) {\n      local_5c[1] = pbVar7 + (int)pbVar12;\n      param_1[0x9b] = 0xffffffff;\n      param_1[0x9a] = 0xffffffff;\n      if (local_5c[1] == local_5c[0]) {\ncode_r0x00023b5a:\n        puVar13 = auStack_6c;\n        if (bStack_51 == 0) goto code_r0x00023a30;\n      }\n      else {\n        bVar21 = pbVar7[1];\n        pbVar12 = (byte *)(int)(char)bVar21;\n        if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar7 = (byte *)0xffffffff;\n          local_60 = pbVar12;\n          do {\n            pbVar3 = local_60;\n            if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }\n            pbVar7 = pbVar3 + -0x30;\n            param_1[0x9a] = (uint)pbVar7;\n            local_5c[0] = local_5c[0] + 1;\n            if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }\n            bVar21 = *local_5c[0];\n            local_60 = (byte *)(int)(char)bVar21;\n            pbVar12 = (byte *)(int)(char)bVar21 + -0x30;\n          } while ((byte)pbVar12 < 10);\n          if (bVar21 == 0x2c) {\n            if ((int)pbVar7 < 0) goto code_r0x00023bed;\ncode_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;\n            if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }\n            bVar21 = local_5c[0][1];\n            if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            local_5c[0] = pbVar12;\n            goto code_r0x00023bd8;\n          }\n          param_1[0x9b] = (uint)pbVar7;\n          puVar17 = auStack_6c;\n          if (bStack_51 == 0) goto code_r0x00023a30;\n        }\n        else {\n          if (bVar21 == 0x2c) {\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }\ncode_r0x00023bd8:\n          if (bStack_51 == 0) goto code_r0x00023a3a;\n        }\n        puVar13 = auStack_6c;\n        if (*local_5c[0] == 0x5c) goto code_r0x00023a2b;\n      }\ncode_r0x00023a04:\n      if ((*(uint *)(puVar13 + 0x1c) & 0x200000) == 0) {\n        *(byte **)(puVar13 + -4) = pbVar12;\n        pcVar8 = "invalid content of \\{\\}";\n        ppbVar15 = (byte **)(puVar13 + -8);\n        *(undefined4 *)(puVar13 + -8) = 5;\ncode_r0x00023a1b:\n        while( true ) {\n          *(char **)((int)ppbVar15 + -4) = pcVar8;\n          puVar16 = (undefined1 *)((int)ppbVar15 + -8);\n          *(undefined4 *)((int)ppbVar15 + -8) = 0;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23;\n          uVar11 = dcgettext();\n          *(undefined4 *)((int)ppbVar15 + -8) = uVar11;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b;\n          FUN_0001be40();\n          pbVar12 = extraout_ECX;\ncode_r0x00023a2b:\n          *(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;\n          puVar17 = puVar16;\ncode_r0x00023a30:\n          puVar13 = puVar17;\n          puVar18 = puVar17;\n          if (*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)) break;\ncode_r0x00023a3a:\n          puVar13 = puVar18;\n          if ((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))\n          break;\n          uVar5 = param_1[0x9b];\n          if ((int)uVar5 < 0) {\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }\n          if ((int)uVar5 < (int)uVar19) break;\n          if ((int)uVar5 < 0x8000) goto code_r0x00023a66;\n          pcVar8 = "regular expression too big";\n          *(uint *)(puVar18 + -4) = uVar19;\n          ppbVar15 = (byte **)(puVar18 + -8);\n          *(undefined4 *)(puVar18 + -8) = 5;\n        }\n        goto code_r0x00023a04;\n      }\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x7b;\n    break;\n  case 0x72:\n    bVar21 = 0;\ncode_r0x000233fa:\n    if (((*param_1 & 0x400) != 0) || ((((byte)(*param_1 >> 0xf) ^ 1) & 1) != bVar21)) {\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x7c;\n      puVar13 = auStack_6c;\n      break;\n    }\ncode_r0x000238f1:\n    *(byte *)(param_1 + 0xa3) = 1;\n    uVar19 = 0x106;\n    param_1[0x98] = 0x106;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;\n  }\nLAB_00023160:\n  puVar14 = puVar13;\n  *(byte *)(param_1 + 0xa3) = 0;\n  if (bVar21 == 0) {\n    if (*(byte *)((int)param_1 + 5) != 0) {\n      *(undefined4 *)(puVar14 + -4) = 0x2317a;\n      ppuVar6 = __ctype_b_loc();\n      if ((*(byte *)((int)*ppuVar6 + uVar19 * 2 + 1) & 4) != 0) {\n        uVar19 = 0;\n        do {\n          *(undefined4 *)(puVar14 + uVar19 + 0x2c) = 0;\n          uVar19 = uVar19 + 4;\n        } while (uVar19 < 0x20);\n        *(undefined4 *)(puVar14 + -4) = 0x237bd;\n        FUN_0001da50();\ncode_r0x000237bd:\n        *(undefined4 *)(puVar14 + -4) = 0x237c6;\n        iVar10 = FUN_0001e6a0();\n        uVar19 = iVar10 + 0x114;\n      }\n    }\n    param_1[0x98] = uVar19;\n    puVar13 = puVar14;\n  }\n  else {\n    param_1[0x98] = 0x109;\n    uVar19 = 0x109;\n    puVar13 = puVar14;\n  }\nLAB_0002318d:\n  if (*(int *)(puVar13 + 0x4c) == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar19;\n  }\n                    \n  *(undefined **)(puVar13 + -4) = &UNK_00023c01;\n  FUN_0002c430();\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "ushort *puVar2;" (type_identifier "ushort") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "byte *pbVar3;" (type_identifier "byte") (pointer_declarator "*pbVar3" (* "*") (identifier "pbVar3")) (; ";")) (declaration "bool bVar4;" (primitive_type "bool") (identifier "bVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "ushort **ppuVar6;" (type_identifier "ushort") (pointer_declarator "**ppuVar6" (* "*") (pointer_declarator "*ppuVar6" (* "*") (identifier "ppuVar6"))) (; ";")) (declaration "byte *pbVar7;" (type_identifier "byte") (pointer_declarator "*pbVar7" (* "*") (identifier "pbVar7")) (; ";")) (declaration "char *pcVar8;" (primitive_type "char") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (declaration "size_t sVar9;" (primitive_type "size_t") (identifier "sVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "undefined4 uVar11;" (type_identifier "undefined4") (identifier "uVar11") (; ";")) (declaration "byte *pbVar12;" (type_identifier "byte") (pointer_declarator "*pbVar12" (* "*") (identifier "pbVar12")) (; ";")) (declaration "byte *extraout_ECX;" (type_identifier "byte") (pointer_declarator "*extraout_ECX" (* "*") (identifier "extraout_ECX")) (; ";")) (declaration "undefined1 *puVar13;" (type_identifier "undefined1") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "undefined1 *puVar14;" (type_identifier "undefined1") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "byte **ppbVar15;" (type_identifier "byte") (pointer_declarator "**ppbVar15" (* "*") (pointer_declarator "*ppbVar15" (* "*") (identifier "ppbVar15"))) (; ";")) (declaration "undefined1 *puVar16;" (type_identifier "undefined1") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "undefined1 *puVar17;" (type_identifier "undefined1") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "undefined1 *puVar18;" (type_identifier "undefined1") (pointer_declarator "*puVar18" (* "*") (identifier "puVar18")) (; ";")) (declaration "uint uVar19;" (type_identifier "uint") (identifier "uVar19") (; ";")) (declaration "uint *puVar20;" (type_identifier "uint") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "byte bVar21;" (type_identifier "byte") (identifier "bVar21") (; ";")) (declaration "undefined4 uStackY_80;" (type_identifier "undefined4") (identifier "uStackY_80") (; ";")) (declaration "byte *pbStack_74;" (type_identifier "byte") (pointer_declarator "*pbStack_74" (* "*") (identifier "pbStack_74")) (; ";")) (declaration "uint *puStack_70;" (type_identifier "uint") (pointer_declarator "*puStack_70" (* "*") (identifier "puStack_70")) (; ";")) (declaration "undefined1 auStack_6c [12];" (type_identifier "undefined1") (array_declarator "auStack_6c [12]" (identifier "auStack_6c") ([ "[") (number_literal "12") (] "]")) (; ";")) (declaration "byte *local_60;" (type_identifier "byte") (pointer_declarator "*local_60" (* "*") (identifier "local_60")) (; ";")) (declaration "byte *local_5c [2];" (type_identifier "byte") (pointer_declarator "*local_5c [2]" (* "*") (array_declarator "local_5c [2]" (identifier "local_5c") ([ "[") (number_literal "2") (] "]"))) (; ";")) (declaration "byte bStack_51;" (type_identifier "byte") (identifier "bStack_51") (; ";")) (declaration "uint auStack_50 [4];" (type_identifier "uint") (array_declarator "auStack_50 [4]" (identifier "auStack_50") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "uint local_40 [11];" (type_identifier "uint") (array_declarator "local_40 [11]" (identifier "local_40") ([ "[") (number_literal "11") (] "]")) (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" (identifier "bVar21") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_14 = 0x230cb;" (assignment_expression "uStack_14 = 0x230cb" (identifier "uStack_14") (= "=") (number_literal "0x230cb")) (; ";")) (expression_statement "pbVar12 = (byte *)param_1[0x97];" (assignment_expression "pbVar12 = (byte *)param_1[0x97]" (identifier "pbVar12") (= "=") (cast_expression "(byte *)param_1[0x97]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x97]" (identifier "param_1") ([ "[") (number_literal "0x97") (] "]")))) (; ";")) (expression_statement "local_40[8] = *(undefined4 *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_40[8] = *(undefined4 *)(in_GS_OFFSET + 0x14)" (subscript_expression "local_40[8]" (identifier "local_40") ([ "[") (number_literal "8") (] "]")) (= "=") (pointer_expression "*(undefined4 *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(undefined4 *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (pbVar12 == (byte *)0x0) {\n    param_1[0x98] = 0xffffffff;\n    uVar19 = 0xffffffff;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;\n  }" (if "if") (parenthesized_expression "(pbVar12 == (byte *)0x0)" (( "(") (binary_expression "pbVar12 == (byte *)0x0" (identifier "pbVar12") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    param_1[0x98] = 0xffffffff;\n    uVar19 = 0xffffffff;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;\n  }" ({ "{") (expression_statement "param_1[0x98] = 0xffffffff;" (assignment_expression "param_1[0x98] = 0xffffffff" (subscript_expression "param_1[0x98]" (identifier "param_1") ([ "[") (number_literal "0x98") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "uVar19 = 0xffffffff;" (assignment_expression "uVar19 = 0xffffffff" (identifier "uVar19") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" (identifier "puVar13") (= "=") (identifier "auStack_6c")) (; ";")) (goto_statement "goto LAB_0002318d;" (goto "goto") (statement_identifier "LAB_0002318d") (; ";")) (} "}"))) (expression_statement "pbVar7 = (byte *)param_1[0x96];" (assignment_expression "pbVar7 = (byte *)param_1[0x96]" (identifier "pbVar7") (= "=") (cast_expression "(byte *)param_1[0x96]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x96]" (identifier "param_1") ([ "[") (number_literal "0x96") (] "]")))) (; ";")) (expression_statement "uVar19 = param_1[*pbVar7 + 0x10d];" (assignment_expression "uVar19 = param_1[*pbVar7 + 0x10d]" (identifier "uVar19") (= "=") (subscript_expression "param_1[*pbVar7 + 0x10d]" (identifier "param_1") ([ "[") (binary_expression "*pbVar7 + 0x10d" (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")) (+ "+") (number_literal "0x10d")) (] "]"))) (; ";")) (if_statement "if (uVar19 == 0xffffffff) {\n    puStack_70 = param_1 + 0xb2;\n    pbStack_74 = pbVar12;\n    uVar5 = FUN_0002b6f0(auStack_50 + 3,pbVar7);\n    if (0xfffffffc < uVar5 - 1) {\n      param_1[0xb2] = 0;\n      pbVar7 = (byte *)param_1[0x96];\n      param_1[0xb3] = 0;\n      pbVar12 = (byte *)param_1[0x97];\n      goto LAB_00023107;\n    }\n    pbVar12 = (byte *)param_1[0x97];\n    param_1[0x9d] = uVar5;\n    param_1[0x9c] = auStack_50[3];\n    pbVar7 = (byte *)param_1[0x96];\n    if (uVar5 == 1) goto LAB_00023117;\ncode_r0x00023235:\n    uVar19 = 0xffffffff;\n    param_1[0x96] = (uint)(pbVar7 + uVar5);\n    bVar21 = (byte)param_1[0xcc];\n    param_1[0x97] = (int)pbVar12 - uVar5;\n    puVar13 = auStack_6c;\n    goto LAB_00023160;\n  }" (if "if") (parenthesized_expression "(uVar19 == 0xffffffff)" (( "(") (binary_expression "uVar19 == 0xffffffff" (identifier "uVar19") (== "==") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n    puStack_70 = param_1 + 0xb2;\n    pbStack_74 = pbVar12;\n    uVar5 = FUN_0002b6f0(auStack_50 + 3,pbVar7);\n    if (0xfffffffc < uVar5 - 1) {\n      param_1[0xb2] = 0;\n      pbVar7 = (byte *)param_1[0x96];\n      param_1[0xb3] = 0;\n      pbVar12 = (byte *)param_1[0x97];\n      goto LAB_00023107;\n    }\n    pbVar12 = (byte *)param_1[0x97];\n    param_1[0x9d] = uVar5;\n    param_1[0x9c] = auStack_50[3];\n    pbVar7 = (byte *)param_1[0x96];\n    if (uVar5 == 1) goto LAB_00023117;\ncode_r0x00023235:\n    uVar19 = 0xffffffff;\n    param_1[0x96] = (uint)(pbVar7 + uVar5);\n    bVar21 = (byte)param_1[0xcc];\n    param_1[0x97] = (int)pbVar12 - uVar5;\n    puVar13 = auStack_6c;\n    goto LAB_00023160;\n  }" ({ "{") (expression_statement "puStack_70 = param_1 + 0xb2;" (assignment_expression "puStack_70 = param_1 + 0xb2" (identifier "puStack_70") (= "=") (binary_expression "param_1 + 0xb2" (identifier "param_1") (+ "+") (number_literal "0xb2"))) (; ";")) (expression_statement "pbStack_74 = pbVar12;" (assignment_expression "pbStack_74 = pbVar12" (identifier "pbStack_74") (= "=") (identifier "pbVar12")) (; ";")) (expression_statement "uVar5 = FUN_0002b6f0(auStack_50 + 3,pbVar7);" (assignment_expression "uVar5 = FUN_0002b6f0(auStack_50 + 3,pbVar7)" (identifier "uVar5") (= "=") (call_expression "FUN_0002b6f0(auStack_50 + 3,pbVar7)" (identifier "FUN_0002b6f0") (argument_list "(auStack_50 + 3,pbVar7)" (( "(") (binary_expression "auStack_50 + 3" (identifier "auStack_50") (+ "+") (number_literal "3")) (, ",") (identifier "pbVar7") () ")")))) (; ";")) (if_statement "if (0xfffffffc < uVar5 - 1) {\n      param_1[0xb2] = 0;\n      pbVar7 = (byte *)param_1[0x96];\n      param_1[0xb3] = 0;\n      pbVar12 = (byte *)param_1[0x97];\n      goto LAB_00023107;\n    }" (if "if") (parenthesized_expression "(0xfffffffc < uVar5 - 1)" (( "(") (binary_expression "0xfffffffc < uVar5 - 1" (number_literal "0xfffffffc") (< "<") (binary_expression "uVar5 - 1" (identifier "uVar5") (- "-") (number_literal "1"))) () ")")) (compound_statement "{\n      param_1[0xb2] = 0;\n      pbVar7 = (byte *)param_1[0x96];\n      param_1[0xb3] = 0;\n      pbVar12 = (byte *)param_1[0x97];\n      goto LAB_00023107;\n    }" ({ "{") (expression_statement "param_1[0xb2] = 0;" (assignment_expression "param_1[0xb2] = 0" (subscript_expression "param_1[0xb2]" (identifier "param_1") ([ "[") (number_literal "0xb2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar7 = (byte *)param_1[0x96];" (assignment_expression "pbVar7 = (byte *)param_1[0x96]" (identifier "pbVar7") (= "=") (cast_expression "(byte *)param_1[0x96]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x96]" (identifier "param_1") ([ "[") (number_literal "0x96") (] "]")))) (; ";")) (expression_statement "param_1[0xb3] = 0;" (assignment_expression "param_1[0xb3] = 0" (subscript_expression "param_1[0xb3]" (identifier "param_1") ([ "[") (number_literal "0xb3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar12 = (byte *)param_1[0x97];" (assignment_expression "pbVar12 = (byte *)param_1[0x97]" (identifier "pbVar12") (= "=") (cast_expression "(byte *)param_1[0x97]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x97]" (identifier "param_1") ([ "[") (number_literal "0x97") (] "]")))) (; ";")) (goto_statement "goto LAB_00023107;" (goto "goto") (statement_identifier "LAB_00023107") (; ";")) (} "}"))) (expression_statement "pbVar12 = (byte *)param_1[0x97];" (assignment_expression "pbVar12 = (byte *)param_1[0x97]" (identifier "pbVar12") (= "=") (cast_expression "(byte *)param_1[0x97]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x97]" (identifier "param_1") ([ "[") (number_literal "0x97") (] "]")))) (; ";")) (expression_statement "param_1[0x9d] = uVar5;" (assignment_expression "param_1[0x9d] = uVar5" (subscript_expression "param_1[0x9d]" (identifier "param_1") ([ "[") (number_literal "0x9d") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "param_1[0x9c] = auStack_50[3];" (assignment_expression "param_1[0x9c] = auStack_50[3]" (subscript_expression "param_1[0x9c]" (identifier "param_1") ([ "[") (number_literal "0x9c") (] "]")) (= "=") (subscript_expression "auStack_50[3]" (identifier "auStack_50") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "pbVar7 = (byte *)param_1[0x96];" (assignment_expression "pbVar7 = (byte *)param_1[0x96]" (identifier "pbVar7") (= "=") (cast_expression "(byte *)param_1[0x96]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x96]" (identifier "param_1") ([ "[") (number_literal "0x96") (] "]")))) (; ";")) (if_statement "if (uVar5 == 1) goto LAB_00023117;" (if "if") (parenthesized_expression "(uVar5 == 1)" (( "(") (binary_expression "uVar5 == 1" (identifier "uVar5") (== "==") (number_literal "1")) () ")")) (goto_statement "goto LAB_00023117;" (goto "goto") (statement_identifier "LAB_00023117") (; ";"))) (labeled_statement "code_r0x00023235:\n    uVar19 = 0xffffffff;" (statement_identifier "code_r0x00023235") (: ":") (expression_statement "uVar19 = 0xffffffff;" (assignment_expression "uVar19 = 0xffffffff" (identifier "uVar19") (= "=") (number_literal "0xffffffff")) (; ";"))) (expression_statement "param_1[0x96] = (uint)(pbVar7 + uVar5);" (assignment_expression "param_1[0x96] = (uint)(pbVar7 + uVar5)" (subscript_expression "param_1[0x96]" (identifier "param_1") ([ "[") (number_literal "0x96") (] "]")) (= "=") (call_expression "(uint)(pbVar7 + uVar5)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbVar7 + uVar5)" (( "(") (binary_expression "pbVar7 + uVar5" (identifier "pbVar7") (+ "+") (identifier "uVar5")) () ")")))) (; ";")) (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" (identifier "bVar21") (= "=") (cast_expression "(byte)param_1[0xcc]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_1[0xcc]" (identifier "param_1") ([ "[") (number_literal "0xcc") (] "]")))) (; ";")) (expression_statement "param_1[0x97] = (int)pbVar12 - uVar5;" (assignment_expression "param_1[0x97] = (int)pbVar12 - uVar5" (subscript_expression "param_1[0x97]" (identifier "param_1") ([ "[") (number_literal "0x97") (] "]")) (= "=") (binary_expression "(int)pbVar12 - uVar5" (cast_expression "(int)pbVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar12")) (- "-") (identifier "uVar5"))) (; ";")) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" (identifier "puVar13") (= "=") (identifier "auStack_6c")) (; ";")) (goto_statement "goto LAB_00023160;" (goto "goto") (statement_identifier "LAB_00023160") (; ";")) (} "}"))) (labeled_statement "LAB_00023107:\n  param_1[0x9c] = uVar19;" (statement_identifier "LAB_00023107") (: ":") (expression_statement "param_1[0x9c] = uVar19;" (assignment_expression "param_1[0x9c] = uVar19" (subscript_expression "param_1[0x9c]" (identifier "param_1") ([ "[") (number_literal "0x9c") (] "]")) (= "=") (identifier "uVar19")) (; ";"))) (expression_statement "param_1[0x9d] = 1;" (assignment_expression "param_1[0x9d] = 1" (subscript_expression "param_1[0x9d]" (identifier "param_1") ([ "[") (number_literal "0x9d") (] "]")) (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_00023117:\n  puVar14 = auStack_6c;" (statement_identifier "LAB_00023117") (: ":") (expression_statement "puVar14 = auStack_6c;" (assignment_expression "puVar14 = auStack_6c" (identifier "puVar14") (= "=") (identifier "auStack_6c")) (; ";"))) (expression_statement "puVar18 = auStack_6c;" (assignment_expression "puVar18 = auStack_6c" (identifier "puVar18") (= "=") (identifier "auStack_6c")) (; ";")) (expression_statement "puVar16 = auStack_6c;" (assignment_expression "puVar16 = auStack_6c" (identifier "puVar16") (= "=") (identifier "auStack_6c")) (; ";")) (expression_statement "puVar17 = auStack_6c;" (assignment_expression "puVar17 = auStack_6c" (identifier "puVar17") (= "=") (identifier "auStack_6c")) (; ";")) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" (identifier "puVar13") (= "=") (identifier "auStack_6c")) (; ";")) (expression_statement "uVar19 = (uint)*pbVar7;" (assignment_expression "uVar19 = (uint)*pbVar7" (identifier "uVar19") (= "=") (binary_expression "(uint)*pbVar7" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar7"))) (; ";")) (expression_statement "local_5c[0] = pbVar7 + 1;" (assignment_expression "local_5c[0] = pbVar7 + 1" (subscript_expression "local_5c[0]" (identifier "local_5c") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "pbVar7 + 1" (identifier "pbVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_1[0x96] = (uint)local_5c[0];" (assignment_expression "param_1[0x96] = (uint)local_5c[0]" (subscript_expression "param_1[0x96]" (identifier "param_1") ([ "[") (number_literal "0x96") (] "]")) (= "=") (cast_expression "(uint)local_5c[0]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "local_5c[0]" (identifier "local_5c") ([ "[") (number_literal "0") (] "]")))) (; ";")) (expression_statement "local_60 = pbVar12 + -1;" (assignment_expression "local_60 = pbVar12 + -1" (identifier "local_60") (= "=") (binary_expression "pbVar12 + -1" (identifier "pbVar12") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "param_1[0x97] = (uint)local_60;" (assignment_expression "param_1[0x97] = (uint)local_60" (subscript_expression "param_1[0x97]" (identifier "param_1") ([ "[") (number_literal "0x97") (] "]")) (= "=") (cast_expression "(uint)local_60" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_60"))) (; ";")) (if_statement "if (0x72 < (byte)(uVar19 - 10)) goto LAB_00023150;" (if "if") (parenthesized_expression "(0x72 < (byte)(uVar19 - 10))" (( "(") (binary_expression "0x72 < (byte)(uVar19 - 10)" (number_literal "0x72") (< "<") (call_expression "(byte)(uVar19 - 10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar19 - 10)" (( "(") (binary_expression "uVar19 - 10" (identifier "uVar19") (- "-") (number_literal "10")) () ")")))) () ")")) (goto_statement "goto LAB_00023150;" (goto "goto") (statement_identifier "LAB_00023150") (; ";"))) (expression_statement "uVar5 = uVar19 - 10 & 0xff;" (assignment_expression "uVar5 = uVar19 - 10 & 0xff" (identifier "uVar5") (= "=") (binary_expression "uVar19 - 10 & 0xff" (binary_expression "uVar19 - 10" (identifier "uVar19") (- "-") (number_literal "10")) (& "&") (number_literal "0xff"))) (; ";")) (switch_statement "switch(uVar5) {\n  case 0:\n    if (((*param_1 & 0x400) != 0) || ((*param_1 & 0x800) == 0)) {\ncode_r0x0002359b:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 10;\n      puVar13 = auStack_6c;\n      break;\n    }\n    goto code_r0x000238f1;\n  default:\n    goto LAB_00023150;\n  case 0x1a:\n    uVar19 = *param_1;\n    if ((((((uVar19 & 8) != 0) || (local_60 == (byte *)0x0)) ||\n         ((pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)))) ||\n        ((pbVar12 = (byte *)((uVar19 >> 0xf ^ 1) & 1), pbVar12 < local_60 &&\n         (local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c)))) ||\n       (((uVar19 & 0x800) != 0 && (pbVar7[1] == 10)))) {\ncode_r0x00023868:\n      param_1[0x98] = 0x10d;\n      uVar19 = 0x10d;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x00023673:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x24;\n    puVar13 = auStack_6c;\n    break;\n  case 0x1d:\ncode_r0x00023690:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x27;\n    puVar13 = auStack_6c;\n    break;\n  case 0x1e:\n    bVar21 = 0;\ncode_r0x00023262:\n    if ((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) {\n      param_1[0x99] = param_1[0x99] + 1;\n      uVar19 = 0x107;\n      *(byte *)(param_1 + 0xa3) = 1;\n      param_1[0x98] = 0x107;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x28;\n    puVar13 = auStack_6c;\n    break;\n  case 0x1f:\n    bVar21 = 0;\ncode_r0x0002351a:\n    if (((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) &&\n       ((param_1[0x99] != 0 || ((*param_1 & 0x20000) == 0)))) {\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x108;\n      param_1[0x99] = param_1[0x99] - 1;\n      param_1[0x98] = 0x108;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x29;\n    puVar13 = auStack_6c;\n    break;\n  case 0x20:\n    if (((*param_1 & 0x10) != 0) || ((byte)param_1[0xa3] == 0)) {\n      param_1[0x98] = 0x102;\n      uVar19 = 0x102;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x00023894:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x2a;\n    puVar13 = auStack_6c;\n    break;\n  case 0x21:\n    bVar21 = 0;\ncode_r0x000234d2:\n    uVar19 = *param_1;\n    if ((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))) {\n      param_1[0x98] = 0x103;\n      uVar19 = 0x103;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x2b;\n    puVar13 = auStack_6c;\n    break;\n  case 0x24:\n    bVar4 = false;\ncode_r0x0002336a:\n    bVar21 = (byte)param_1[0xcc];\n    if (!bVar4) {\n      uVar5 = param_1[0x95];\n      if (uVar5 == 0xffffffff) {\n        local_40[0] = 0xffffffff;\n        local_40[1] = 0xffffffff;\n        local_40[2] = 0xffffffff;\n        local_40[3] = 0xffffffff;\n        local_40[4] = 0xffffffff;\n        local_40[5] = 0xffffffff;\n        local_40[6] = 0xffffffff;\n        local_40[7] = 0xffffffff;\n        if ((*param_1 & 0x40) == 0) {\n          local_40[0] = 0xfffffbff;\n        }\n        if ((*param_1 & 0x80) != 0) {\n          local_40[0] = local_40[0] & 0xfffffffe;\n        }\n        if (bVar21 != 0) {\n          uVar19 = 0;\n          do {\n            if (param_1[uVar19 + 0x10d] == 0xffffffff) {\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }\n            uVar19 = uVar19 + 1;\n          } while (uVar19 != 0x100);\n        }\n        puStack_70 = (uint *)&UNK_000239cf;\n        uVar5 = FUN_0001e6a0();\n        bVar21 = (byte)param_1[0xcc];\n        param_1[0x95] = uVar5;\n      }\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x10a;\n      if (bVar21 == 0) {\n        uVar19 = uVar5 + 0x114;\n      }\n      param_1[0x98] = uVar19;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    uVar19 = 0x2e;\n    puVar13 = auStack_6c;\n    break;\n  case 0x32:\ncode_r0x000236f8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3c;\n    puVar13 = auStack_6c;\n    break;\n  case 0x34:\ncode_r0x000236e0:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3e;\n    puVar13 = auStack_6c;\n    break;\n  case 0x35:\n    bVar21 = 0;\ncode_r0x000233b2:\n    uVar19 = *param_1;\n    if ((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))) {\n      param_1[0x98] = 0x101;\n      uVar19 = 0x101;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3f;\n    puVar13 = auStack_6c;\n    break;\n  case 0x38:\ncode_r0x00023710:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x42;\n    puVar13 = auStack_6c;\n    break;\n  case 0x49:\n  case 0x69:\n    bVar4 = false;\ncode_r0x0002342a:\n    bVar21 = (byte)param_1[0xcc];\n    puVar13 = auStack_6c;\n    if ((!bVar4) || (puVar13 = auStack_6c, (*param_1 & 0x80000) != 0)) break;\n    if (bVar21 != 0) {\n      pcVar8 = &UNK_0002f468 + (uVar19 == 0x73);\ncode_r0x0002345c:\n      param_1[0x96] = (uint)pcVar8;\n      sVar9 = strlen(pcVar8);\n      param_1[0x97] = sVar9;\n      puStack_70 = (uint *)&UNK_0002347b;\n      uVar19 = FUN_00021f80();\n      *(byte *)(param_1 + 0xa3) = 0;\n      param_1[0x98] = uVar19;\n      param_1[0x96] = (uint)local_5c[0];\n      param_1[0x97] = (uint)local_60;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    uVar5 = 0;\n    do {\n      *(undefined4 *)((int)local_40 + uVar5) = 0;\n      uVar5 = uVar5 + 4;\n    } while (uVar5 < 0x20);\n    puStack_70 = (uint *)&UNK_00023ab3;\n    ppuVar6 = __ctype_b_loc();\n    uVar5 = 0;\n    puVar2 = *ppuVar6;\n    do {\n      if ((*(byte *)((int)puVar2 + uVar5 * 2 + 1) & 0x20) != 0) {\n        local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n      }\n      uVar5 = uVar5 + 1;\n    } while (uVar5 != 0x100);\n    if (uVar19 == 0x53) {\ncode_r0x00023b34:\n      local_40[0] = ~local_40[0];\n      local_40[1] = ~local_40[1];\n      local_40[2] = ~local_40[2];\n      local_40[3] = ~local_40[3];\n      local_40[4] = ~local_40[4];\n      local_40[5] = ~local_40[5];\n      local_40[6] = ~local_40[6];\n      local_40[7] = ~local_40[7];\n    }\ncode_r0x00023ae7:\n    *(byte *)(param_1 + 0xa3) = 0;\n    goto code_r0x000237bd;\n  case 0x51:\n    *(byte *)(param_1 + 0xa3) = 0;\n    puStack_70 = (uint *)&UNK_0002357e;\n    uVar19 = FUN_00021f80();\n    param_1[0x98] = uVar19;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;\n  case 0x52:\n    if (local_60 == (byte *)0x0) {\n      pcVar8 = "unfinished \\ escape";\n      ppbVar15 = &pbStack_74;\n      pbStack_74 = (byte *)0x5;\n      puStack_70 = (uint *)((int)&__DT_PLTGOT + *(int *)(&DAT_0002ef08 + uVar5 * 4));\n      goto code_r0x00023a1b;\n    }\n    pbVar12 = (byte *)param_1[pbVar7[1] + 0x10d];\n    if (pbVar12 == (byte *)0xffffffff) {\n      pbStack_74 = local_60;\n      puStack_70 = param_1 + 0xb2;\n      local_5c[1] = pbVar12;\n      uVar5 = FUN_0002b6f0(auStack_50 + 3,local_5c[0]);\n      if (0xfffffffc < uVar5 - 1) {\n        puVar20 = param_1 + 0xb2;\n        for (iVar10 = 2; iVar10 != 0; iVar10 = iVar10 + -1) {\n          *puVar20 = 0;\n          puVar20 = puVar20 + (uint)bVar21 * -2 + 1;\n        }\n        local_5c[0] = (byte *)param_1[0x96];\n        local_60 = (byte *)param_1[0x97];\n        pbVar12 = local_5c[1];\n        goto code_r0x00023748;\n      }\n      pbVar12 = (byte *)param_1[0x97];\n      param_1[0x9d] = uVar5;\n      param_1[0x9c] = auStack_50[3];\n      pbVar7 = (byte *)param_1[0x96];\n      if (uVar5 != 1) goto code_r0x00023235;\n    }\n    else {\ncode_r0x00023748:\n      param_1[0x9d] = 1;\n      param_1[0x9c] = (uint)pbVar12;\n      pbVar12 = local_60;\n      pbVar7 = local_5c[0];\n    }\n    uVar19 = (uint)*pbVar7;\n    local_5c[0] = pbVar7 + 1;\n    param_1[0x96] = (uint)(pbVar7 + 1);\n    local_60 = pbVar12 + -1;\n    param_1[0x97] = (uint)(pbVar12 + -1);\n    switch(uVar19 - 10 & 0xff) {\n    case 0:\n      goto code_r0x0002359b;\n    case 0x1a:\n      goto code_r0x00023673;\n    case 0x1d:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023868;\n      goto code_r0x00023690;\n    case 0x1e:\n      bVar21 = 1;\n      goto code_r0x00023262;\n    case 0x1f:\n      bVar21 = 1;\n      goto code_r0x0002351a;\n    case 0x20:\n      goto code_r0x00023894;\n    case 0x21:\n      bVar21 = 1;\n      goto code_r0x000234d2;\n    case 0x24:\n      bVar4 = true;\n      goto code_r0x0002336a;\n    case 0x27:\n    case 0x28:\n    case 0x29:\n    case 0x2a:\n    case 0x2b:\n    case 0x2c:\n    case 0x2d:\n    case 0x2e:\n    case 0x2f:\n      if ((*param_1 & 0x4000) == 0) {\n        *(byte *)(param_1 + 0xa3) = 0;\n        uVar19 = 0x112;\n        param_1[0x98] = 0x112;\n        goto LAB_0002318d;\n      }\n    default:\nLAB_00023150:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      break;\n    case 0x32:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10e;\n        uVar19 = 0x10e;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236f8;\n    case 0x34:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10f;\n        uVar19 = 0x10f;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236e0;\n    case 0x35:\n      bVar21 = 1;\n      goto code_r0x000233b2;\n    case 0x38:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x111;\n        uVar19 = 0x111;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x00023710;\n    case 0x49:\n    case 0x69:\n      bVar4 = true;\n      goto code_r0x0002342a;\n    case 0x4d:\n    case 0x6d:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      if ((*param_1 & 0x80000) != 0) break;\n      if (bVar21 != 0) {\n        pcVar8 = &UNK_0002f474 + (uVar19 == 0x77);\n        goto code_r0x0002345c;\n      }\n      uVar5 = 0;\n      do {\n        *(undefined4 *)((int)local_40 + uVar5) = 0;\n        uVar5 = uVar5 + 4;\n      } while (uVar5 < 0x20);\n      uVar5 = 0;\n      do {\n        if (*(byte *)((int)param_1 + uVar5 + 8) == 2) {\n          local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 != 0x100);\n      if (uVar19 == 0x57) goto code_r0x00023b34;\n      goto code_r0x00023ae7;\n    case 0x51:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5b;\n      puVar13 = auStack_6c;\n      break;\n    case 0x52:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5c;\n      puVar13 = auStack_6c;\n      break;\n    case 0x54:\n      goto code_r0x000235d7;\n    case 0x56:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023880;\n      goto code_r0x000236c8;\n    case 0x58:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x110;\n        uVar19 = 0x110;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236a8;\n    case 0x71:\n      bStack_51 = 1;\n      goto code_r0x00023295;\n    case 0x72:\n      bVar21 = 1;\n      goto code_r0x000233fa;\n    }\n    break;\n  case 0x54:\n    if ((((*param_1 & 8) != 0) || (param_1[0x98] - 0x106 < 2)) || (param_1[0x98] == 0xffffffff)) {\ncode_r0x00023880:\n      param_1[0x98] = 0x10c;\n      uVar19 = 0x10c;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x000235d7:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x5e;\n    puVar13 = auStack_6c;\n    break;\n  case 0x56:\ncode_r0x000236c8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x60;\n    puVar13 = auStack_6c;\n    break;\n  case 0x58:\ncode_r0x000236a8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x62;\n    puVar13 = auStack_6c;\n    break;\n  case 0x71:\n    bStack_51 = 0;\ncode_r0x00023295:\n    auStack_50[0] = *param_1;\n    puVar13 = auStack_6c;\n    if ((((auStack_50[0] & 0x200) != 0) &&\n        (puVar13 = auStack_6c, (((byte)(auStack_50[0] >> 0xc) ^ 1) & 1) == bStack_51)) &&\n       (((auStack_50[0] & 0x10) != 0 || (puVar13 = auStack_6c, (byte)param_1[0xa3] == 0)))) {\n      local_5c[1] = pbVar7 + (int)pbVar12;\n      param_1[0x9b] = 0xffffffff;\n      param_1[0x9a] = 0xffffffff;\n      if (local_5c[1] == local_5c[0]) {\ncode_r0x00023b5a:\n        puVar13 = auStack_6c;\n        if (bStack_51 == 0) goto code_r0x00023a30;\n      }\n      else {\n        bVar21 = pbVar7[1];\n        pbVar12 = (byte *)(int)(char)bVar21;\n        if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar7 = (byte *)0xffffffff;\n          local_60 = pbVar12;\n          do {\n            pbVar3 = local_60;\n            if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }\n            pbVar7 = pbVar3 + -0x30;\n            param_1[0x9a] = (uint)pbVar7;\n            local_5c[0] = local_5c[0] + 1;\n            if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }\n            bVar21 = *local_5c[0];\n            local_60 = (byte *)(int)(char)bVar21;\n            pbVar12 = (byte *)(int)(char)bVar21 + -0x30;\n          } while ((byte)pbVar12 < 10);\n          if (bVar21 == 0x2c) {\n            if ((int)pbVar7 < 0) goto code_r0x00023bed;\ncode_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;\n            if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }\n            bVar21 = local_5c[0][1];\n            if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            local_5c[0] = pbVar12;\n            goto code_r0x00023bd8;\n          }\n          param_1[0x9b] = (uint)pbVar7;\n          puVar17 = auStack_6c;\n          if (bStack_51 == 0) goto code_r0x00023a30;\n        }\n        else {\n          if (bVar21 == 0x2c) {\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }\ncode_r0x00023bd8:\n          if (bStack_51 == 0) goto code_r0x00023a3a;\n        }\n        puVar13 = auStack_6c;\n        if (*local_5c[0] == 0x5c) goto code_r0x00023a2b;\n      }\ncode_r0x00023a04:\n      if ((*(uint *)(puVar13 + 0x1c) & 0x200000) == 0) {\n        *(byte **)(puVar13 + -4) = pbVar12;\n        pcVar8 = "invalid content of \\{\\}";\n        ppbVar15 = (byte **)(puVar13 + -8);\n        *(undefined4 *)(puVar13 + -8) = 5;\ncode_r0x00023a1b:\n        while( true ) {\n          *(char **)((int)ppbVar15 + -4) = pcVar8;\n          puVar16 = (undefined1 *)((int)ppbVar15 + -8);\n          *(undefined4 *)((int)ppbVar15 + -8) = 0;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23;\n          uVar11 = dcgettext();\n          *(undefined4 *)((int)ppbVar15 + -8) = uVar11;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b;\n          FUN_0001be40();\n          pbVar12 = extraout_ECX;\ncode_r0x00023a2b:\n          *(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;\n          puVar17 = puVar16;\ncode_r0x00023a30:\n          puVar13 = puVar17;\n          puVar18 = puVar17;\n          if (*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)) break;\ncode_r0x00023a3a:\n          puVar13 = puVar18;\n          if ((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))\n          break;\n          uVar5 = param_1[0x9b];\n          if ((int)uVar5 < 0) {\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }\n          if ((int)uVar5 < (int)uVar19) break;\n          if ((int)uVar5 < 0x8000) goto code_r0x00023a66;\n          pcVar8 = "regular expression too big";\n          *(uint *)(puVar18 + -4) = uVar19;\n          ppbVar15 = (byte **)(puVar18 + -8);\n          *(undefined4 *)(puVar18 + -8) = 5;\n        }\n        goto code_r0x00023a04;\n      }\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x7b;\n    break;\n  case 0x72:\n    bVar21 = 0;\ncode_r0x000233fa:\n    if (((*param_1 & 0x400) != 0) || ((((byte)(*param_1 >> 0xf) ^ 1) & 1) != bVar21)) {\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x7c;\n      puVar13 = auStack_6c;\n      break;\n    }\ncode_r0x000238f1:\n    *(byte *)(param_1 + 0xa3) = 1;\n    uVar19 = 0x106;\n    param_1[0x98] = 0x106;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;\n  }" (switch "switch") (parenthesized_expression "(uVar5)" (( "(") (identifier "uVar5") () ")")) (compound_statement "{\n  case 0:\n    if (((*param_1 & 0x400) != 0) || ((*param_1 & 0x800) == 0)) {\ncode_r0x0002359b:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 10;\n      puVar13 = auStack_6c;\n      break;\n    }\n    goto code_r0x000238f1;\n  default:\n    goto LAB_00023150;\n  case 0x1a:\n    uVar19 = *param_1;\n    if ((((((uVar19 & 8) != 0) || (local_60 == (byte *)0x0)) ||\n         ((pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)))) ||\n        ((pbVar12 = (byte *)((uVar19 >> 0xf ^ 1) & 1), pbVar12 < local_60 &&\n         (local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c)))) ||\n       (((uVar19 & 0x800) != 0 && (pbVar7[1] == 10)))) {\ncode_r0x00023868:\n      param_1[0x98] = 0x10d;\n      uVar19 = 0x10d;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x00023673:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x24;\n    puVar13 = auStack_6c;\n    break;\n  case 0x1d:\ncode_r0x00023690:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x27;\n    puVar13 = auStack_6c;\n    break;\n  case 0x1e:\n    bVar21 = 0;\ncode_r0x00023262:\n    if ((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) {\n      param_1[0x99] = param_1[0x99] + 1;\n      uVar19 = 0x107;\n      *(byte *)(param_1 + 0xa3) = 1;\n      param_1[0x98] = 0x107;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x28;\n    puVar13 = auStack_6c;\n    break;\n  case 0x1f:\n    bVar21 = 0;\ncode_r0x0002351a:\n    if (((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) &&\n       ((param_1[0x99] != 0 || ((*param_1 & 0x20000) == 0)))) {\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x108;\n      param_1[0x99] = param_1[0x99] - 1;\n      param_1[0x98] = 0x108;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x29;\n    puVar13 = auStack_6c;\n    break;\n  case 0x20:\n    if (((*param_1 & 0x10) != 0) || ((byte)param_1[0xa3] == 0)) {\n      param_1[0x98] = 0x102;\n      uVar19 = 0x102;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x00023894:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x2a;\n    puVar13 = auStack_6c;\n    break;\n  case 0x21:\n    bVar21 = 0;\ncode_r0x000234d2:\n    uVar19 = *param_1;\n    if ((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))) {\n      param_1[0x98] = 0x103;\n      uVar19 = 0x103;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x2b;\n    puVar13 = auStack_6c;\n    break;\n  case 0x24:\n    bVar4 = false;\ncode_r0x0002336a:\n    bVar21 = (byte)param_1[0xcc];\n    if (!bVar4) {\n      uVar5 = param_1[0x95];\n      if (uVar5 == 0xffffffff) {\n        local_40[0] = 0xffffffff;\n        local_40[1] = 0xffffffff;\n        local_40[2] = 0xffffffff;\n        local_40[3] = 0xffffffff;\n        local_40[4] = 0xffffffff;\n        local_40[5] = 0xffffffff;\n        local_40[6] = 0xffffffff;\n        local_40[7] = 0xffffffff;\n        if ((*param_1 & 0x40) == 0) {\n          local_40[0] = 0xfffffbff;\n        }\n        if ((*param_1 & 0x80) != 0) {\n          local_40[0] = local_40[0] & 0xfffffffe;\n        }\n        if (bVar21 != 0) {\n          uVar19 = 0;\n          do {\n            if (param_1[uVar19 + 0x10d] == 0xffffffff) {\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }\n            uVar19 = uVar19 + 1;\n          } while (uVar19 != 0x100);\n        }\n        puStack_70 = (uint *)&UNK_000239cf;\n        uVar5 = FUN_0001e6a0();\n        bVar21 = (byte)param_1[0xcc];\n        param_1[0x95] = uVar5;\n      }\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x10a;\n      if (bVar21 == 0) {\n        uVar19 = uVar5 + 0x114;\n      }\n      param_1[0x98] = uVar19;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    uVar19 = 0x2e;\n    puVar13 = auStack_6c;\n    break;\n  case 0x32:\ncode_r0x000236f8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3c;\n    puVar13 = auStack_6c;\n    break;\n  case 0x34:\ncode_r0x000236e0:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3e;\n    puVar13 = auStack_6c;\n    break;\n  case 0x35:\n    bVar21 = 0;\ncode_r0x000233b2:\n    uVar19 = *param_1;\n    if ((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))) {\n      param_1[0x98] = 0x101;\n      uVar19 = 0x101;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3f;\n    puVar13 = auStack_6c;\n    break;\n  case 0x38:\ncode_r0x00023710:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x42;\n    puVar13 = auStack_6c;\n    break;\n  case 0x49:\n  case 0x69:\n    bVar4 = false;\ncode_r0x0002342a:\n    bVar21 = (byte)param_1[0xcc];\n    puVar13 = auStack_6c;\n    if ((!bVar4) || (puVar13 = auStack_6c, (*param_1 & 0x80000) != 0)) break;\n    if (bVar21 != 0) {\n      pcVar8 = &UNK_0002f468 + (uVar19 == 0x73);\ncode_r0x0002345c:\n      param_1[0x96] = (uint)pcVar8;\n      sVar9 = strlen(pcVar8);\n      param_1[0x97] = sVar9;\n      puStack_70 = (uint *)&UNK_0002347b;\n      uVar19 = FUN_00021f80();\n      *(byte *)(param_1 + 0xa3) = 0;\n      param_1[0x98] = uVar19;\n      param_1[0x96] = (uint)local_5c[0];\n      param_1[0x97] = (uint)local_60;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    uVar5 = 0;\n    do {\n      *(undefined4 *)((int)local_40 + uVar5) = 0;\n      uVar5 = uVar5 + 4;\n    } while (uVar5 < 0x20);\n    puStack_70 = (uint *)&UNK_00023ab3;\n    ppuVar6 = __ctype_b_loc();\n    uVar5 = 0;\n    puVar2 = *ppuVar6;\n    do {\n      if ((*(byte *)((int)puVar2 + uVar5 * 2 + 1) & 0x20) != 0) {\n        local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n      }\n      uVar5 = uVar5 + 1;\n    } while (uVar5 != 0x100);\n    if (uVar19 == 0x53) {\ncode_r0x00023b34:\n      local_40[0] = ~local_40[0];\n      local_40[1] = ~local_40[1];\n      local_40[2] = ~local_40[2];\n      local_40[3] = ~local_40[3];\n      local_40[4] = ~local_40[4];\n      local_40[5] = ~local_40[5];\n      local_40[6] = ~local_40[6];\n      local_40[7] = ~local_40[7];\n    }\ncode_r0x00023ae7:\n    *(byte *)(param_1 + 0xa3) = 0;\n    goto code_r0x000237bd;\n  case 0x51:\n    *(byte *)(param_1 + 0xa3) = 0;\n    puStack_70 = (uint *)&UNK_0002357e;\n    uVar19 = FUN_00021f80();\n    param_1[0x98] = uVar19;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;\n  case 0x52:\n    if (local_60 == (byte *)0x0) {\n      pcVar8 = "unfinished \\ escape";\n      ppbVar15 = &pbStack_74;\n      pbStack_74 = (byte *)0x5;\n      puStack_70 = (uint *)((int)&__DT_PLTGOT + *(int *)(&DAT_0002ef08 + uVar5 * 4));\n      goto code_r0x00023a1b;\n    }\n    pbVar12 = (byte *)param_1[pbVar7[1] + 0x10d];\n    if (pbVar12 == (byte *)0xffffffff) {\n      pbStack_74 = local_60;\n      puStack_70 = param_1 + 0xb2;\n      local_5c[1] = pbVar12;\n      uVar5 = FUN_0002b6f0(auStack_50 + 3,local_5c[0]);\n      if (0xfffffffc < uVar5 - 1) {\n        puVar20 = param_1 + 0xb2;\n        for (iVar10 = 2; iVar10 != 0; iVar10 = iVar10 + -1) {\n          *puVar20 = 0;\n          puVar20 = puVar20 + (uint)bVar21 * -2 + 1;\n        }\n        local_5c[0] = (byte *)param_1[0x96];\n        local_60 = (byte *)param_1[0x97];\n        pbVar12 = local_5c[1];\n        goto code_r0x00023748;\n      }\n      pbVar12 = (byte *)param_1[0x97];\n      param_1[0x9d] = uVar5;\n      param_1[0x9c] = auStack_50[3];\n      pbVar7 = (byte *)param_1[0x96];\n      if (uVar5 != 1) goto code_r0x00023235;\n    }\n    else {\ncode_r0x00023748:\n      param_1[0x9d] = 1;\n      param_1[0x9c] = (uint)pbVar12;\n      pbVar12 = local_60;\n      pbVar7 = local_5c[0];\n    }\n    uVar19 = (uint)*pbVar7;\n    local_5c[0] = pbVar7 + 1;\n    param_1[0x96] = (uint)(pbVar7 + 1);\n    local_60 = pbVar12 + -1;\n    param_1[0x97] = (uint)(pbVar12 + -1);\n    switch(uVar19 - 10 & 0xff) {\n    case 0:\n      goto code_r0x0002359b;\n    case 0x1a:\n      goto code_r0x00023673;\n    case 0x1d:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023868;\n      goto code_r0x00023690;\n    case 0x1e:\n      bVar21 = 1;\n      goto code_r0x00023262;\n    case 0x1f:\n      bVar21 = 1;\n      goto code_r0x0002351a;\n    case 0x20:\n      goto code_r0x00023894;\n    case 0x21:\n      bVar21 = 1;\n      goto code_r0x000234d2;\n    case 0x24:\n      bVar4 = true;\n      goto code_r0x0002336a;\n    case 0x27:\n    case 0x28:\n    case 0x29:\n    case 0x2a:\n    case 0x2b:\n    case 0x2c:\n    case 0x2d:\n    case 0x2e:\n    case 0x2f:\n      if ((*param_1 & 0x4000) == 0) {\n        *(byte *)(param_1 + 0xa3) = 0;\n        uVar19 = 0x112;\n        param_1[0x98] = 0x112;\n        goto LAB_0002318d;\n      }\n    default:\nLAB_00023150:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      break;\n    case 0x32:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10e;\n        uVar19 = 0x10e;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236f8;\n    case 0x34:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10f;\n        uVar19 = 0x10f;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236e0;\n    case 0x35:\n      bVar21 = 1;\n      goto code_r0x000233b2;\n    case 0x38:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x111;\n        uVar19 = 0x111;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x00023710;\n    case 0x49:\n    case 0x69:\n      bVar4 = true;\n      goto code_r0x0002342a;\n    case 0x4d:\n    case 0x6d:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      if ((*param_1 & 0x80000) != 0) break;\n      if (bVar21 != 0) {\n        pcVar8 = &UNK_0002f474 + (uVar19 == 0x77);\n        goto code_r0x0002345c;\n      }\n      uVar5 = 0;\n      do {\n        *(undefined4 *)((int)local_40 + uVar5) = 0;\n        uVar5 = uVar5 + 4;\n      } while (uVar5 < 0x20);\n      uVar5 = 0;\n      do {\n        if (*(byte *)((int)param_1 + uVar5 + 8) == 2) {\n          local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 != 0x100);\n      if (uVar19 == 0x57) goto code_r0x00023b34;\n      goto code_r0x00023ae7;\n    case 0x51:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5b;\n      puVar13 = auStack_6c;\n      break;\n    case 0x52:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5c;\n      puVar13 = auStack_6c;\n      break;\n    case 0x54:\n      goto code_r0x000235d7;\n    case 0x56:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023880;\n      goto code_r0x000236c8;\n    case 0x58:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x110;\n        uVar19 = 0x110;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236a8;\n    case 0x71:\n      bStack_51 = 1;\n      goto code_r0x00023295;\n    case 0x72:\n      bVar21 = 1;\n      goto code_r0x000233fa;\n    }\n    break;\n  case 0x54:\n    if ((((*param_1 & 8) != 0) || (param_1[0x98] - 0x106 < 2)) || (param_1[0x98] == 0xffffffff)) {\ncode_r0x00023880:\n      param_1[0x98] = 0x10c;\n      uVar19 = 0x10c;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x000235d7:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x5e;\n    puVar13 = auStack_6c;\n    break;\n  case 0x56:\ncode_r0x000236c8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x60;\n    puVar13 = auStack_6c;\n    break;\n  case 0x58:\ncode_r0x000236a8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x62;\n    puVar13 = auStack_6c;\n    break;\n  case 0x71:\n    bStack_51 = 0;\ncode_r0x00023295:\n    auStack_50[0] = *param_1;\n    puVar13 = auStack_6c;\n    if ((((auStack_50[0] & 0x200) != 0) &&\n        (puVar13 = auStack_6c, (((byte)(auStack_50[0] >> 0xc) ^ 1) & 1) == bStack_51)) &&\n       (((auStack_50[0] & 0x10) != 0 || (puVar13 = auStack_6c, (byte)param_1[0xa3] == 0)))) {\n      local_5c[1] = pbVar7 + (int)pbVar12;\n      param_1[0x9b] = 0xffffffff;\n      param_1[0x9a] = 0xffffffff;\n      if (local_5c[1] == local_5c[0]) {\ncode_r0x00023b5a:\n        puVar13 = auStack_6c;\n        if (bStack_51 == 0) goto code_r0x00023a30;\n      }\n      else {\n        bVar21 = pbVar7[1];\n        pbVar12 = (byte *)(int)(char)bVar21;\n        if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar7 = (byte *)0xffffffff;\n          local_60 = pbVar12;\n          do {\n            pbVar3 = local_60;\n            if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }\n            pbVar7 = pbVar3 + -0x30;\n            param_1[0x9a] = (uint)pbVar7;\n            local_5c[0] = local_5c[0] + 1;\n            if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }\n            bVar21 = *local_5c[0];\n            local_60 = (byte *)(int)(char)bVar21;\n            pbVar12 = (byte *)(int)(char)bVar21 + -0x30;\n          } while ((byte)pbVar12 < 10);\n          if (bVar21 == 0x2c) {\n            if ((int)pbVar7 < 0) goto code_r0x00023bed;\ncode_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;\n            if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }\n            bVar21 = local_5c[0][1];\n            if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            local_5c[0] = pbVar12;\n            goto code_r0x00023bd8;\n          }\n          param_1[0x9b] = (uint)pbVar7;\n          puVar17 = auStack_6c;\n          if (bStack_51 == 0) goto code_r0x00023a30;\n        }\n        else {\n          if (bVar21 == 0x2c) {\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }\ncode_r0x00023bd8:\n          if (bStack_51 == 0) goto code_r0x00023a3a;\n        }\n        puVar13 = auStack_6c;\n        if (*local_5c[0] == 0x5c) goto code_r0x00023a2b;\n      }\ncode_r0x00023a04:\n      if ((*(uint *)(puVar13 + 0x1c) & 0x200000) == 0) {\n        *(byte **)(puVar13 + -4) = pbVar12;\n        pcVar8 = "invalid content of \\{\\}";\n        ppbVar15 = (byte **)(puVar13 + -8);\n        *(undefined4 *)(puVar13 + -8) = 5;\ncode_r0x00023a1b:\n        while( true ) {\n          *(char **)((int)ppbVar15 + -4) = pcVar8;\n          puVar16 = (undefined1 *)((int)ppbVar15 + -8);\n          *(undefined4 *)((int)ppbVar15 + -8) = 0;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23;\n          uVar11 = dcgettext();\n          *(undefined4 *)((int)ppbVar15 + -8) = uVar11;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b;\n          FUN_0001be40();\n          pbVar12 = extraout_ECX;\ncode_r0x00023a2b:\n          *(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;\n          puVar17 = puVar16;\ncode_r0x00023a30:\n          puVar13 = puVar17;\n          puVar18 = puVar17;\n          if (*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)) break;\ncode_r0x00023a3a:\n          puVar13 = puVar18;\n          if ((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))\n          break;\n          uVar5 = param_1[0x9b];\n          if ((int)uVar5 < 0) {\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }\n          if ((int)uVar5 < (int)uVar19) break;\n          if ((int)uVar5 < 0x8000) goto code_r0x00023a66;\n          pcVar8 = "regular expression too big";\n          *(uint *)(puVar18 + -4) = uVar19;\n          ppbVar15 = (byte **)(puVar18 + -8);\n          *(undefined4 *)(puVar18 + -8) = 5;\n        }\n        goto code_r0x00023a04;\n      }\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x7b;\n    break;\n  case 0x72:\n    bVar21 = 0;\ncode_r0x000233fa:\n    if (((*param_1 & 0x400) != 0) || ((((byte)(*param_1 >> 0xf) ^ 1) & 1) != bVar21)) {\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x7c;\n      puVar13 = auStack_6c;\n      break;\n    }\ncode_r0x000238f1:\n    *(byte *)(param_1 + 0xa3) = 1;\n    uVar19 = 0x106;\n    param_1[0x98] = 0x106;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;\n  }" ({ "{") (case_statement "case 0:\n    if (((*param_1 & 0x400) != 0) || ((*param_1 & 0x800) == 0)) {\ncode_r0x0002359b:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 10;\n      puVar13 = auStack_6c;\n      break;\n    }\n    goto code_r0x000238f1;" (case "case") (number_literal "0") (: ":") (if_statement "if (((*param_1 & 0x400) != 0) || ((*param_1 & 0x800) == 0)) {\ncode_r0x0002359b:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 10;\n      puVar13 = auStack_6c;\n      break;\n    }" (if "if") (parenthesized_expression "(((*param_1 & 0x400) != 0) || ((*param_1 & 0x800) == 0))" (( "(") (binary_expression "((*param_1 & 0x400) != 0) || ((*param_1 & 0x800) == 0)" (parenthesized_expression "((*param_1 & 0x400) != 0)" (( "(") (binary_expression "(*param_1 & 0x400) != 0" (parenthesized_expression "(*param_1 & 0x400)" (( "(") (binary_expression "*param_1 & 0x400" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (& "&") (number_literal "0x400")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*param_1 & 0x800) == 0)" (( "(") (binary_expression "(*param_1 & 0x800) == 0" (parenthesized_expression "(*param_1 & 0x800)" (( "(") (binary_expression "*param_1 & 0x800" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (& "&") (number_literal "0x800")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\ncode_r0x0002359b:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 10;\n      puVar13 = auStack_6c;\n      break;\n    }" ({ "{") (labeled_statement "code_r0x0002359b:\n      bVar21 = (byte)param_1[0xcc];" (statement_identifier "code_r0x0002359b") (: ":") (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" (identifier "bVar21") (= "=") (cast_expression "(byte)param_1[0xcc]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_1[0xcc]" (identifier "param_1") ([ "[") (number_literal "0xcc") (] "]")))) (; ";"))) (expression_statement "uVar19 = 10;" (assignment_expression "uVar19 = 10" (identifier "uVar19") (= "=") (number_literal "10")) (; ";")) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" (identifier "puVar13") (= "=") (identifier "auStack_6c")) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (goto_statement "goto code_r0x000238f1;" (goto "goto") (statement_identifier "code_r0x000238f1") (; ";"))) (case_statement "default:\n    goto LAB_00023150;" (default "default") (: ":") (goto_statement "goto LAB_00023150;" (goto "goto") (statement_identifier "LAB_00023150") (; ";"))) (case_statement "case 0x1a:\n    uVar19 = *param_1;\n    if ((((((uVar19 & 8) != 0) || (local_60 == (byte *)0x0)) ||\n         ((pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)))) ||\n        ((pbVar12 = (byte *)((uVar19 >> 0xf ^ 1) & 1), pbVar12 < local_60 &&\n         (local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c)))) ||\n       (((uVar19 & 0x800) != 0 && (pbVar7[1] == 10)))) {\ncode_r0x00023868:\n      param_1[0x98] = 0x10d;\n      uVar19 = 0x10d;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x00023673:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x24;\n    puVar13 = auStack_6c;\n    break;" (case "case") (number_literal "0x1a") (: ":") (expression_statement "uVar19 = *param_1;" (assignment_expression "uVar19 = *param_1" (identifier "uVar19") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (if_statement "if ((((((uVar19 & 8) != 0) || (local_60 == (byte *)0x0)) ||\n         ((pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)))) ||\n        ((pbVar12 = (byte *)((uVar19 >> 0xf ^ 1) & 1), pbVar12 < local_60 &&\n         (local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c)))) ||\n       (((uVar19 & 0x800) != 0 && (pbVar7[1] == 10)))) {\ncode_r0x00023868:\n      param_1[0x98] = 0x10d;\n      uVar19 = 0x10d;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" (if "if") (parenthesized_expression "((((((uVar19 & 8) != 0) || (local_60 == (byte *)0x0)) ||\n         ((pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)))) ||\n        ((pbVar12 = (byte *)((uVar19 >> 0xf ^ 1) & 1), pbVar12 < local_60 &&\n         (local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c)))) ||\n       (((uVar19 & 0x800) != 0 && (pbVar7[1] == 10))))" (( "(") (binary_expression "(((((uVar19 & 8) != 0) || (local_60 == (byte *)0x0)) ||\n         ((pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)))) ||\n        ((pbVar12 = (byte *)((uVar19 >> 0xf ^ 1) & 1), pbVar12 < local_60 &&\n         (local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c)))) ||\n       (((uVar19 & 0x800) != 0 && (pbVar7[1] == 10)))" (parenthesized_expression "(((((uVar19 & 8) != 0) || (local_60 == (byte *)0x0)) ||\n         ((pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)))) ||\n        ((pbVar12 = (byte *)((uVar19 >> 0xf ^ 1) & 1), pbVar12 < local_60 &&\n         (local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c))))" (( "(") (binary_expression "((((uVar19 & 8) != 0) || (local_60 == (byte *)0x0)) ||\n         ((pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)))) ||\n        ((pbVar12 = (byte *)((uVar19 >> 0xf ^ 1) & 1), pbVar12 < local_60 &&\n         (local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c)))" (parenthesized_expression "((((uVar19 & 8) != 0) || (local_60 == (byte *)0x0)) ||\n         ((pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29))))" (( "(") (binary_expression "(((uVar19 & 8) != 0) || (local_60 == (byte *)0x0)) ||\n         ((pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)))" (parenthesized_expression "(((uVar19 & 8) != 0) || (local_60 == (byte *)0x0))" (( "(") (binary_expression "((uVar19 & 8) != 0) || (local_60 == (byte *)0x0)" (parenthesized_expression "((uVar19 & 8) != 0)" (( "(") (binary_expression "(uVar19 & 8) != 0" (parenthesized_expression "(uVar19 & 8)" (( "(") (binary_expression "uVar19 & 8" (identifier "uVar19") (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(local_60 == (byte *)0x0)" (( "(") (binary_expression "local_60 == (byte *)0x0" (identifier "local_60") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)))" (( "(") (parenthesized_expression "(pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29))" (( "(") (comma_expression "pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)" (assignment_expression "pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1)" (identifier "pbVar12") (= "=") (cast_expression "(byte *)((uVar19 >> 0xd ^ 1) & 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uVar19 >> 0xd ^ 1) & 1)" (( "(") (binary_expression "(uVar19 >> 0xd ^ 1) & 1" (parenthesized_expression "(uVar19 >> 0xd ^ 1)" (( "(") (binary_expression "uVar19 >> 0xd ^ 1" (binary_expression "uVar19 >> 0xd" (identifier "uVar19") (>> ">>") (number_literal "0xd")) (^ "^") (number_literal "1")) () ")")) (& "&") (number_literal "1")) () ")")))) (, ",") (binary_expression "pbVar12 < local_60 &&\n          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)" (binary_expression "pbVar12 < local_60" (identifier "pbVar12") (< "<") (identifier "local_60")) (&& "&&") (parenthesized_expression "(local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)" (( "(") (binary_expression "local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29" (subscript_expression "local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12]" (subscript_expression "local_5c[0]" (identifier "local_5c") ([ "[") (number_literal "0") (] "]")) ([ "[") (binary_expression "(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12" (call_expression "(uint)(pbVar7[1] == 0x5c)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbVar7[1] == 0x5c)" (( "(") (binary_expression "pbVar7[1] == 0x5c" (subscript_expression "pbVar7[1]" (identifier "pbVar7") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0x5c")) () ")"))) (& "&") (cast_expression "(uint)pbVar12" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pbVar12"))) (] "]")) (== "==") (number_literal "0x29")) () ")")))) () ")")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((pbVar12 = (byte *)((uVar19 >> 0xf ^ 1) & 1), pbVar12 < local_60 &&\n         (local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c)))" (( "(") (parenthesized_expression "(pbVar12 = (byte *)((uVar19 >> 0xf ^ 1) & 1), pbVar12 < local_60 &&\n         (local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c))" (( "(") (comma_expression "pbVar12 = (byte *)((uVar19 >> 0xf ^ 1) & 1), pbVar12 < local_60 &&\n         (local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c)" (assignment_expression "pbVar12 = (byte *)((uVar19 >> 0xf ^ 1) & 1)" (identifier "pbVar12") (= "=") (cast_expression "(byte *)((uVar19 >> 0xf ^ 1) & 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uVar19 >> 0xf ^ 1) & 1)" (( "(") (binary_expression "(uVar19 >> 0xf ^ 1) & 1" (parenthesized_expression "(uVar19 >> 0xf ^ 1)" (( "(") (binary_expression "uVar19 >> 0xf ^ 1" (binary_expression "uVar19 >> 0xf" (identifier "uVar19") (>> ">>") (number_literal "0xf")) (^ "^") (number_literal "1")) () ")")) (& "&") (number_literal "1")) () ")")))) (, ",") (binary_expression "pbVar12 < local_60 &&\n         (local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c)" (binary_expression "pbVar12 < local_60" (identifier "pbVar12") (< "<") (identifier "local_60")) (&& "&&") (parenthesized_expression "(local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c)" (( "(") (binary_expression "local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c" (subscript_expression "local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)]" (subscript_expression "local_5c[0]" (identifier "local_5c") ([ "[") (number_literal "0") (] "]")) ([ "[") (binary_expression "(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)" (cast_expression "(uint)pbVar12" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pbVar12")) (& "&") (call_expression "(uint)(pbVar7[1] == 0x5c)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbVar7[1] == 0x5c)" (( "(") (binary_expression "pbVar7[1] == 0x5c" (subscript_expression "pbVar7[1]" (identifier "pbVar7") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0x5c")) () ")")))) (] "]")) (== "==") (number_literal "0x7c")) () ")")))) () ")")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(((uVar19 & 0x800) != 0 && (pbVar7[1] == 10)))" (( "(") (parenthesized_expression "((uVar19 & 0x800) != 0 && (pbVar7[1] == 10))" (( "(") (binary_expression "(uVar19 & 0x800) != 0 && (pbVar7[1] == 10)" (binary_expression "(uVar19 & 0x800) != 0" (parenthesized_expression "(uVar19 & 0x800)" (( "(") (binary_expression "uVar19 & 0x800" (identifier "uVar19") (& "&") (number_literal "0x800")) () ")")) (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "(pbVar7[1] == 10)" (( "(") (binary_expression "pbVar7[1] == 10" (subscript_expression "pbVar7[1]" (identifier "pbVar7") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "10")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\ncode_r0x00023868:\n      param_1[0x98] = 0x10d;\n      uVar19 = 0x10d;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" ({ "{") (labeled_statement "code_r0x00023868:\n      param_1[0x98] = 0x10d;" (statement_identifier "code_r0x00023868") (: ":") (expression_statement "param_1[0x98] = 0x10d;" (assignment_expression "param_1[0x98] = 0x10d" (subscript_expression "param_1[0x98]" (identifier "param_1") ([ "[") (number_literal "0x98") (] "]")) (= "=") (number_literal "0x10d")) (; ";"))) (expression_statement "uVar19 = 0x10d;" (assignment_expression "uVar19 = 0x10d" (identifier "uVar19") (= "=") (number_literal "0x10d")) (; ";")) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" (identifier "puVar13") (= "=") (identifier "auStack_6c")) (; ";")) (goto_statement "goto LAB_0002318d;" (goto "goto") (statement_identifier "LAB_0002318d") (; ";")) (} "}"))) (labeled_statement "code_r0x00023673:\n    bVar21 = (byte)param_1[0xcc];" (statement_identifier "code_r0x00023673") (: ":") (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" (identifier "bVar21") (= "=") (cast_expression "(byte)param_1[0xcc]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_1[0xcc]" (identifier "param_1") ([ "[") (number_literal "0xcc") (] "]")))) (; ";"))) (expression_statement "uVar19 = 0x24;" (assignment_expression "uVar19 = 0x24" (identifier "uVar19") (= "=") (number_literal "0x24")) (; ";")) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" (identifier "puVar13") (= "=") (identifier "auStack_6c")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x1d:\ncode_r0x00023690:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x27;\n    puVar13 = auStack_6c;\n    break;" (case "case") (number_literal "0x1d") (: ":") (labeled_statement "code_r0x00023690:\n    bVar21 = (byte)param_1[0xcc];" (statement_identifier "code_r0x00023690") (: ":") (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" (identifier "bVar21") (= "=") (cast_expression "(byte)param_1[0xcc]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_1[0xcc]" (identifier "param_1") ([ "[") (number_literal "0xcc") (] "]")))) (; ";"))) (expression_statement "uVar19 = 0x27;" (assignment_expression "uVar19 = 0x27" (identifier "uVar19") (= "=") (number_literal "0x27")) (; ";")) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" (identifier "puVar13") (= "=") (identifier "auStack_6c")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x1e:\n    bVar21 = 0;\ncode_r0x00023262:\n    if ((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) {\n      param_1[0x99] = param_1[0x99] + 1;\n      uVar19 = 0x107;\n      *(byte *)(param_1 + 0xa3) = 1;\n      param_1[0x98] = 0x107;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x28;\n    puVar13 = auStack_6c;\n    break;" (case "case") (number_literal "0x1e") (: ":") (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" (identifier "bVar21") (= "=") (number_literal "0")) (; ";")) (labeled_statement "code_r0x00023262:\n    if ((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) {\n      param_1[0x99] = param_1[0x99] + 1;\n      uVar19 = 0x107;\n      *(byte *)(param_1 + 0xa3) = 1;\n      param_1[0x98] = 0x107;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" (statement_identifier "code_r0x00023262") (: ":") (if_statement "if ((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) {\n      param_1[0x99] = param_1[0x99] + 1;\n      uVar19 = 0x107;\n      *(byte *)(param_1 + 0xa3) = 1;\n      param_1[0x98] = 0x107;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" (if "if") (parenthesized_expression "((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21)" (( "(") (binary_expression "(((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21" (parenthesized_expression "(((byte)(*param_1 >> 0xd) ^ 1) & 1)" (( "(") (binary_expression "((byte)(*param_1 >> 0xd) ^ 1) & 1" (parenthesized_expression "((byte)(*param_1 >> 0xd) ^ 1)" (( "(") (binary_expression "(byte)(*param_1 >> 0xd) ^ 1" (call_expression "(byte)(*param_1 >> 0xd)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(*param_1 >> 0xd)" (( "(") (binary_expression "*param_1 >> 0xd" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (>> ">>") (number_literal "0xd")) () ")"))) (^ "^") (number_literal "1")) () ")")) (& "&") (number_literal "1")) () ")")) (== "==") (identifier "bVar21")) () ")")) (compound_statement "{\n      param_1[0x99] = param_1[0x99] + 1;\n      uVar19 = 0x107;\n      *(byte *)(param_1 + 0xa3) = 1;\n      param_1[0x98] = 0x107;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" ({ "{") (expression_statement "param_1[0x99] = param_1[0x99] + 1;" (assignment_expression "param_1[0x99] = param_1[0x99] + 1" (subscript_expression "param_1[0x99]" (identifier "param_1") ([ "[") (number_literal "0x99") (] "]")) (= "=") (binary_expression "param_1[0x99] + 1" (subscript_expression "param_1[0x99]" (identifier "param_1") ([ "[") (number_literal "0x99") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar19 = 0x107;" (assignment_expression "uVar19 = 0x107" (identifier "uVar19") (= "=") (number_literal "0x107")) (; ";")) (expression_statement "*(byte *)(param_1 + 0xa3) = 1;" (assignment_expression "*(byte *)(param_1 + 0xa3) = 1" (pointer_expression "*(byte *)(param_1 + 0xa3)" (* "*") (cast_expression "(byte *)(param_1 + 0xa3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xa3)" (( "(") (binary_expression "param_1 + 0xa3" (identifier "param_1") (+ "+") (number_literal "0xa3")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "param_1[0x98] = 0x107;" (assignment_expression "param_1[0x98] = 0x107" (subscript_expression "param_1[0x98]" (identifier "param_1") ([ "[") (number_literal "0x98") (] "]")) (= "=") (number_literal "0x107")) (; ";")) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" (identifier "puVar13") (= "=") (identifier "auStack_6c")) (; ";")) (goto_statement "goto LAB_0002318d;" (goto "goto") (statement_identifier "LAB_0002318d") (; ";")) (} "}")))) (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" (identifier "bVar21") (= "=") (cast_expression "(byte)param_1[0xcc]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_1[0xcc]" (identifier "param_1") ([ "[") (number_literal "0xcc") (] "]")))) (; ";")) (expression_statement "uVar19 = 0x28;" (assignment_expression "uVar19 = 0x28" (identifier "uVar19") (= "=") (number_literal "0x28")) (; ";")) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" (identifier "puVar13") (= "=") (identifier "auStack_6c")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x1f:\n    bVar21 = 0;\ncode_r0x0002351a:\n    if (((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) &&\n       ((param_1[0x99] != 0 || ((*param_1 & 0x20000) == 0)))) {\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x108;\n      param_1[0x99] = param_1[0x99] - 1;\n      param_1[0x98] = 0x108;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x29;\n    puVar13 = auStack_6c;\n    break;" (case "case") (number_literal "0x1f") (: ":") (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" (identifier "bVar21") (= "=") (number_literal "0")) (; ";")) (labeled_statement "code_r0x0002351a:\n    if (((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) &&\n       ((param_1[0x99] != 0 || ((*param_1 & 0x20000) == 0)))) {\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x108;\n      param_1[0x99] = param_1[0x99] - 1;\n      param_1[0x98] = 0x108;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" (statement_identifier "code_r0x0002351a") (: ":") (if_statement "if (((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) &&\n       ((param_1[0x99] != 0 || ((*param_1 & 0x20000) == 0)))) {\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x108;\n      param_1[0x99] = param_1[0x99] - 1;\n      param_1[0x98] = 0x108;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" (if "if") (parenthesized_expression "(((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) &&\n       ((param_1[0x99] != 0 || ((*param_1 & 0x20000) == 0))))" (( "(") (binary_expression "((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) &&\n       ((param_1[0x99] != 0 || ((*param_1 & 0x20000) == 0)))" (parenthesized_expression "((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21)" (( "(") (binary_expression "(((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21" (parenthesized_expression "(((byte)(*param_1 >> 0xd) ^ 1) & 1)" (( "(") (binary_expression "((byte)(*param_1 >> 0xd) ^ 1) & 1" (parenthesized_expression "((byte)(*param_1 >> 0xd) ^ 1)" (( "(") (binary_expression "(byte)(*param_1 >> 0xd) ^ 1" (call_expression "(byte)(*param_1 >> 0xd)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(*param_1 >> 0xd)" (( "(") (binary_expression "*param_1 >> 0xd" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (>> ">>") (number_literal "0xd")) () ")"))) (^ "^") (number_literal "1")) () ")")) (& "&") (number_literal "1")) () ")")) (== "==") (identifier "bVar21")) () ")")) (&& "&&") (parenthesized_expression "((param_1[0x99] != 0 || ((*param_1 & 0x20000) == 0)))" (( "(") (parenthesized_expression "(param_1[0x99] != 0 || ((*param_1 & 0x20000) == 0))" (( "(") (binary_expression "param_1[0x99] != 0 || ((*param_1 & 0x20000) == 0)" (binary_expression "param_1[0x99] != 0" (subscript_expression "param_1[0x99]" (identifier "param_1") ([ "[") (number_literal "0x99") (] "]")) (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "((*param_1 & 0x20000) == 0)" (( "(") (binary_expression "(*param_1 & 0x20000) == 0" (parenthesized_expression "(*param_1 & 0x20000)" (( "(") (binary_expression "*param_1 & 0x20000" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (& "&") (number_literal "0x20000")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x108;\n      param_1[0x99] = param_1[0x99] - 1;\n      param_1[0x98] = 0x108;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" ({ "{") (expression_statement "*(byte *)(param_1 + 0xa3) = 0;" (assignment_expression "*(byte *)(param_1 + 0xa3) = 0" (pointer_expression "*(byte *)(param_1 + 0xa3)" (* "*") (cast_expression "(byte *)(param_1 + 0xa3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xa3)" (( "(") (binary_expression "param_1 + 0xa3" (identifier "param_1") (+ "+") (number_literal "0xa3")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar19 = 0x108;" (assignment_expression "uVar19 = 0x108" (identifier "uVar19") (= "=") (number_literal "0x108")) (; ";")) (expression_statement "param_1[0x99] = param_1[0x99] - 1;" (assignment_expression "param_1[0x99] = param_1[0x99] - 1" (subscript_expression "param_1[0x99]" (identifier "param_1") ([ "[") (number_literal "0x99") (] "]")) (= "=") (binary_expression "param_1[0x99] - 1" (subscript_expression "param_1[0x99]" (identifier "param_1") ([ "[") (number_literal "0x99") (] "]")) (- "-") (number_literal "1"))) (; ";")) (expression_statement "param_1[0x98] = 0x108;" (assignment_expression "param_1[0x98] = 0x108" (subscript_expression "param_1[0x98]" (identifier "param_1") ([ "[") (number_literal "0x98") (] "]")) (= "=") (number_literal "0x108")) (; ";")) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" (identifier "puVar13") (= "=") (identifier "auStack_6c")) (; ";")) (goto_statement "goto LAB_0002318d;" (goto "goto") (statement_identifier "LAB_0002318d") (; ";")) (} "}")))) (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" (identifier "bVar21") (= "=") (cast_expression "(byte)param_1[0xcc]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_1[0xcc]" (identifier "param_1") ([ "[") (number_literal "0xcc") (] "]")))) (; ";")) (expression_statement "uVar19 = 0x29;" (assignment_expression "uVar19 = 0x29" (identifier "uVar19") (= "=") (number_literal "0x29")) (; ";")) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" (identifier "puVar13") (= "=") (identifier "auStack_6c")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x20:\n    if (((*param_1 & 0x10) != 0) || ((byte)param_1[0xa3] == 0)) {\n      param_1[0x98] = 0x102;\n      uVar19 = 0x102;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x00023894:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x2a;\n    puVar13 = auStack_6c;\n    break;" (case "case") (number_literal "0x20") (: ":") (if_statement "if (((*param_1 & 0x10) != 0) || ((byte)param_1[0xa3] == 0)) {\n      param_1[0x98] = 0x102;\n      uVar19 = 0x102;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" (if "if") (parenthesized_expression "(((*param_1 & 0x10) != 0) || ((byte)param_1[0xa3] == 0))" (( "(") (binary_expression "((*param_1 & 0x10) != 0) || ((byte)param_1[0xa3] == 0)" (parenthesized_expression "((*param_1 & 0x10) != 0)" (( "(") (binary_expression "(*param_1 & 0x10) != 0" (parenthesized_expression "(*param_1 & 0x10)" (( "(") (binary_expression "*param_1 & 0x10" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((byte)param_1[0xa3] == 0)" (( "(") (binary_expression "(byte)param_1[0xa3] == 0" (cast_expression "(byte)param_1[0xa3]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_1[0xa3]" (identifier "param_1") ([ "[") (number_literal "0xa3") (] "]"))) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      param_1[0x98] = 0x102;\n      uVar19 = 0x102;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" ({ "{") (expression_statement "param_1[0x98] = 0x102;" (assignment_expression "param_1[0x98] = 0x102" (subscript_expression "param_1[0x98]" (identifier "param_1") ([ "[") (number_literal "0x98") (] "]")) (= "=") (number_literal "0x102")) (; ";")) (expression_statement "uVar19 = 0x102;" (assignment_expression "uVar19 = 0x102" (identifier "uVar19") (= "=") (number_literal "0x102")) (; ";")) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" (identifier "puVar13") (= "=") (identifier "auStack_6c")) (; ";")) (goto_statement "goto LAB_0002318d;" (goto "goto") (statement_identifier "LAB_0002318d") (; ";")) (} "}"))) (labeled_statement "code_r0x00023894:\n    bVar21 = (byte)param_1[0xcc];" (statement_identifier "code_r0x00023894") (: ":") (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" (identifier "bVar21") (= "=") (cast_expression "(byte)param_1[0xcc]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_1[0xcc]" (identifier "param_1") ([ "[") (number_literal "0xcc") (] "]")))) (; ";"))) (expression_statement "uVar19 = 0x2a;" (assignment_expression "uVar19 = 0x2a" (identifier "uVar19") (= "=") (number_literal "0x2a")) (; ";")) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" (identifier "puVar13") (= "=") (identifier "auStack_6c")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x21:\n    bVar21 = 0;\ncode_r0x000234d2:\n    uVar19 = *param_1;\n    if ((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))) {\n      param_1[0x98] = 0x103;\n      uVar19 = 0x103;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x2b;\n    puVar13 = auStack_6c;\n    break;" (case "case") (number_literal "0x21") (: ":") (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" (identifier "bVar21") (= "=") (number_literal "0")) (; ";")) (labeled_statement "code_r0x000234d2:\n    uVar19 = *param_1;" (statement_identifier "code_r0x000234d2") (: ":") (expression_statement "uVar19 = *param_1;" (assignment_expression "uVar19 = *param_1" (identifier "uVar19") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";"))) (if_statement "if ((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))) {\n      param_1[0x98] = 0x103;\n      uVar19 = 0x103;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" (if "if") (parenthesized_expression "((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0))))" (( "(") (binary_expression "(((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))" (parenthesized_expression "(((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21))" (( "(") (binary_expression "((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)" (parenthesized_expression "((uVar19 & 0x400) == 0)" (( "(") (binary_expression "(uVar19 & 0x400) == 0" (parenthesized_expression "(uVar19 & 0x400)" (( "(") (binary_expression "uVar19 & 0x400" (identifier "uVar19") (& "&") (number_literal "0x400")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(((byte)(uVar19 >> 1) & 1) == bVar21)" (( "(") (binary_expression "((byte)(uVar19 >> 1) & 1) == bVar21" (parenthesized_expression "((byte)(uVar19 >> 1) & 1)" (( "(") (binary_expression "(byte)(uVar19 >> 1) & 1" (call_expression "(byte)(uVar19 >> 1)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar19 >> 1)" (( "(") (binary_expression "uVar19 >> 1" (identifier "uVar19") (>> ">>") (number_literal "1")) () ")"))) (& "&") (number_literal "1")) () ")")) (== "==") (identifier "bVar21")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))" (( "(") (parenthesized_expression "((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0))" (( "(") (binary_expression "(uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)" (binary_expression "(uVar19 & 0x10) != 0" (parenthesized_expression "(uVar19 & 0x10)" (( "(") (binary_expression "uVar19 & 0x10" (identifier "uVar19") (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "((byte)param_1[0xa3] == 0)" (( "(") (binary_expression "(byte)param_1[0xa3] == 0" (cast_expression "(byte)param_1[0xa3]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_1[0xa3]" (identifier "param_1") ([ "[") (number_literal "0xa3") (] "]"))) (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n      param_1[0x98] = 0x103;\n      uVar19 = 0x103;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" ({ "{") (expression_statement "param_1[0x98] = 0x103;" (assignment_expression "param_1[0x98] = 0x103" (subscript_expression "param_1[0x98]" (identifier "param_1") ([ "[") (number_literal "0x98") (] "]")) (= "=") (number_literal "0x103")) (; ";")) (expression_statement "uVar19 = 0x103;" (assignment_expression "uVar19 = 0x103" (identifier "uVar19") (= "=") (number_literal "0x103")) (; ";")) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" (identifier "puVar13") (= "=") (identifier "auStack_6c")) (; ";")) (goto_statement "goto LAB_0002318d;" (goto "goto") (statement_identifier "LAB_0002318d") (; ";")) (} "}"))) (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" (identifier "bVar21") (= "=") (cast_expression "(byte)param_1[0xcc]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_1[0xcc]" (identifier "param_1") ([ "[") (number_literal "0xcc") (] "]")))) (; ";")) (expression_statement "uVar19 = 0x2b;" (assignment_expression "uVar19 = 0x2b" (identifier "uVar19") (= "=") (number_literal "0x2b")) (; ";")) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" (identifier "puVar13") (= "=") (identifier "auStack_6c")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x24:\n    bVar4 = false;\ncode_r0x0002336a:\n    bVar21 = (byte)param_1[0xcc];\n    if (!bVar4) {\n      uVar5 = param_1[0x95];\n      if (uVar5 == 0xffffffff) {\n        local_40[0] = 0xffffffff;\n        local_40[1] = 0xffffffff;\n        local_40[2] = 0xffffffff;\n        local_40[3] = 0xffffffff;\n        local_40[4] = 0xffffffff;\n        local_40[5] = 0xffffffff;\n        local_40[6] = 0xffffffff;\n        local_40[7] = 0xffffffff;\n        if ((*param_1 & 0x40) == 0) {\n          local_40[0] = 0xfffffbff;\n        }\n        if ((*param_1 & 0x80) != 0) {\n          local_40[0] = local_40[0] & 0xfffffffe;\n        }\n        if (bVar21 != 0) {\n          uVar19 = 0;\n          do {\n            if (param_1[uVar19 + 0x10d] == 0xffffffff) {\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }\n            uVar19 = uVar19 + 1;\n          } while (uVar19 != 0x100);\n        }\n        puStack_70 = (uint *)&UNK_000239cf;\n        uVar5 = FUN_0001e6a0();\n        bVar21 = (byte)param_1[0xcc];\n        param_1[0x95] = uVar5;\n      }\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x10a;\n      if (bVar21 == 0) {\n        uVar19 = uVar5 + 0x114;\n      }\n      param_1[0x98] = uVar19;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    uVar19 = 0x2e;\n    puVar13 = auStack_6c;\n    break;" (case "case") (number_literal "0x24") (: ":") (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" (identifier "bVar4") (= "=") (false "false")) (; ";")) (labeled_statement "code_r0x0002336a:\n    bVar21 = (byte)param_1[0xcc];" (statement_identifier "code_r0x0002336a") (: ":") (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" (identifier "bVar21") (= "=") (cast_expression "(byte)param_1[0xcc]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_1[0xcc]" (identifier "param_1") ([ "[") (number_literal "0xcc") (] "]")))) (; ";"))) (if_statement "if (!bVar4) {\n      uVar5 = param_1[0x95];\n      if (uVar5 == 0xffffffff) {\n        local_40[0] = 0xffffffff;\n        local_40[1] = 0xffffffff;\n        local_40[2] = 0xffffffff;\n        local_40[3] = 0xffffffff;\n        local_40[4] = 0xffffffff;\n        local_40[5] = 0xffffffff;\n        local_40[6] = 0xffffffff;\n        local_40[7] = 0xffffffff;\n        if ((*param_1 & 0x40) == 0) {\n          local_40[0] = 0xfffffbff;\n        }\n        if ((*param_1 & 0x80) != 0) {\n          local_40[0] = local_40[0] & 0xfffffffe;\n        }\n        if (bVar21 != 0) {\n          uVar19 = 0;\n          do {\n            if (param_1[uVar19 + 0x10d] == 0xffffffff) {\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }\n            uVar19 = uVar19 + 1;\n          } while (uVar19 != 0x100);\n        }\n        puStack_70 = (uint *)&UNK_000239cf;\n        uVar5 = FUN_0001e6a0();\n        bVar21 = (byte)param_1[0xcc];\n        param_1[0x95] = uVar5;\n      }\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x10a;\n      if (bVar21 == 0) {\n        uVar19 = uVar5 + 0x114;\n      }\n      param_1[0x98] = uVar19;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" (if "if") (parenthesized_expression "(!bVar4)" (( "(") (unary_expression "!bVar4" (! "!") (identifier "bVar4")) () ")")) (compound_statement "{\n      uVar5 = param_1[0x95];\n      if (uVar5 == 0xffffffff) {\n        local_40[0] = 0xffffffff;\n        local_40[1] = 0xffffffff;\n        local_40[2] = 0xffffffff;\n        local_40[3] = 0xffffffff;\n        local_40[4] = 0xffffffff;\n        local_40[5] = 0xffffffff;\n        local_40[6] = 0xffffffff;\n        local_40[7] = 0xffffffff;\n        if ((*param_1 & 0x40) == 0) {\n          local_40[0] = 0xfffffbff;\n        }\n        if ((*param_1 & 0x80) != 0) {\n          local_40[0] = local_40[0] & 0xfffffffe;\n        }\n        if (bVar21 != 0) {\n          uVar19 = 0;\n          do {\n            if (param_1[uVar19 + 0x10d] == 0xffffffff) {\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }\n            uVar19 = uVar19 + 1;\n          } while (uVar19 != 0x100);\n        }\n        puStack_70 = (uint *)&UNK_000239cf;\n        uVar5 = FUN_0001e6a0();\n        bVar21 = (byte)param_1[0xcc];\n        param_1[0x95] = uVar5;\n      }\n      *(byte *)(param_1 + 0xa3) = 0;\n      uVar19 = 0x10a;\n      if (bVar21 == 0) {\n        uVar19 = uVar5 + 0x114;\n      }\n      param_1[0x98] = uVar19;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" ({ "{") (expression_statement "uVar5 = param_1[0x95];" (assignment_expression "uVar5 = param_1[0x95]" (identifier "uVar5") (= "=") (subscript_expression "param_1[0x95]" (identifier "param_1") ([ "[") (number_literal "0x95") (] "]"))) (; ";")) (if_statement "if (uVar5 == 0xffffffff) {\n        local_40[0] = 0xffffffff;\n        local_40[1] = 0xffffffff;\n        local_40[2] = 0xffffffff;\n        local_40[3] = 0xffffffff;\n        local_40[4] = 0xffffffff;\n        local_40[5] = 0xffffffff;\n        local_40[6] = 0xffffffff;\n        local_40[7] = 0xffffffff;\n        if ((*param_1 & 0x40) == 0) {\n          local_40[0] = 0xfffffbff;\n        }\n        if ((*param_1 & 0x80) != 0) {\n          local_40[0] = local_40[0] & 0xfffffffe;\n        }\n        if (bVar21 != 0) {\n          uVar19 = 0;\n          do {\n            if (param_1[uVar19 + 0x10d] == 0xffffffff) {\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }\n            uVar19 = uVar19 + 1;\n          } while (uVar19 != 0x100);\n        }\n        puStack_70 = (uint *)&UNK_000239cf;\n        uVar5 = FUN_0001e6a0();\n        bVar21 = (byte)param_1[0xcc];\n        param_1[0x95] = uVar5;\n      }" (if "if") (parenthesized_expression "(uVar5 == 0xffffffff)" (( "(") (binary_expression "uVar5 == 0xffffffff" (identifier "uVar5") (== "==") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n        local_40[0] = 0xffffffff;\n        local_40[1] = 0xffffffff;\n        local_40[2] = 0xffffffff;\n        local_40[3] = 0xffffffff;\n        local_40[4] = 0xffffffff;\n        local_40[5] = 0xffffffff;\n        local_40[6] = 0xffffffff;\n        local_40[7] = 0xffffffff;\n        if ((*param_1 & 0x40) == 0) {\n          local_40[0] = 0xfffffbff;\n        }\n        if ((*param_1 & 0x80) != 0) {\n          local_40[0] = local_40[0] & 0xfffffffe;\n        }\n        if (bVar21 != 0) {\n          uVar19 = 0;\n          do {\n            if (param_1[uVar19 + 0x10d] == 0xffffffff) {\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }\n            uVar19 = uVar19 + 1;\n          } while (uVar19 != 0x100);\n        }\n        puStack_70 = (uint *)&UNK_000239cf;\n        uVar5 = FUN_0001e6a0();\n        bVar21 = (byte)param_1[0xcc];\n        param_1[0x95] = uVar5;\n      }" ({ "{") (expression_statement "local_40[0] = 0xffffffff;" (assignment_expression "local_40[0] = 0xffffffff" (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "local_40[1] = 0xffffffff;" (assignment_expression "local_40[1] = 0xffffffff" (subscript_expression "local_40[1]" (identifier "local_40") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "local_40[2] = 0xffffffff;" (assignment_expression "local_40[2] = 0xffffffff" (subscript_expression "local_40[2]" (identifier "local_40") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "local_40[3] = 0xffffffff;" (assignment_expression "local_40[3] = 0xffffffff" (subscript_expression "local_40[3]" (identifier "local_40") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "local_40[4] = 0xffffffff;" (assignment_expression "local_40[4] = 0xffffffff" (subscript_expression "local_40[4]" (identifier "local_40") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "local_40[5] = 0xffffffff;" (assignment_expression "local_40[5] = 0xffffffff" (subscript_expression "local_40[5]" (identifier "local_40") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "local_40[6] = 0xffffffff;" (assignment_expression "local_40[6] = 0xffffffff" (subscript_expression "local_40[6]" (identifier "local_40") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "local_40[7] = 0xffffffff;" (assignment_expression "local_40[7] = 0xffffffff" (subscript_expression "local_40[7]" (identifier "local_40") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (if_statement "if ((*param_1 & 0x40) == 0) {\n          local_40[0] = 0xfffffbff;\n        }" (if "if") (parenthesized_expression "((*param_1 & 0x40) == 0)" (( "(") (binary_expression "(*param_1 & 0x40) == 0" (parenthesized_expression "(*param_1 & 0x40)" (( "(") (binary_expression "*param_1 & 0x40" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (& "&") (number_literal "0x40")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          local_40[0] = 0xfffffbff;\n        }" ({ "{") (expression_statement "local_40[0] = 0xfffffbff;" (assignment_expression "local_40[0] = 0xfffffbff" (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0xfffffbff")) (; ";")) (} "}"))) (if_statement "if ((*param_1 & 0x80) != 0) {\n          local_40[0] = local_40[0] & 0xfffffffe;\n        }" (if "if") (parenthesized_expression "((*param_1 & 0x80) != 0)" (( "(") (binary_expression "(*param_1 & 0x80) != 0" (parenthesized_expression "(*param_1 & 0x80)" (( "(") (binary_expression "*param_1 & 0x80" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (& "&") (number_literal "0x80")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          local_40[0] = local_40[0] & 0xfffffffe;\n        }" ({ "{") (expression_statement "local_40[0] = local_40[0] & 0xfffffffe;" (assignment_expression "local_40[0] = local_40[0] & 0xfffffffe" (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "local_40[0] & 0xfffffffe" (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]")) (& "&") (number_literal "0xfffffffe"))) (; ";")) (} "}"))) (if_statement "if (bVar21 != 0) {\n          uVar19 = 0;\n          do {\n            if (param_1[uVar19 + 0x10d] == 0xffffffff) {\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }\n            uVar19 = uVar19 + 1;\n          } while (uVar19 != 0x100);\n        }" (if "if") (parenthesized_expression "(bVar21 != 0)" (( "(") (binary_expression "bVar21 != 0" (identifier "bVar21") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar19 = 0;\n          do {\n            if (param_1[uVar19 + 0x10d] == 0xffffffff) {\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }\n            uVar19 = uVar19 + 1;\n          } while (uVar19 != 0x100);\n        }" ({ "{") (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" (identifier "uVar19") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n            if (param_1[uVar19 + 0x10d] == 0xffffffff) {\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }\n            uVar19 = uVar19 + 1;\n          } while (uVar19 != 0x100);" (do "do") (compound_statement "{\n            if (param_1[uVar19 + 0x10d] == 0xffffffff) {\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }\n            uVar19 = uVar19 + 1;\n          }" ({ "{") (if_statement "if (param_1[uVar19 + 0x10d] == 0xffffffff) {\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }" (if "if") (parenthesized_expression "(param_1[uVar19 + 0x10d] == 0xffffffff)" (( "(") (binary_expression "param_1[uVar19 + 0x10d] == 0xffffffff" (subscript_expression "param_1[uVar19 + 0x10d]" (identifier "param_1") ([ "[") (binary_expression "uVar19 + 0x10d" (identifier "uVar19") (+ "+") (number_literal "0x10d")) (] "]")) (== "==") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));\n            }" ({ "{") (expression_statement "local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));" (assignment_expression "local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f))" (subscript_expression "local_40[uVar19 >> 5]" (identifier "local_40") ([ "[") (binary_expression "uVar19 >> 5" (identifier "uVar19") (>> ">>") (number_literal "5")) (] "]")) (= "=") (binary_expression "local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f))" (subscript_expression "local_40[uVar19 >> 5]" (identifier "local_40") ([ "[") (binary_expression "uVar19 >> 5" (identifier "uVar19") (>> ">>") (number_literal "5")) (] "]")) (& "&") (unary_expression "~(1 << ((byte)uVar19 & 0x1f))" (~ "~") (parenthesized_expression "(1 << ((byte)uVar19 & 0x1f))" (( "(") (binary_expression "1 << ((byte)uVar19 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "((byte)uVar19 & 0x1f)" (( "(") (binary_expression "(byte)uVar19 & 0x1f" (cast_expression "(byte)uVar19" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar19")) (& "&") (number_literal "0x1f")) () ")"))) () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar19 = uVar19 + 1;" (assignment_expression "uVar19 = uVar19 + 1" (identifier "uVar19") (= "=") (binary_expression "uVar19 + 1" (identifier "uVar19") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar19 != 0x100)" (( "(") (binary_expression "uVar19 != 0x100" (identifier "uVar19") (!= "!=") (number_literal "0x100")) () ")")) (; ";")) (} "}"))) (expression_statement "puStack_70 = (uint *)&UNK_000239cf;" (assignment_expression "puStack_70 = (uint *)&UNK_000239cf" (identifier "puStack_70") (= "=") (cast_expression "(uint *)&UNK_000239cf" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&UNK_000239cf" (& "&") (identifier "UNK_000239cf")))) (; ";")) (expression_statement "uVar5 = FUN_0001e6a0();" (assignment_expression "uVar5 = FUN_0001e6a0()" (identifier "uVar5") (= "=") (call_expression "FUN_0001e6a0()" (identifier "FUN_0001e6a0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" (identifier "bVar21") (= "=") (cast_expression "(byte)param_1[0xcc]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_1[0xcc]" (identifier "param_1") ([ "[") (number_literal "0xcc") (] "]")))) (; ";")) (expression_statement "param_1[0x95] = uVar5;" (assignment_expression "param_1[0x95] = uVar5" (subscript_expression "param_1[0x95]" (identifier "param_1") ([ "[") (number_literal "0x95") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (} "}"))) (expression_statement "*(byte *)(param_1 + 0xa3) = 0;" (assignment_expression "*(byte *)(param_1 + 0xa3) = 0" (pointer_expression "*(byte *)(param_1 + 0xa3)" (* "*") (cast_expression "(byte *)(param_1 + 0xa3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xa3)" (( "(") (binary_expression "param_1 + 0xa3" (identifier "param_1") (+ "+") (number_literal "0xa3")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar19 = 0x10a;" (assignment_expression "uVar19 = 0x10a" (identifier "uVar19") (= "=") (number_literal "0x10a")) (; ";")) (if_statement "if (bVar21 == 0) {\n        uVar19 = uVar5 + 0x114;\n      }" (if "if") (parenthesized_expression "(bVar21 == 0)" (( "(") (binary_expression "bVar21 == 0" (identifier "bVar21") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar19 = uVar5 + 0x114;\n      }" ({ "{") (expression_statement "uVar19 = uVar5 + 0x114;" (assignment_expression "uVar19 = uVar5 + 0x114" (identifier "uVar19") (= "=") (binary_expression "uVar5 + 0x114" (identifier "uVar5") (+ "+") (number_literal "0x114"))) (; ";")) (} "}"))) (expression_statement "param_1[0x98] = uVar19;" (assignment_expression "param_1[0x98] = uVar19" (subscript_expression "param_1[0x98]" (identifier "param_1") ([ "[") (number_literal "0x98") (] "]")) (= "=") (identifier "uVar19")) (; ";")) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" (identifier "puVar13") (= "=") (identifier "auStack_6c")) (; ";")) (goto_statement "goto LAB_0002318d;" (goto "goto") (statement_identifier "LAB_0002318d") (; ";")) (} "}"))) (expression_statement "uVar19 = 0x2e;" (assignment_expression "uVar19 = 0x2e" (identifier "uVar19") (= "=") (number_literal "0x2e")) (; ";")) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" (identifier "puVar13") (= "=") (identifier "auStack_6c")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x32:\ncode_r0x000236f8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3c;\n    puVar13 = auStack_6c;\n    break;" (case "case") (number_literal "0x32") (: ":") (labeled_statement "code_r0x000236f8:\n    bVar21 = (byte)param_1[0xcc];" (statement_identifier "code_r0x000236f8") (: ":") (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" (identifier "bVar21") (= "=") (cast_expression "(byte)param_1[0xcc]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_1[0xcc]" (identifier "param_1") ([ "[") (number_literal "0xcc") (] "]")))) (; ";"))) (expression_statement "uVar19 = 0x3c;" (assignment_expression "uVar19 = 0x3c" (identifier "uVar19") (= "=") (number_literal "0x3c")) (; ";")) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" (identifier "puVar13") (= "=") (identifier "auStack_6c")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x34:\ncode_r0x000236e0:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3e;\n    puVar13 = auStack_6c;\n    break;" (case "case") (number_literal "0x34") (: ":") (labeled_statement "code_r0x000236e0:\n    bVar21 = (byte)param_1[0xcc];" (statement_identifier "code_r0x000236e0") (: ":") (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" (identifier "bVar21") (= "=") (cast_expression "(byte)param_1[0xcc]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_1[0xcc]" (identifier "param_1") ([ "[") (number_literal "0xcc") (] "]")))) (; ";"))) (expression_statement "uVar19 = 0x3e;" (assignment_expression "uVar19 = 0x3e" (identifier "uVar19") (= "=") (number_literal "0x3e")) (; ";")) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" (identifier "puVar13") (= "=") (identifier "auStack_6c")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x35:\n    bVar21 = 0;\ncode_r0x000233b2:\n    uVar19 = *param_1;\n    if ((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))) {\n      param_1[0x98] = 0x101;\n      uVar19 = 0x101;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x3f;\n    puVar13 = auStack_6c;\n    break;" (case "case") (number_literal "0x35") (: ":") (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" (identifier "bVar21") (= "=") (number_literal "0")) (; ";")) (labeled_statement "code_r0x000233b2:\n    uVar19 = *param_1;" (statement_identifier "code_r0x000233b2") (: ":") (expression_statement "uVar19 = *param_1;" (assignment_expression "uVar19 = *param_1" (identifier "uVar19") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";"))) (if_statement "if ((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))) {\n      param_1[0x98] = 0x101;\n      uVar19 = 0x101;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" (if "if") (parenthesized_expression "((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0))))" (( "(") (binary_expression "(((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&\n       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))" (parenthesized_expression "(((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21))" (( "(") (binary_expression "((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)" (parenthesized_expression "((uVar19 & 0x400) == 0)" (( "(") (binary_expression "(uVar19 & 0x400) == 0" (parenthesized_expression "(uVar19 & 0x400)" (( "(") (binary_expression "uVar19 & 0x400" (identifier "uVar19") (& "&") (number_literal "0x400")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(((byte)(uVar19 >> 1) & 1) == bVar21)" (( "(") (binary_expression "((byte)(uVar19 >> 1) & 1) == bVar21" (parenthesized_expression "((byte)(uVar19 >> 1) & 1)" (( "(") (binary_expression "(byte)(uVar19 >> 1) & 1" (call_expression "(byte)(uVar19 >> 1)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar19 >> 1)" (( "(") (binary_expression "uVar19 >> 1" (identifier "uVar19") (>> ">>") (number_literal "1")) () ")"))) (& "&") (number_literal "1")) () ")")) (== "==") (identifier "bVar21")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))" (( "(") (parenthesized_expression "((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0))" (( "(") (binary_expression "(uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)" (binary_expression "(uVar19 & 0x10) != 0" (parenthesized_expression "(uVar19 & 0x10)" (( "(") (binary_expression "uVar19 & 0x10" (identifier "uVar19") (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "((byte)param_1[0xa3] == 0)" (( "(") (binary_expression "(byte)param_1[0xa3] == 0" (cast_expression "(byte)param_1[0xa3]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_1[0xa3]" (identifier "param_1") ([ "[") (number_literal "0xa3") (] "]"))) (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n      param_1[0x98] = 0x101;\n      uVar19 = 0x101;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" ({ "{") (expression_statement "param_1[0x98] = 0x101;" (assignment_expression "param_1[0x98] = 0x101" (subscript_expression "param_1[0x98]" (identifier "param_1") ([ "[") (number_literal "0x98") (] "]")) (= "=") (number_literal "0x101")) (; ";")) (expression_statement "uVar19 = 0x101;" (assignment_expression "uVar19 = 0x101" (identifier "uVar19") (= "=") (number_literal "0x101")) (; ";")) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" (identifier "puVar13") (= "=") (identifier "auStack_6c")) (; ";")) (goto_statement "goto LAB_0002318d;" (goto "goto") (statement_identifier "LAB_0002318d") (; ";")) (} "}"))) (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" (identifier "bVar21") (= "=") (cast_expression "(byte)param_1[0xcc]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_1[0xcc]" (identifier "param_1") ([ "[") (number_literal "0xcc") (] "]")))) (; ";")) (expression_statement "uVar19 = 0x3f;" (assignment_expression "uVar19 = 0x3f" (identifier "uVar19") (= "=") (number_literal "0x3f")) (; ";")) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" (identifier "puVar13") (= "=") (identifier "auStack_6c")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x38:\ncode_r0x00023710:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x42;\n    puVar13 = auStack_6c;\n    break;" (case "case") (number_literal "0x38") (: ":") (labeled_statement "code_r0x00023710:\n    bVar21 = (byte)param_1[0xcc];" (statement_identifier "code_r0x00023710") (: ":") (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" (identifier "bVar21") (= "=") (cast_expression "(byte)param_1[0xcc]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_1[0xcc]" (identifier "param_1") ([ "[") (number_literal "0xcc") (] "]")))) (; ";"))) (expression_statement "uVar19 = 0x42;" (assignment_expression "uVar19 = 0x42" (identifier "uVar19") (= "=") (number_literal "0x42")) (; ";")) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" (identifier "puVar13") (= "=") (identifier "auStack_6c")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x49:" (case "case") (number_literal "0x49") (: ":")) (case_statement "case 0x69:\n    bVar4 = false;\ncode_r0x0002342a:\n    bVar21 = (byte)param_1[0xcc];\n    puVar13 = auStack_6c;\n    if ((!bVar4) || (puVar13 = auStack_6c, (*param_1 & 0x80000) != 0)) break;\n    if (bVar21 != 0) {\n      pcVar8 = &UNK_0002f468 + (uVar19 == 0x73);\ncode_r0x0002345c:\n      param_1[0x96] = (uint)pcVar8;\n      sVar9 = strlen(pcVar8);\n      param_1[0x97] = sVar9;\n      puStack_70 = (uint *)&UNK_0002347b;\n      uVar19 = FUN_00021f80();\n      *(byte *)(param_1 + 0xa3) = 0;\n      param_1[0x98] = uVar19;\n      param_1[0x96] = (uint)local_5c[0];\n      param_1[0x97] = (uint)local_60;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\n    uVar5 = 0;\n    do {\n      *(undefined4 *)((int)local_40 + uVar5) = 0;\n      uVar5 = uVar5 + 4;\n    } while (uVar5 < 0x20);\n    puStack_70 = (uint *)&UNK_00023ab3;\n    ppuVar6 = __ctype_b_loc();\n    uVar5 = 0;\n    puVar2 = *ppuVar6;\n    do {\n      if ((*(byte *)((int)puVar2 + uVar5 * 2 + 1) & 0x20) != 0) {\n        local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n      }\n      uVar5 = uVar5 + 1;\n    } while (uVar5 != 0x100);\n    if (uVar19 == 0x53) {\ncode_r0x00023b34:\n      local_40[0] = ~local_40[0];\n      local_40[1] = ~local_40[1];\n      local_40[2] = ~local_40[2];\n      local_40[3] = ~local_40[3];\n      local_40[4] = ~local_40[4];\n      local_40[5] = ~local_40[5];\n      local_40[6] = ~local_40[6];\n      local_40[7] = ~local_40[7];\n    }\ncode_r0x00023ae7:\n    *(byte *)(param_1 + 0xa3) = 0;\n    goto code_r0x000237bd;" (case "case") (number_literal "0x69") (: ":") (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" (identifier "bVar4") (= "=") (false "false")) (; ";")) (labeled_statement "code_r0x0002342a:\n    bVar21 = (byte)param_1[0xcc];" (statement_identifier "code_r0x0002342a") (: ":") (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" (identifier "bVar21") (= "=") (cast_expression "(byte)param_1[0xcc]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_1[0xcc]" (identifier "param_1") ([ "[") (number_literal "0xcc") (] "]")))) (; ";"))) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" (identifier "puVar13") (= "=") (identifier "auStack_6c")) (; ";")) (if_statement "if ((!bVar4) || (puVar13 = auStack_6c, (*param_1 & 0x80000) != 0)) break;" (if "if") (parenthesized_expression "((!bVar4) || (puVar13 = auStack_6c, (*param_1 & 0x80000) != 0))" (( "(") (binary_expression "(!bVar4) || (puVar13 = auStack_6c, (*param_1 & 0x80000) != 0)" (parenthesized_expression "(!bVar4)" (( "(") (unary_expression "!bVar4" (! "!") (identifier "bVar4")) () ")")) (|| "||") (parenthesized_expression "(puVar13 = auStack_6c, (*param_1 & 0x80000) != 0)" (( "(") (comma_expression "puVar13 = auStack_6c, (*param_1 & 0x80000) != 0" (assignment_expression "puVar13 = auStack_6c" (identifier "puVar13") (= "=") (identifier "auStack_6c")) (, ",") (binary_expression "(*param_1 & 0x80000) != 0" (parenthesized_expression "(*param_1 & 0x80000)" (( "(") (binary_expression "*param_1 & 0x80000" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (& "&") (number_literal "0x80000")) () ")")) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (bVar21 != 0) {\n      pcVar8 = &UNK_0002f468 + (uVar19 == 0x73);\ncode_r0x0002345c:\n      param_1[0x96] = (uint)pcVar8;\n      sVar9 = strlen(pcVar8);\n      param_1[0x97] = sVar9;\n      puStack_70 = (uint *)&UNK_0002347b;\n      uVar19 = FUN_00021f80();\n      *(byte *)(param_1 + 0xa3) = 0;\n      param_1[0x98] = uVar19;\n      param_1[0x96] = (uint)local_5c[0];\n      param_1[0x97] = (uint)local_60;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" (if "if") (parenthesized_expression "(bVar21 != 0)" (( "(") (binary_expression "bVar21 != 0" (identifier "bVar21") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar8 = &UNK_0002f468 + (uVar19 == 0x73);\ncode_r0x0002345c:\n      param_1[0x96] = (uint)pcVar8;\n      sVar9 = strlen(pcVar8);\n      param_1[0x97] = sVar9;\n      puStack_70 = (uint *)&UNK_0002347b;\n      uVar19 = FUN_00021f80();\n      *(byte *)(param_1 + 0xa3) = 0;\n      param_1[0x98] = uVar19;\n      param_1[0x96] = (uint)local_5c[0];\n      param_1[0x97] = (uint)local_60;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" ({ "{") (expression_statement "pcVar8 = &UNK_0002f468 + (uVar19 == 0x73);" (assignment_expression "pcVar8 = &UNK_0002f468 + (uVar19 == 0x73)" (identifier "pcVar8") (= "=") (binary_expression "&UNK_0002f468 + (uVar19 == 0x73)" (pointer_expression "&UNK_0002f468" (& "&") (identifier "UNK_0002f468")) (+ "+") (parenthesized_expression "(uVar19 == 0x73)" (( "(") (binary_expression "uVar19 == 0x73" (identifier "uVar19") (== "==") (number_literal "0x73")) () ")")))) (; ";")) (labeled_statement "code_r0x0002345c:\n      param_1[0x96] = (uint)pcVar8;" (statement_identifier "code_r0x0002345c") (: ":") (expression_statement "param_1[0x96] = (uint)pcVar8;" (assignment_expression "param_1[0x96] = (uint)pcVar8" (subscript_expression "param_1[0x96]" (identifier "param_1") ([ "[") (number_literal "0x96") (] "]")) (= "=") (cast_expression "(uint)pcVar8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pcVar8"))) (; ";"))) (expression_statement "sVar9 = strlen(pcVar8);" (assignment_expression "sVar9 = strlen(pcVar8)" (identifier "sVar9") (= "=") (call_expression "strlen(pcVar8)" (identifier "strlen") (argument_list "(pcVar8)" (( "(") (identifier "pcVar8") () ")")))) (; ";")) (expression_statement "param_1[0x97] = sVar9;" (assignment_expression "param_1[0x97] = sVar9" (subscript_expression "param_1[0x97]" (identifier "param_1") ([ "[") (number_literal "0x97") (] "]")) (= "=") (identifier "sVar9")) (; ";")) (expression_statement "puStack_70 = (uint *)&UNK_0002347b;" (assignment_expression "puStack_70 = (uint *)&UNK_0002347b" (identifier "puStack_70") (= "=") (cast_expression "(uint *)&UNK_0002347b" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&UNK_0002347b" (& "&") (identifier "UNK_0002347b")))) (; ";")) (expression_statement "uVar19 = FUN_00021f80();" (assignment_expression "uVar19 = FUN_00021f80()" (identifier "uVar19") (= "=") (call_expression "FUN_00021f80()" (identifier "FUN_00021f80") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(byte *)(param_1 + 0xa3) = 0;" (assignment_expression "*(byte *)(param_1 + 0xa3) = 0" (pointer_expression "*(byte *)(param_1 + 0xa3)" (* "*") (cast_expression "(byte *)(param_1 + 0xa3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xa3)" (( "(") (binary_expression "param_1 + 0xa3" (identifier "param_1") (+ "+") (number_literal "0xa3")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x98] = uVar19;" (assignment_expression "param_1[0x98] = uVar19" (subscript_expression "param_1[0x98]" (identifier "param_1") ([ "[") (number_literal "0x98") (] "]")) (= "=") (identifier "uVar19")) (; ";")) (expression_statement "param_1[0x96] = (uint)local_5c[0];" (assignment_expression "param_1[0x96] = (uint)local_5c[0]" (subscript_expression "param_1[0x96]" (identifier "param_1") ([ "[") (number_literal "0x96") (] "]")) (= "=") (cast_expression "(uint)local_5c[0]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "local_5c[0]" (identifier "local_5c") ([ "[") (number_literal "0") (] "]")))) (; ";")) (expression_statement "param_1[0x97] = (uint)local_60;" (assignment_expression "param_1[0x97] = (uint)local_60" (subscript_expression "param_1[0x97]" (identifier "param_1") ([ "[") (number_literal "0x97") (] "]")) (= "=") (cast_expression "(uint)local_60" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_60"))) (; ";")) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" (identifier "puVar13") (= "=") (identifier "auStack_6c")) (; ";")) (goto_statement "goto LAB_0002318d;" (goto "goto") (statement_identifier "LAB_0002318d") (; ";")) (} "}"))) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      *(undefined4 *)((int)local_40 + uVar5) = 0;\n      uVar5 = uVar5 + 4;\n    } while (uVar5 < 0x20);" (do "do") (compound_statement "{\n      *(undefined4 *)((int)local_40 + uVar5) = 0;\n      uVar5 = uVar5 + 4;\n    }" ({ "{") (expression_statement "*(undefined4 *)((int)local_40 + uVar5) = 0;" (assignment_expression "*(undefined4 *)((int)local_40 + uVar5) = 0" (pointer_expression "*(undefined4 *)((int)local_40 + uVar5)" (* "*") (cast_expression "(undefined4 *)((int)local_40 + uVar5)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_40 + uVar5)" (( "(") (binary_expression "(int)local_40 + uVar5" (cast_expression "(int)local_40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_40")) (+ "+") (identifier "uVar5")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar5 = uVar5 + 4;" (assignment_expression "uVar5 = uVar5 + 4" (identifier "uVar5") (= "=") (binary_expression "uVar5 + 4" (identifier "uVar5") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar5 < 0x20)" (( "(") (binary_expression "uVar5 < 0x20" (identifier "uVar5") (< "<") (number_literal "0x20")) () ")")) (; ";")) (expression_statement "puStack_70 = (uint *)&UNK_00023ab3;" (assignment_expression "puStack_70 = (uint *)&UNK_00023ab3" (identifier "puStack_70") (= "=") (cast_expression "(uint *)&UNK_00023ab3" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&UNK_00023ab3" (& "&") (identifier "UNK_00023ab3")))) (; ";")) (expression_statement "ppuVar6 = __ctype_b_loc();" (assignment_expression "ppuVar6 = __ctype_b_loc()" (identifier "ppuVar6") (= "=") (call_expression "__ctype_b_loc()" (identifier "__ctype_b_loc") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar2 = *ppuVar6;" (assignment_expression "puVar2 = *ppuVar6" (identifier "puVar2") (= "=") (pointer_expression "*ppuVar6" (* "*") (identifier "ppuVar6"))) (; ";")) (do_statement "do {\n      if ((*(byte *)((int)puVar2 + uVar5 * 2 + 1) & 0x20) != 0) {\n        local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n      }\n      uVar5 = uVar5 + 1;\n    } while (uVar5 != 0x100);" (do "do") (compound_statement "{\n      if ((*(byte *)((int)puVar2 + uVar5 * 2 + 1) & 0x20) != 0) {\n        local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n      }\n      uVar5 = uVar5 + 1;\n    }" ({ "{") (if_statement "if ((*(byte *)((int)puVar2 + uVar5 * 2 + 1) & 0x20) != 0) {\n        local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n      }" (if "if") (parenthesized_expression "((*(byte *)((int)puVar2 + uVar5 * 2 + 1) & 0x20) != 0)" (( "(") (binary_expression "(*(byte *)((int)puVar2 + uVar5 * 2 + 1) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)puVar2 + uVar5 * 2 + 1) & 0x20)" (( "(") (binary_expression "*(byte *)((int)puVar2 + uVar5 * 2 + 1) & 0x20" (pointer_expression "*(byte *)((int)puVar2 + uVar5 * 2 + 1)" (* "*") (cast_expression "(byte *)((int)puVar2 + uVar5 * 2 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar2 + uVar5 * 2 + 1)" (( "(") (binary_expression "(int)puVar2 + uVar5 * 2 + 1" (binary_expression "(int)puVar2 + uVar5 * 2" (cast_expression "(int)puVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar2")) (+ "+") (binary_expression "uVar5 * 2" (identifier "uVar5") (* "*") (number_literal "2"))) (+ "+") (number_literal "1")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n      }" ({ "{") (expression_statement "local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);" (assignment_expression "local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f)" (subscript_expression "local_40[uVar5 >> 5]" (identifier "local_40") ([ "[") (binary_expression "uVar5 >> 5" (identifier "uVar5") (>> ">>") (number_literal "5")) (] "]")) (= "=") (binary_expression "local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f)" (subscript_expression "local_40[uVar5 >> 5]" (identifier "local_40") ([ "[") (binary_expression "uVar5 >> 5" (identifier "uVar5") (>> ">>") (number_literal "5")) (] "]")) (| "|") (binary_expression "1 << ((byte)uVar5 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "((byte)uVar5 & 0x1f)" (( "(") (binary_expression "(byte)uVar5 & 0x1f" (cast_expression "(byte)uVar5" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar5")) (& "&") (number_literal "0x1f")) () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" (identifier "uVar5") (= "=") (binary_expression "uVar5 + 1" (identifier "uVar5") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar5 != 0x100)" (( "(") (binary_expression "uVar5 != 0x100" (identifier "uVar5") (!= "!=") (number_literal "0x100")) () ")")) (; ";")) (if_statement "if (uVar19 == 0x53) {\ncode_r0x00023b34:\n      local_40[0] = ~local_40[0];\n      local_40[1] = ~local_40[1];\n      local_40[2] = ~local_40[2];\n      local_40[3] = ~local_40[3];\n      local_40[4] = ~local_40[4];\n      local_40[5] = ~local_40[5];\n      local_40[6] = ~local_40[6];\n      local_40[7] = ~local_40[7];\n    }" (if "if") (parenthesized_expression "(uVar19 == 0x53)" (( "(") (binary_expression "uVar19 == 0x53" (identifier "uVar19") (== "==") (number_literal "0x53")) () ")")) (compound_statement "{\ncode_r0x00023b34:\n      local_40[0] = ~local_40[0];\n      local_40[1] = ~local_40[1];\n      local_40[2] = ~local_40[2];\n      local_40[3] = ~local_40[3];\n      local_40[4] = ~local_40[4];\n      local_40[5] = ~local_40[5];\n      local_40[6] = ~local_40[6];\n      local_40[7] = ~local_40[7];\n    }" ({ "{") (labeled_statement "code_r0x00023b34:\n      local_40[0] = ~local_40[0];" (statement_identifier "code_r0x00023b34") (: ":") (expression_statement "local_40[0] = ~local_40[0];" (assignment_expression "local_40[0] = ~local_40[0]" (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]")) (= "=") (unary_expression "~local_40[0]" (~ "~") (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]")))) (; ";"))) (expression_statement "local_40[1] = ~local_40[1];" (assignment_expression "local_40[1] = ~local_40[1]" (subscript_expression "local_40[1]" (identifier "local_40") ([ "[") (number_literal "1") (] "]")) (= "=") (unary_expression "~local_40[1]" (~ "~") (subscript_expression "local_40[1]" (identifier "local_40") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "local_40[2] = ~local_40[2];" (assignment_expression "local_40[2] = ~local_40[2]" (subscript_expression "local_40[2]" (identifier "local_40") ([ "[") (number_literal "2") (] "]")) (= "=") (unary_expression "~local_40[2]" (~ "~") (subscript_expression "local_40[2]" (identifier "local_40") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "local_40[3] = ~local_40[3];" (assignment_expression "local_40[3] = ~local_40[3]" (subscript_expression "local_40[3]" (identifier "local_40") ([ "[") (number_literal "3") (] "]")) (= "=") (unary_expression "~local_40[3]" (~ "~") (subscript_expression "local_40[3]" (identifier "local_40") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "local_40[4] = ~local_40[4];" (assignment_expression "local_40[4] = ~local_40[4]" (subscript_expression "local_40[4]" (identifier "local_40") ([ "[") (number_literal "4") (] "]")) (= "=") (unary_expression "~local_40[4]" (~ "~") (subscript_expression "local_40[4]" (identifier "local_40") ([ "[") (number_literal "4") (] "]")))) (; ";")) (expression_statement "local_40[5] = ~local_40[5];" (assignment_expression "local_40[5] = ~local_40[5]" (subscript_expression "local_40[5]" (identifier "local_40") ([ "[") (number_literal "5") (] "]")) (= "=") (unary_expression "~local_40[5]" (~ "~") (subscript_expression "local_40[5]" (identifier "local_40") ([ "[") (number_literal "5") (] "]")))) (; ";")) (expression_statement "local_40[6] = ~local_40[6];" (assignment_expression "local_40[6] = ~local_40[6]" (subscript_expression "local_40[6]" (identifier "local_40") ([ "[") (number_literal "6") (] "]")) (= "=") (unary_expression "~local_40[6]" (~ "~") (subscript_expression "local_40[6]" (identifier "local_40") ([ "[") (number_literal "6") (] "]")))) (; ";")) (expression_statement "local_40[7] = ~local_40[7];" (assignment_expression "local_40[7] = ~local_40[7]" (subscript_expression "local_40[7]" (identifier "local_40") ([ "[") (number_literal "7") (] "]")) (= "=") (unary_expression "~local_40[7]" (~ "~") (subscript_expression "local_40[7]" (identifier "local_40") ([ "[") (number_literal "7") (] "]")))) (; ";")) (} "}"))) (labeled_statement "code_r0x00023ae7:\n    *(byte *)(param_1 + 0xa3) = 0;" (statement_identifier "code_r0x00023ae7") (: ":") (expression_statement "*(byte *)(param_1 + 0xa3) = 0;" (assignment_expression "*(byte *)(param_1 + 0xa3) = 0" (pointer_expression "*(byte *)(param_1 + 0xa3)" (* "*") (cast_expression "(byte *)(param_1 + 0xa3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xa3)" (( "(") (binary_expression "param_1 + 0xa3" (identifier "param_1") (+ "+") (number_literal "0xa3")) () ")")))) (= "=") (number_literal "0")) (; ";"))) (goto_statement "goto code_r0x000237bd;" (goto "goto") (statement_identifier "code_r0x000237bd") (; ";"))) (case_statement "case 0x51:\n    *(byte *)(param_1 + 0xa3) = 0;\n    puStack_70 = (uint *)&UNK_0002357e;\n    uVar19 = FUN_00021f80();\n    param_1[0x98] = uVar19;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;" (case "case") (number_literal "0x51") (: ":") (expression_statement "*(byte *)(param_1 + 0xa3) = 0;" (assignment_expression "*(byte *)(param_1 + 0xa3) = 0" (pointer_expression "*(byte *)(param_1 + 0xa3)" (* "*") (cast_expression "(byte *)(param_1 + 0xa3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xa3)" (( "(") (binary_expression "param_1 + 0xa3" (identifier "param_1") (+ "+") (number_literal "0xa3")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puStack_70 = (uint *)&UNK_0002357e;" (assignment_expression "puStack_70 = (uint *)&UNK_0002357e" (identifier "puStack_70") (= "=") (cast_expression "(uint *)&UNK_0002357e" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&UNK_0002357e" (& "&") (identifier "UNK_0002357e")))) (; ";")) (expression_statement "uVar19 = FUN_00021f80();" (assignment_expression "uVar19 = FUN_00021f80()" (identifier "uVar19") (= "=") (call_expression "FUN_00021f80()" (identifier "FUN_00021f80") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "param_1[0x98] = uVar19;" (assignment_expression "param_1[0x98] = uVar19" (subscript_expression "param_1[0x98]" (identifier "param_1") ([ "[") (number_literal "0x98") (] "]")) (= "=") (identifier "uVar19")) (; ";")) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" (identifier "puVar13") (= "=") (identifier "auStack_6c")) (; ";")) (goto_statement "goto LAB_0002318d;" (goto "goto") (statement_identifier "LAB_0002318d") (; ";"))) (case_statement "case 0x52:\n    if (local_60 == (byte *)0x0) {\n      pcVar8 = "unfinished \\ escape";\n      ppbVar15 = &pbStack_74;\n      pbStack_74 = (byte *)0x5;\n      puStack_70 = (uint *)((int)&__DT_PLTGOT + *(int *)(&DAT_0002ef08 + uVar5 * 4));\n      goto code_r0x00023a1b;\n    }\n    pbVar12 = (byte *)param_1[pbVar7[1] + 0x10d];\n    if (pbVar12 == (byte *)0xffffffff) {\n      pbStack_74 = local_60;\n      puStack_70 = param_1 + 0xb2;\n      local_5c[1] = pbVar12;\n      uVar5 = FUN_0002b6f0(auStack_50 + 3,local_5c[0]);\n      if (0xfffffffc < uVar5 - 1) {\n        puVar20 = param_1 + 0xb2;\n        for (iVar10 = 2; iVar10 != 0; iVar10 = iVar10 + -1) {\n          *puVar20 = 0;\n          puVar20 = puVar20 + (uint)bVar21 * -2 + 1;\n        }\n        local_5c[0] = (byte *)param_1[0x96];\n        local_60 = (byte *)param_1[0x97];\n        pbVar12 = local_5c[1];\n        goto code_r0x00023748;\n      }\n      pbVar12 = (byte *)param_1[0x97];\n      param_1[0x9d] = uVar5;\n      param_1[0x9c] = auStack_50[3];\n      pbVar7 = (byte *)param_1[0x96];\n      if (uVar5 != 1) goto code_r0x00023235;\n    }\n    else {\ncode_r0x00023748:\n      param_1[0x9d] = 1;\n      param_1[0x9c] = (uint)pbVar12;\n      pbVar12 = local_60;\n      pbVar7 = local_5c[0];\n    }\n    uVar19 = (uint)*pbVar7;\n    local_5c[0] = pbVar7 + 1;\n    param_1[0x96] = (uint)(pbVar7 + 1);\n    local_60 = pbVar12 + -1;\n    param_1[0x97] = (uint)(pbVar12 + -1);\n    switch(uVar19 - 10 & 0xff) {\n    case 0:\n      goto code_r0x0002359b;\n    case 0x1a:\n      goto code_r0x00023673;\n    case 0x1d:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023868;\n      goto code_r0x00023690;\n    case 0x1e:\n      bVar21 = 1;\n      goto code_r0x00023262;\n    case 0x1f:\n      bVar21 = 1;\n      goto code_r0x0002351a;\n    case 0x20:\n      goto code_r0x00023894;\n    case 0x21:\n      bVar21 = 1;\n      goto code_r0x000234d2;\n    case 0x24:\n      bVar4 = true;\n      goto code_r0x0002336a;\n    case 0x27:\n    case 0x28:\n    case 0x29:\n    case 0x2a:\n    case 0x2b:\n    case 0x2c:\n    case 0x2d:\n    case 0x2e:\n    case 0x2f:\n      if ((*param_1 & 0x4000) == 0) {\n        *(byte *)(param_1 + 0xa3) = 0;\n        uVar19 = 0x112;\n        param_1[0x98] = 0x112;\n        goto LAB_0002318d;\n      }\n    default:\nLAB_00023150:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      break;\n    case 0x32:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10e;\n        uVar19 = 0x10e;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236f8;\n    case 0x34:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10f;\n        uVar19 = 0x10f;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236e0;\n    case 0x35:\n      bVar21 = 1;\n      goto code_r0x000233b2;\n    case 0x38:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x111;\n        uVar19 = 0x111;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x00023710;\n    case 0x49:\n    case 0x69:\n      bVar4 = true;\n      goto code_r0x0002342a;\n    case 0x4d:\n    case 0x6d:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      if ((*param_1 & 0x80000) != 0) break;\n      if (bVar21 != 0) {\n        pcVar8 = &UNK_0002f474 + (uVar19 == 0x77);\n        goto code_r0x0002345c;\n      }\n      uVar5 = 0;\n      do {\n        *(undefined4 *)((int)local_40 + uVar5) = 0;\n        uVar5 = uVar5 + 4;\n      } while (uVar5 < 0x20);\n      uVar5 = 0;\n      do {\n        if (*(byte *)((int)param_1 + uVar5 + 8) == 2) {\n          local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 != 0x100);\n      if (uVar19 == 0x57) goto code_r0x00023b34;\n      goto code_r0x00023ae7;\n    case 0x51:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5b;\n      puVar13 = auStack_6c;\n      break;\n    case 0x52:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5c;\n      puVar13 = auStack_6c;\n      break;\n    case 0x54:\n      goto code_r0x000235d7;\n    case 0x56:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023880;\n      goto code_r0x000236c8;\n    case 0x58:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x110;\n        uVar19 = 0x110;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236a8;\n    case 0x71:\n      bStack_51 = 1;\n      goto code_r0x00023295;\n    case 0x72:\n      bVar21 = 1;\n      goto code_r0x000233fa;\n    }\n    break;" (case "case") (number_literal "0x52") (: ":") (if_statement "if (local_60 == (byte *)0x0) {\n      pcVar8 = "unfinished \\ escape";\n      ppbVar15 = &pbStack_74;\n      pbStack_74 = (byte *)0x5;\n      puStack_70 = (uint *)((int)&__DT_PLTGOT + *(int *)(&DAT_0002ef08 + uVar5 * 4));\n      goto code_r0x00023a1b;\n    }" (if "if") (parenthesized_expression "(local_60 == (byte *)0x0)" (( "(") (binary_expression "local_60 == (byte *)0x0" (identifier "local_60") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pcVar8 = "unfinished \\ escape";\n      ppbVar15 = &pbStack_74;\n      pbStack_74 = (byte *)0x5;\n      puStack_70 = (uint *)((int)&__DT_PLTGOT + *(int *)(&DAT_0002ef08 + uVar5 * 4));\n      goto code_r0x00023a1b;\n    }" ({ "{") (expression_statement "pcVar8 = "unfinished \\ escape";" (assignment_expression "pcVar8 = "unfinished \\ escape"" (identifier "pcVar8") (= "=") (string_literal ""unfinished \\ escape"" (" """) (string_content "unfinished ") (escape_sequence "\\") (string_content " escape") (" """))) (; ";")) (expression_statement "ppbVar15 = &pbStack_74;" (assignment_expression "ppbVar15 = &pbStack_74" (identifier "ppbVar15") (= "=") (pointer_expression "&pbStack_74" (& "&") (identifier "pbStack_74"))) (; ";")) (expression_statement "pbStack_74 = (byte *)0x5;" (assignment_expression "pbStack_74 = (byte *)0x5" (identifier "pbStack_74") (= "=") (cast_expression "(byte *)0x5" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x5"))) (; ";")) (expression_statement "puStack_70 = (uint *)((int)&__DT_PLTGOT + *(int *)(&DAT_0002ef08 + uVar5 * 4));" (assignment_expression "puStack_70 = (uint *)((int)&__DT_PLTGOT + *(int *)(&DAT_0002ef08 + uVar5 * 4))" (identifier "puStack_70") (= "=") (cast_expression "(uint *)((int)&__DT_PLTGOT + *(int *)(&DAT_0002ef08 + uVar5 * 4))" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&__DT_PLTGOT + *(int *)(&DAT_0002ef08 + uVar5 * 4))" (( "(") (binary_expression "(int)&__DT_PLTGOT + *(int *)(&DAT_0002ef08 + uVar5 * 4)" (cast_expression "(int)&__DT_PLTGOT" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (+ "+") (pointer_expression "*(int *)(&DAT_0002ef08 + uVar5 * 4)" (* "*") (cast_expression "(int *)(&DAT_0002ef08 + uVar5 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_0002ef08 + uVar5 * 4)" (( "(") (binary_expression "&DAT_0002ef08 + uVar5 * 4" (pointer_expression "&DAT_0002ef08" (& "&") (identifier "DAT_0002ef08")) (+ "+") (binary_expression "uVar5 * 4" (identifier "uVar5") (* "*") (number_literal "4"))) () ")"))))) () ")")))) (; ";")) (goto_statement "goto code_r0x00023a1b;" (goto "goto") (statement_identifier "code_r0x00023a1b") (; ";")) (} "}"))) (expression_statement "pbVar12 = (byte *)param_1[pbVar7[1] + 0x10d];" (assignment_expression "pbVar12 = (byte *)param_1[pbVar7[1] + 0x10d]" (identifier "pbVar12") (= "=") (cast_expression "(byte *)param_1[pbVar7[1] + 0x10d]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[pbVar7[1] + 0x10d]" (identifier "param_1") ([ "[") (binary_expression "pbVar7[1] + 0x10d" (subscript_expression "pbVar7[1]" (identifier "pbVar7") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x10d")) (] "]")))) (; ";")) (if_statement "if (pbVar12 == (byte *)0xffffffff) {\n      pbStack_74 = local_60;\n      puStack_70 = param_1 + 0xb2;\n      local_5c[1] = pbVar12;\n      uVar5 = FUN_0002b6f0(auStack_50 + 3,local_5c[0]);\n      if (0xfffffffc < uVar5 - 1) {\n        puVar20 = param_1 + 0xb2;\n        for (iVar10 = 2; iVar10 != 0; iVar10 = iVar10 + -1) {\n          *puVar20 = 0;\n          puVar20 = puVar20 + (uint)bVar21 * -2 + 1;\n        }\n        local_5c[0] = (byte *)param_1[0x96];\n        local_60 = (byte *)param_1[0x97];\n        pbVar12 = local_5c[1];\n        goto code_r0x00023748;\n      }\n      pbVar12 = (byte *)param_1[0x97];\n      param_1[0x9d] = uVar5;\n      param_1[0x9c] = auStack_50[3];\n      pbVar7 = (byte *)param_1[0x96];\n      if (uVar5 != 1) goto code_r0x00023235;\n    }\n    else {\ncode_r0x00023748:\n      param_1[0x9d] = 1;\n      param_1[0x9c] = (uint)pbVar12;\n      pbVar12 = local_60;\n      pbVar7 = local_5c[0];\n    }" (if "if") (parenthesized_expression "(pbVar12 == (byte *)0xffffffff)" (( "(") (binary_expression "pbVar12 == (byte *)0xffffffff" (identifier "pbVar12") (== "==") (cast_expression "(byte *)0xffffffff" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) () ")")) (compound_statement "{\n      pbStack_74 = local_60;\n      puStack_70 = param_1 + 0xb2;\n      local_5c[1] = pbVar12;\n      uVar5 = FUN_0002b6f0(auStack_50 + 3,local_5c[0]);\n      if (0xfffffffc < uVar5 - 1) {\n        puVar20 = param_1 + 0xb2;\n        for (iVar10 = 2; iVar10 != 0; iVar10 = iVar10 + -1) {\n          *puVar20 = 0;\n          puVar20 = puVar20 + (uint)bVar21 * -2 + 1;\n        }\n        local_5c[0] = (byte *)param_1[0x96];\n        local_60 = (byte *)param_1[0x97];\n        pbVar12 = local_5c[1];\n        goto code_r0x00023748;\n      }\n      pbVar12 = (byte *)param_1[0x97];\n      param_1[0x9d] = uVar5;\n      param_1[0x9c] = auStack_50[3];\n      pbVar7 = (byte *)param_1[0x96];\n      if (uVar5 != 1) goto code_r0x00023235;\n    }" ({ "{") (expression_statement "pbStack_74 = local_60;" (assignment_expression "pbStack_74 = local_60" (identifier "pbStack_74") (= "=") (identifier "local_60")) (; ";")) (expression_statement "puStack_70 = param_1 + 0xb2;" (assignment_expression "puStack_70 = param_1 + 0xb2" (identifier "puStack_70") (= "=") (binary_expression "param_1 + 0xb2" (identifier "param_1") (+ "+") (number_literal "0xb2"))) (; ";")) (expression_statement "local_5c[1] = pbVar12;" (assignment_expression "local_5c[1] = pbVar12" (subscript_expression "local_5c[1]" (identifier "local_5c") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "pbVar12")) (; ";")) (expression_statement "uVar5 = FUN_0002b6f0(auStack_50 + 3,local_5c[0]);" (assignment_expression "uVar5 = FUN_0002b6f0(auStack_50 + 3,local_5c[0])" (identifier "uVar5") (= "=") (call_expression "FUN_0002b6f0(auStack_50 + 3,local_5c[0])" (identifier "FUN_0002b6f0") (argument_list "(auStack_50 + 3,local_5c[0])" (( "(") (binary_expression "auStack_50 + 3" (identifier "auStack_50") (+ "+") (number_literal "3")) (, ",") (subscript_expression "local_5c[0]" (identifier "local_5c") ([ "[") (number_literal "0") (] "]")) () ")")))) (; ";")) (if_statement "if (0xfffffffc < uVar5 - 1) {\n        puVar20 = param_1 + 0xb2;\n        for (iVar10 = 2; iVar10 != 0; iVar10 = iVar10 + -1) {\n          *puVar20 = 0;\n          puVar20 = puVar20 + (uint)bVar21 * -2 + 1;\n        }\n        local_5c[0] = (byte *)param_1[0x96];\n        local_60 = (byte *)param_1[0x97];\n        pbVar12 = local_5c[1];\n        goto code_r0x00023748;\n      }" (if "if") (parenthesized_expression "(0xfffffffc < uVar5 - 1)" (( "(") (binary_expression "0xfffffffc < uVar5 - 1" (number_literal "0xfffffffc") (< "<") (binary_expression "uVar5 - 1" (identifier "uVar5") (- "-") (number_literal "1"))) () ")")) (compound_statement "{\n        puVar20 = param_1 + 0xb2;\n        for (iVar10 = 2; iVar10 != 0; iVar10 = iVar10 + -1) {\n          *puVar20 = 0;\n          puVar20 = puVar20 + (uint)bVar21 * -2 + 1;\n        }\n        local_5c[0] = (byte *)param_1[0x96];\n        local_60 = (byte *)param_1[0x97];\n        pbVar12 = local_5c[1];\n        goto code_r0x00023748;\n      }" ({ "{") (expression_statement "puVar20 = param_1 + 0xb2;" (assignment_expression "puVar20 = param_1 + 0xb2" (identifier "puVar20") (= "=") (binary_expression "param_1 + 0xb2" (identifier "param_1") (+ "+") (number_literal "0xb2"))) (; ";")) (for_statement "for (iVar10 = 2; iVar10 != 0; iVar10 = iVar10 + -1) {\n          *puVar20 = 0;\n          puVar20 = puVar20 + (uint)bVar21 * -2 + 1;\n        }" (for "for") (( "(") (assignment_expression "iVar10 = 2" (identifier "iVar10") (= "=") (number_literal "2")) (; ";") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar10 = iVar10 + -1" (identifier "iVar10") (= "=") (binary_expression "iVar10 + -1" (identifier "iVar10") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n          *puVar20 = 0;\n          puVar20 = puVar20 + (uint)bVar21 * -2 + 1;\n        }" ({ "{") (expression_statement "*puVar20 = 0;" (assignment_expression "*puVar20 = 0" (pointer_expression "*puVar20" (* "*") (identifier "puVar20")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar20 = puVar20 + (uint)bVar21 * -2 + 1;" (assignment_expression "puVar20 = puVar20 + (uint)bVar21 * -2 + 1" (identifier "puVar20") (= "=") (binary_expression "puVar20 + (uint)bVar21 * -2 + 1" (binary_expression "puVar20 + (uint)bVar21 * -2" (identifier "puVar20") (+ "+") (binary_expression "(uint)bVar21 * -2" (cast_expression "(uint)bVar21" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar21")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "local_5c[0] = (byte *)param_1[0x96];" (assignment_expression "local_5c[0] = (byte *)param_1[0x96]" (subscript_expression "local_5c[0]" (identifier "local_5c") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(byte *)param_1[0x96]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x96]" (identifier "param_1") ([ "[") (number_literal "0x96") (] "]")))) (; ";")) (expression_statement "local_60 = (byte *)param_1[0x97];" (assignment_expression "local_60 = (byte *)param_1[0x97]" (identifier "local_60") (= "=") (cast_expression "(byte *)param_1[0x97]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x97]" (identifier "param_1") ([ "[") (number_literal "0x97") (] "]")))) (; ";")) (expression_statement "pbVar12 = local_5c[1];" (assignment_expression "pbVar12 = local_5c[1]" (identifier "pbVar12") (= "=") (subscript_expression "local_5c[1]" (identifier "local_5c") ([ "[") (number_literal "1") (] "]"))) (; ";")) (goto_statement "goto code_r0x00023748;" (goto "goto") (statement_identifier "code_r0x00023748") (; ";")) (} "}"))) (expression_statement "pbVar12 = (byte *)param_1[0x97];" (assignment_expression "pbVar12 = (byte *)param_1[0x97]" (identifier "pbVar12") (= "=") (cast_expression "(byte *)param_1[0x97]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x97]" (identifier "param_1") ([ "[") (number_literal "0x97") (] "]")))) (; ";")) (expression_statement "param_1[0x9d] = uVar5;" (assignment_expression "param_1[0x9d] = uVar5" (subscript_expression "param_1[0x9d]" (identifier "param_1") ([ "[") (number_literal "0x9d") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "param_1[0x9c] = auStack_50[3];" (assignment_expression "param_1[0x9c] = auStack_50[3]" (subscript_expression "param_1[0x9c]" (identifier "param_1") ([ "[") (number_literal "0x9c") (] "]")) (= "=") (subscript_expression "auStack_50[3]" (identifier "auStack_50") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "pbVar7 = (byte *)param_1[0x96];" (assignment_expression "pbVar7 = (byte *)param_1[0x96]" (identifier "pbVar7") (= "=") (cast_expression "(byte *)param_1[0x96]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x96]" (identifier "param_1") ([ "[") (number_literal "0x96") (] "]")))) (; ";")) (if_statement "if (uVar5 != 1) goto code_r0x00023235;" (if "if") (parenthesized_expression "(uVar5 != 1)" (( "(") (binary_expression "uVar5 != 1" (identifier "uVar5") (!= "!=") (number_literal "1")) () ")")) (goto_statement "goto code_r0x00023235;" (goto "goto") (statement_identifier "code_r0x00023235") (; ";"))) (} "}")) (else_clause "else {\ncode_r0x00023748:\n      param_1[0x9d] = 1;\n      param_1[0x9c] = (uint)pbVar12;\n      pbVar12 = local_60;\n      pbVar7 = local_5c[0];\n    }" (else "else") (compound_statement "{\ncode_r0x00023748:\n      param_1[0x9d] = 1;\n      param_1[0x9c] = (uint)pbVar12;\n      pbVar12 = local_60;\n      pbVar7 = local_5c[0];\n    }" ({ "{") (labeled_statement "code_r0x00023748:\n      param_1[0x9d] = 1;" (statement_identifier "code_r0x00023748") (: ":") (expression_statement "param_1[0x9d] = 1;" (assignment_expression "param_1[0x9d] = 1" (subscript_expression "param_1[0x9d]" (identifier "param_1") ([ "[") (number_literal "0x9d") (] "]")) (= "=") (number_literal "1")) (; ";"))) (expression_statement "param_1[0x9c] = (uint)pbVar12;" (assignment_expression "param_1[0x9c] = (uint)pbVar12" (subscript_expression "param_1[0x9c]" (identifier "param_1") ([ "[") (number_literal "0x9c") (] "]")) (= "=") (cast_expression "(uint)pbVar12" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pbVar12"))) (; ";")) (expression_statement "pbVar12 = local_60;" (assignment_expression "pbVar12 = local_60" (identifier "pbVar12") (= "=") (identifier "local_60")) (; ";")) (expression_statement "pbVar7 = local_5c[0];" (assignment_expression "pbVar7 = local_5c[0]" (identifier "pbVar7") (= "=") (subscript_expression "local_5c[0]" (identifier "local_5c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (} "}")))) (expression_statement "uVar19 = (uint)*pbVar7;" (assignment_expression "uVar19 = (uint)*pbVar7" (identifier "uVar19") (= "=") (binary_expression "(uint)*pbVar7" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar7"))) (; ";")) (expression_statement "local_5c[0] = pbVar7 + 1;" (assignment_expression "local_5c[0] = pbVar7 + 1" (subscript_expression "local_5c[0]" (identifier "local_5c") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "pbVar7 + 1" (identifier "pbVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_1[0x96] = (uint)(pbVar7 + 1);" (assignment_expression "param_1[0x96] = (uint)(pbVar7 + 1)" (subscript_expression "param_1[0x96]" (identifier "param_1") ([ "[") (number_literal "0x96") (] "]")) (= "=") (call_expression "(uint)(pbVar7 + 1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbVar7 + 1)" (( "(") (binary_expression "pbVar7 + 1" (identifier "pbVar7") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "local_60 = pbVar12 + -1;" (assignment_expression "local_60 = pbVar12 + -1" (identifier "local_60") (= "=") (binary_expression "pbVar12 + -1" (identifier "pbVar12") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "param_1[0x97] = (uint)(pbVar12 + -1);" (assignment_expression "param_1[0x97] = (uint)(pbVar12 + -1)" (subscript_expression "param_1[0x97]" (identifier "param_1") ([ "[") (number_literal "0x97") (] "]")) (= "=") (call_expression "(uint)(pbVar12 + -1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbVar12 + -1)" (( "(") (binary_expression "pbVar12 + -1" (identifier "pbVar12") (+ "+") (number_literal "-1")) () ")")))) (; ";")) (switch_statement "switch(uVar19 - 10 & 0xff) {\n    case 0:\n      goto code_r0x0002359b;\n    case 0x1a:\n      goto code_r0x00023673;\n    case 0x1d:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023868;\n      goto code_r0x00023690;\n    case 0x1e:\n      bVar21 = 1;\n      goto code_r0x00023262;\n    case 0x1f:\n      bVar21 = 1;\n      goto code_r0x0002351a;\n    case 0x20:\n      goto code_r0x00023894;\n    case 0x21:\n      bVar21 = 1;\n      goto code_r0x000234d2;\n    case 0x24:\n      bVar4 = true;\n      goto code_r0x0002336a;\n    case 0x27:\n    case 0x28:\n    case 0x29:\n    case 0x2a:\n    case 0x2b:\n    case 0x2c:\n    case 0x2d:\n    case 0x2e:\n    case 0x2f:\n      if ((*param_1 & 0x4000) == 0) {\n        *(byte *)(param_1 + 0xa3) = 0;\n        uVar19 = 0x112;\n        param_1[0x98] = 0x112;\n        goto LAB_0002318d;\n      }\n    default:\nLAB_00023150:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      break;\n    case 0x32:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10e;\n        uVar19 = 0x10e;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236f8;\n    case 0x34:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10f;\n        uVar19 = 0x10f;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236e0;\n    case 0x35:\n      bVar21 = 1;\n      goto code_r0x000233b2;\n    case 0x38:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x111;\n        uVar19 = 0x111;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x00023710;\n    case 0x49:\n    case 0x69:\n      bVar4 = true;\n      goto code_r0x0002342a;\n    case 0x4d:\n    case 0x6d:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      if ((*param_1 & 0x80000) != 0) break;\n      if (bVar21 != 0) {\n        pcVar8 = &UNK_0002f474 + (uVar19 == 0x77);\n        goto code_r0x0002345c;\n      }\n      uVar5 = 0;\n      do {\n        *(undefined4 *)((int)local_40 + uVar5) = 0;\n        uVar5 = uVar5 + 4;\n      } while (uVar5 < 0x20);\n      uVar5 = 0;\n      do {\n        if (*(byte *)((int)param_1 + uVar5 + 8) == 2) {\n          local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 != 0x100);\n      if (uVar19 == 0x57) goto code_r0x00023b34;\n      goto code_r0x00023ae7;\n    case 0x51:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5b;\n      puVar13 = auStack_6c;\n      break;\n    case 0x52:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5c;\n      puVar13 = auStack_6c;\n      break;\n    case 0x54:\n      goto code_r0x000235d7;\n    case 0x56:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023880;\n      goto code_r0x000236c8;\n    case 0x58:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x110;\n        uVar19 = 0x110;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236a8;\n    case 0x71:\n      bStack_51 = 1;\n      goto code_r0x00023295;\n    case 0x72:\n      bVar21 = 1;\n      goto code_r0x000233fa;\n    }" (switch "switch") (parenthesized_expression "(uVar19 - 10 & 0xff)" (( "(") (binary_expression "uVar19 - 10 & 0xff" (binary_expression "uVar19 - 10" (identifier "uVar19") (- "-") (number_literal "10")) (& "&") (number_literal "0xff")) () ")")) (compound_statement "{\n    case 0:\n      goto code_r0x0002359b;\n    case 0x1a:\n      goto code_r0x00023673;\n    case 0x1d:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023868;\n      goto code_r0x00023690;\n    case 0x1e:\n      bVar21 = 1;\n      goto code_r0x00023262;\n    case 0x1f:\n      bVar21 = 1;\n      goto code_r0x0002351a;\n    case 0x20:\n      goto code_r0x00023894;\n    case 0x21:\n      bVar21 = 1;\n      goto code_r0x000234d2;\n    case 0x24:\n      bVar4 = true;\n      goto code_r0x0002336a;\n    case 0x27:\n    case 0x28:\n    case 0x29:\n    case 0x2a:\n    case 0x2b:\n    case 0x2c:\n    case 0x2d:\n    case 0x2e:\n    case 0x2f:\n      if ((*param_1 & 0x4000) == 0) {\n        *(byte *)(param_1 + 0xa3) = 0;\n        uVar19 = 0x112;\n        param_1[0x98] = 0x112;\n        goto LAB_0002318d;\n      }\n    default:\nLAB_00023150:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      break;\n    case 0x32:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10e;\n        uVar19 = 0x10e;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236f8;\n    case 0x34:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10f;\n        uVar19 = 0x10f;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236e0;\n    case 0x35:\n      bVar21 = 1;\n      goto code_r0x000233b2;\n    case 0x38:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x111;\n        uVar19 = 0x111;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x00023710;\n    case 0x49:\n    case 0x69:\n      bVar4 = true;\n      goto code_r0x0002342a;\n    case 0x4d:\n    case 0x6d:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      if ((*param_1 & 0x80000) != 0) break;\n      if (bVar21 != 0) {\n        pcVar8 = &UNK_0002f474 + (uVar19 == 0x77);\n        goto code_r0x0002345c;\n      }\n      uVar5 = 0;\n      do {\n        *(undefined4 *)((int)local_40 + uVar5) = 0;\n        uVar5 = uVar5 + 4;\n      } while (uVar5 < 0x20);\n      uVar5 = 0;\n      do {\n        if (*(byte *)((int)param_1 + uVar5 + 8) == 2) {\n          local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 != 0x100);\n      if (uVar19 == 0x57) goto code_r0x00023b34;\n      goto code_r0x00023ae7;\n    case 0x51:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5b;\n      puVar13 = auStack_6c;\n      break;\n    case 0x52:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5c;\n      puVar13 = auStack_6c;\n      break;\n    case 0x54:\n      goto code_r0x000235d7;\n    case 0x56:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023880;\n      goto code_r0x000236c8;\n    case 0x58:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x110;\n        uVar19 = 0x110;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236a8;\n    case 0x71:\n      bStack_51 = 1;\n      goto code_r0x00023295;\n    case 0x72:\n      bVar21 = 1;\n      goto code_r0x000233fa;\n    }" ({ "{") (case_statement "case 0:\n      goto code_r0x0002359b;" (case "case") (number_literal "0") (: ":") (goto_statement "goto code_r0x0002359b;" (goto "goto") (statement_identifier "code_r0x0002359b") (; ";"))) (case_statement "case 0x1a:\n      goto code_r0x00023673;" (case "case") (number_literal "0x1a") (: ":") (goto_statement "goto code_r0x00023673;" (goto "goto") (statement_identifier "code_r0x00023673") (; ";"))) (case_statement "case 0x1d:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023868;\n      goto code_r0x00023690;" (case "case") (number_literal "0x1d") (: ":") (if_statement "if ((*param_1 & 0x80000) == 0) goto code_r0x00023868;" (if "if") (parenthesized_expression "((*param_1 & 0x80000) == 0)" (( "(") (binary_expression "(*param_1 & 0x80000) == 0" (parenthesized_expression "(*param_1 & 0x80000)" (( "(") (binary_expression "*param_1 & 0x80000" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (& "&") (number_literal "0x80000")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto code_r0x00023868;" (goto "goto") (statement_identifier "code_r0x00023868") (; ";"))) (goto_statement "goto code_r0x00023690;" (goto "goto") (statement_identifier "code_r0x00023690") (; ";"))) (case_statement "case 0x1e:\n      bVar21 = 1;\n      goto code_r0x00023262;" (case "case") (number_literal "0x1e") (: ":") (expression_statement "bVar21 = 1;" (assignment_expression "bVar21 = 1" (identifier "bVar21") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto code_r0x00023262;" (goto "goto") (statement_identifier "code_r0x00023262") (; ";"))) (case_statement "case 0x1f:\n      bVar21 = 1;\n      goto code_r0x0002351a;" (case "case") (number_literal "0x1f") (: ":") (expression_statement "bVar21 = 1;" (assignment_expression "bVar21 = 1" (identifier "bVar21") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto code_r0x0002351a;" (goto "goto") (statement_identifier "code_r0x0002351a") (; ";"))) (case_statement "case 0x20:\n      goto code_r0x00023894;" (case "case") (number_literal "0x20") (: ":") (goto_statement "goto code_r0x00023894;" (goto "goto") (statement_identifier "code_r0x00023894") (; ";"))) (case_statement "case 0x21:\n      bVar21 = 1;\n      goto code_r0x000234d2;" (case "case") (number_literal "0x21") (: ":") (expression_statement "bVar21 = 1;" (assignment_expression "bVar21 = 1" (identifier "bVar21") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto code_r0x000234d2;" (goto "goto") (statement_identifier "code_r0x000234d2") (; ";"))) (case_statement "case 0x24:\n      bVar4 = true;\n      goto code_r0x0002336a;" (case "case") (number_literal "0x24") (: ":") (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" (identifier "bVar4") (= "=") (true "true")) (; ";")) (goto_statement "goto code_r0x0002336a;" (goto "goto") (statement_identifier "code_r0x0002336a") (; ";"))) (case_statement "case 0x27:" (case "case") (number_literal "0x27") (: ":")) (case_statement "case 0x28:" (case "case") (number_literal "0x28") (: ":")) (case_statement "case 0x29:" (case "case") (number_literal "0x29") (: ":")) (case_statement "case 0x2a:" (case "case") (number_literal "0x2a") (: ":")) (case_statement "case 0x2b:" (case "case") (number_literal "0x2b") (: ":")) (case_statement "case 0x2c:" (case "case") (number_literal "0x2c") (: ":")) (case_statement "case 0x2d:" (case "case") (number_literal "0x2d") (: ":")) (case_statement "case 0x2e:" (case "case") (number_literal "0x2e") (: ":")) (case_statement "case 0x2f:\n      if ((*param_1 & 0x4000) == 0) {\n        *(byte *)(param_1 + 0xa3) = 0;\n        uVar19 = 0x112;\n        param_1[0x98] = 0x112;\n        goto LAB_0002318d;\n      }" (case "case") (number_literal "0x2f") (: ":") (if_statement "if ((*param_1 & 0x4000) == 0) {\n        *(byte *)(param_1 + 0xa3) = 0;\n        uVar19 = 0x112;\n        param_1[0x98] = 0x112;\n        goto LAB_0002318d;\n      }" (if "if") (parenthesized_expression "((*param_1 & 0x4000) == 0)" (( "(") (binary_expression "(*param_1 & 0x4000) == 0" (parenthesized_expression "(*param_1 & 0x4000)" (( "(") (binary_expression "*param_1 & 0x4000" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (& "&") (number_literal "0x4000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(byte *)(param_1 + 0xa3) = 0;\n        uVar19 = 0x112;\n        param_1[0x98] = 0x112;\n        goto LAB_0002318d;\n      }" ({ "{") (expression_statement "*(byte *)(param_1 + 0xa3) = 0;" (assignment_expression "*(byte *)(param_1 + 0xa3) = 0" (pointer_expression "*(byte *)(param_1 + 0xa3)" (* "*") (cast_expression "(byte *)(param_1 + 0xa3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xa3)" (( "(") (binary_expression "param_1 + 0xa3" (identifier "param_1") (+ "+") (number_literal "0xa3")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar19 = 0x112;" (assignment_expression "uVar19 = 0x112" (identifier "uVar19") (= "=") (number_literal "0x112")) (; ";")) (expression_statement "param_1[0x98] = 0x112;" (assignment_expression "param_1[0x98] = 0x112" (subscript_expression "param_1[0x98]" (identifier "param_1") ([ "[") (number_literal "0x98") (] "]")) (= "=") (number_literal "0x112")) (; ";")) (goto_statement "goto LAB_0002318d;" (goto "goto") (statement_identifier "LAB_0002318d") (; ";")) (} "}")))) (case_statement "default:\nLAB_00023150:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      break;" (default "default") (: ":") (labeled_statement "LAB_00023150:\n      bVar21 = (byte)param_1[0xcc];" (statement_identifier "LAB_00023150") (: ":") (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" (identifier "bVar21") (= "=") (cast_expression "(byte)param_1[0xcc]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_1[0xcc]" (identifier "param_1") ([ "[") (number_literal "0xcc") (] "]")))) (; ";"))) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" (identifier "puVar13") (= "=") (identifier "auStack_6c")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x32:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10e;\n        uVar19 = 0x10e;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236f8;" (case "case") (number_literal "0x32") (: ":") (if_statement "if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10e;\n        uVar19 = 0x10e;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }" (if "if") (parenthesized_expression "((*param_1 & 0x80000) == 0)" (( "(") (binary_expression "(*param_1 & 0x80000) == 0" (parenthesized_expression "(*param_1 & 0x80000)" (( "(") (binary_expression "*param_1 & 0x80000" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (& "&") (number_literal "0x80000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        param_1[0x98] = 0x10e;\n        uVar19 = 0x10e;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }" ({ "{") (expression_statement "param_1[0x98] = 0x10e;" (assignment_expression "param_1[0x98] = 0x10e" (subscript_expression "param_1[0x98]" (identifier "param_1") ([ "[") (number_literal "0x98") (] "]")) (= "=") (number_literal "0x10e")) (; ";")) (expression_statement "uVar19 = 0x10e;" (assignment_expression "uVar19 = 0x10e" (identifier "uVar19") (= "=") (number_literal "0x10e")) (; ";")) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" (identifier "puVar13") (= "=") (identifier "auStack_6c")) (; ";")) (goto_statement "goto LAB_0002318d;" (goto "goto") (statement_identifier "LAB_0002318d") (; ";")) (} "}"))) (goto_statement "goto code_r0x000236f8;" (goto "goto") (statement_identifier "code_r0x000236f8") (; ";"))) (case_statement "case 0x34:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10f;\n        uVar19 = 0x10f;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236e0;" (case "case") (number_literal "0x34") (: ":") (if_statement "if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x10f;\n        uVar19 = 0x10f;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }" (if "if") (parenthesized_expression "((*param_1 & 0x80000) == 0)" (( "(") (binary_expression "(*param_1 & 0x80000) == 0" (parenthesized_expression "(*param_1 & 0x80000)" (( "(") (binary_expression "*param_1 & 0x80000" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (& "&") (number_literal "0x80000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        param_1[0x98] = 0x10f;\n        uVar19 = 0x10f;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }" ({ "{") (expression_statement "param_1[0x98] = 0x10f;" (assignment_expression "param_1[0x98] = 0x10f" (subscript_expression "param_1[0x98]" (identifier "param_1") ([ "[") (number_literal "0x98") (] "]")) (= "=") (number_literal "0x10f")) (; ";")) (expression_statement "uVar19 = 0x10f;" (assignment_expression "uVar19 = 0x10f" (identifier "uVar19") (= "=") (number_literal "0x10f")) (; ";")) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" (identifier "puVar13") (= "=") (identifier "auStack_6c")) (; ";")) (goto_statement "goto LAB_0002318d;" (goto "goto") (statement_identifier "LAB_0002318d") (; ";")) (} "}"))) (goto_statement "goto code_r0x000236e0;" (goto "goto") (statement_identifier "code_r0x000236e0") (; ";"))) (case_statement "case 0x35:\n      bVar21 = 1;\n      goto code_r0x000233b2;" (case "case") (number_literal "0x35") (: ":") (expression_statement "bVar21 = 1;" (assignment_expression "bVar21 = 1" (identifier "bVar21") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto code_r0x000233b2;" (goto "goto") (statement_identifier "code_r0x000233b2") (; ";"))) (case_statement "case 0x38:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x111;\n        uVar19 = 0x111;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x00023710;" (case "case") (number_literal "0x38") (: ":") (if_statement "if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x111;\n        uVar19 = 0x111;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }" (if "if") (parenthesized_expression "((*param_1 & 0x80000) == 0)" (( "(") (binary_expression "(*param_1 & 0x80000) == 0" (parenthesized_expression "(*param_1 & 0x80000)" (( "(") (binary_expression "*param_1 & 0x80000" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (& "&") (number_literal "0x80000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        param_1[0x98] = 0x111;\n        uVar19 = 0x111;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }" ({ "{") (expression_statement "param_1[0x98] = 0x111;" (assignment_expression "param_1[0x98] = 0x111" (subscript_expression "param_1[0x98]" (identifier "param_1") ([ "[") (number_literal "0x98") (] "]")) (= "=") (number_literal "0x111")) (; ";")) (expression_statement "uVar19 = 0x111;" (assignment_expression "uVar19 = 0x111" (identifier "uVar19") (= "=") (number_literal "0x111")) (; ";")) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" (identifier "puVar13") (= "=") (identifier "auStack_6c")) (; ";")) (goto_statement "goto LAB_0002318d;" (goto "goto") (statement_identifier "LAB_0002318d") (; ";")) (} "}"))) (goto_statement "goto code_r0x00023710;" (goto "goto") (statement_identifier "code_r0x00023710") (; ";"))) (case_statement "case 0x49:" (case "case") (number_literal "0x49") (: ":")) (case_statement "case 0x69:\n      bVar4 = true;\n      goto code_r0x0002342a;" (case "case") (number_literal "0x69") (: ":") (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" (identifier "bVar4") (= "=") (true "true")) (; ";")) (goto_statement "goto code_r0x0002342a;" (goto "goto") (statement_identifier "code_r0x0002342a") (; ";"))) (case_statement "case 0x4d:" (case "case") (number_literal "0x4d") (: ":")) (case_statement "case 0x6d:\n      bVar21 = (byte)param_1[0xcc];\n      puVar13 = auStack_6c;\n      if ((*param_1 & 0x80000) != 0) break;\n      if (bVar21 != 0) {\n        pcVar8 = &UNK_0002f474 + (uVar19 == 0x77);\n        goto code_r0x0002345c;\n      }\n      uVar5 = 0;\n      do {\n        *(undefined4 *)((int)local_40 + uVar5) = 0;\n        uVar5 = uVar5 + 4;\n      } while (uVar5 < 0x20);\n      uVar5 = 0;\n      do {\n        if (*(byte *)((int)param_1 + uVar5 + 8) == 2) {\n          local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 != 0x100);\n      if (uVar19 == 0x57) goto code_r0x00023b34;\n      goto code_r0x00023ae7;" (case "case") (number_literal "0x6d") (: ":") (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" (identifier "bVar21") (= "=") (cast_expression "(byte)param_1[0xcc]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_1[0xcc]" (identifier "param_1") ([ "[") (number_literal "0xcc") (] "]")))) (; ";")) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" (identifier "puVar13") (= "=") (identifier "auStack_6c")) (; ";")) (if_statement "if ((*param_1 & 0x80000) != 0) break;" (if "if") (parenthesized_expression "((*param_1 & 0x80000) != 0)" (( "(") (binary_expression "(*param_1 & 0x80000) != 0" (parenthesized_expression "(*param_1 & 0x80000)" (( "(") (binary_expression "*param_1 & 0x80000" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (& "&") (number_literal "0x80000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (bVar21 != 0) {\n        pcVar8 = &UNK_0002f474 + (uVar19 == 0x77);\n        goto code_r0x0002345c;\n      }" (if "if") (parenthesized_expression "(bVar21 != 0)" (( "(") (binary_expression "bVar21 != 0" (identifier "bVar21") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        pcVar8 = &UNK_0002f474 + (uVar19 == 0x77);\n        goto code_r0x0002345c;\n      }" ({ "{") (expression_statement "pcVar8 = &UNK_0002f474 + (uVar19 == 0x77);" (assignment_expression "pcVar8 = &UNK_0002f474 + (uVar19 == 0x77)" (identifier "pcVar8") (= "=") (binary_expression "&UNK_0002f474 + (uVar19 == 0x77)" (pointer_expression "&UNK_0002f474" (& "&") (identifier "UNK_0002f474")) (+ "+") (parenthesized_expression "(uVar19 == 0x77)" (( "(") (binary_expression "uVar19 == 0x77" (identifier "uVar19") (== "==") (number_literal "0x77")) () ")")))) (; ";")) (goto_statement "goto code_r0x0002345c;" (goto "goto") (statement_identifier "code_r0x0002345c") (; ";")) (} "}"))) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n        *(undefined4 *)((int)local_40 + uVar5) = 0;\n        uVar5 = uVar5 + 4;\n      } while (uVar5 < 0x20);" (do "do") (compound_statement "{\n        *(undefined4 *)((int)local_40 + uVar5) = 0;\n        uVar5 = uVar5 + 4;\n      }" ({ "{") (expression_statement "*(undefined4 *)((int)local_40 + uVar5) = 0;" (assignment_expression "*(undefined4 *)((int)local_40 + uVar5) = 0" (pointer_expression "*(undefined4 *)((int)local_40 + uVar5)" (* "*") (cast_expression "(undefined4 *)((int)local_40 + uVar5)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_40 + uVar5)" (( "(") (binary_expression "(int)local_40 + uVar5" (cast_expression "(int)local_40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_40")) (+ "+") (identifier "uVar5")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar5 = uVar5 + 4;" (assignment_expression "uVar5 = uVar5 + 4" (identifier "uVar5") (= "=") (binary_expression "uVar5 + 4" (identifier "uVar5") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar5 < 0x20)" (( "(") (binary_expression "uVar5 < 0x20" (identifier "uVar5") (< "<") (number_literal "0x20")) () ")")) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n        if (*(byte *)((int)param_1 + uVar5 + 8) == 2) {\n          local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n        }\n        uVar5 = uVar5 + 1;\n      } while (uVar5 != 0x100);" (do "do") (compound_statement "{\n        if (*(byte *)((int)param_1 + uVar5 + 8) == 2) {\n          local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n        }\n        uVar5 = uVar5 + 1;\n      }" ({ "{") (if_statement "if (*(byte *)((int)param_1 + uVar5 + 8) == 2) {\n          local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n        }" (if "if") (parenthesized_expression "(*(byte *)((int)param_1 + uVar5 + 8) == 2)" (( "(") (binary_expression "*(byte *)((int)param_1 + uVar5 + 8) == 2" (pointer_expression "*(byte *)((int)param_1 + uVar5 + 8)" (* "*") (cast_expression "(byte *)((int)param_1 + uVar5 + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + uVar5 + 8)" (( "(") (binary_expression "(int)param_1 + uVar5 + 8" (binary_expression "(int)param_1 + uVar5" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (identifier "uVar5")) (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n          local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);\n        }" ({ "{") (expression_statement "local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);" (assignment_expression "local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f)" (subscript_expression "local_40[uVar5 >> 5]" (identifier "local_40") ([ "[") (binary_expression "uVar5 >> 5" (identifier "uVar5") (>> ">>") (number_literal "5")) (] "]")) (= "=") (binary_expression "local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f)" (subscript_expression "local_40[uVar5 >> 5]" (identifier "local_40") ([ "[") (binary_expression "uVar5 >> 5" (identifier "uVar5") (>> ">>") (number_literal "5")) (] "]")) (| "|") (binary_expression "1 << ((byte)uVar5 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "((byte)uVar5 & 0x1f)" (( "(") (binary_expression "(byte)uVar5 & 0x1f" (cast_expression "(byte)uVar5" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar5")) (& "&") (number_literal "0x1f")) () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" (identifier "uVar5") (= "=") (binary_expression "uVar5 + 1" (identifier "uVar5") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar5 != 0x100)" (( "(") (binary_expression "uVar5 != 0x100" (identifier "uVar5") (!= "!=") (number_literal "0x100")) () ")")) (; ";")) (if_statement "if (uVar19 == 0x57) goto code_r0x00023b34;" (if "if") (parenthesized_expression "(uVar19 == 0x57)" (( "(") (binary_expression "uVar19 == 0x57" (identifier "uVar19") (== "==") (number_literal "0x57")) () ")")) (goto_statement "goto code_r0x00023b34;" (goto "goto") (statement_identifier "code_r0x00023b34") (; ";"))) (goto_statement "goto code_r0x00023ae7;" (goto "goto") (statement_identifier "code_r0x00023ae7") (; ";"))) (case_statement "case 0x51:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5b;\n      puVar13 = auStack_6c;\n      break;" (case "case") (number_literal "0x51") (: ":") (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" (identifier "bVar21") (= "=") (cast_expression "(byte)param_1[0xcc]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_1[0xcc]" (identifier "param_1") ([ "[") (number_literal "0xcc") (] "]")))) (; ";")) (expression_statement "uVar19 = 0x5b;" (assignment_expression "uVar19 = 0x5b" (identifier "uVar19") (= "=") (number_literal "0x5b")) (; ";")) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" (identifier "puVar13") (= "=") (identifier "auStack_6c")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x52:\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x5c;\n      puVar13 = auStack_6c;\n      break;" (case "case") (number_literal "0x52") (: ":") (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" (identifier "bVar21") (= "=") (cast_expression "(byte)param_1[0xcc]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_1[0xcc]" (identifier "param_1") ([ "[") (number_literal "0xcc") (] "]")))) (; ";")) (expression_statement "uVar19 = 0x5c;" (assignment_expression "uVar19 = 0x5c" (identifier "uVar19") (= "=") (number_literal "0x5c")) (; ";")) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" (identifier "puVar13") (= "=") (identifier "auStack_6c")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x54:\n      goto code_r0x000235d7;" (case "case") (number_literal "0x54") (: ":") (goto_statement "goto code_r0x000235d7;" (goto "goto") (statement_identifier "code_r0x000235d7") (; ";"))) (case_statement "case 0x56:\n      if ((*param_1 & 0x80000) == 0) goto code_r0x00023880;\n      goto code_r0x000236c8;" (case "case") (number_literal "0x56") (: ":") (if_statement "if ((*param_1 & 0x80000) == 0) goto code_r0x00023880;" (if "if") (parenthesized_expression "((*param_1 & 0x80000) == 0)" (( "(") (binary_expression "(*param_1 & 0x80000) == 0" (parenthesized_expression "(*param_1 & 0x80000)" (( "(") (binary_expression "*param_1 & 0x80000" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (& "&") (number_literal "0x80000")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto code_r0x00023880;" (goto "goto") (statement_identifier "code_r0x00023880") (; ";"))) (goto_statement "goto code_r0x000236c8;" (goto "goto") (statement_identifier "code_r0x000236c8") (; ";"))) (case_statement "case 0x58:\n      if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x110;\n        uVar19 = 0x110;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }\n      goto code_r0x000236a8;" (case "case") (number_literal "0x58") (: ":") (if_statement "if ((*param_1 & 0x80000) == 0) {\n        param_1[0x98] = 0x110;\n        uVar19 = 0x110;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }" (if "if") (parenthesized_expression "((*param_1 & 0x80000) == 0)" (( "(") (binary_expression "(*param_1 & 0x80000) == 0" (parenthesized_expression "(*param_1 & 0x80000)" (( "(") (binary_expression "*param_1 & 0x80000" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (& "&") (number_literal "0x80000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        param_1[0x98] = 0x110;\n        uVar19 = 0x110;\n        puVar13 = auStack_6c;\n        goto LAB_0002318d;\n      }" ({ "{") (expression_statement "param_1[0x98] = 0x110;" (assignment_expression "param_1[0x98] = 0x110" (subscript_expression "param_1[0x98]" (identifier "param_1") ([ "[") (number_literal "0x98") (] "]")) (= "=") (number_literal "0x110")) (; ";")) (expression_statement "uVar19 = 0x110;" (assignment_expression "uVar19 = 0x110" (identifier "uVar19") (= "=") (number_literal "0x110")) (; ";")) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" (identifier "puVar13") (= "=") (identifier "auStack_6c")) (; ";")) (goto_statement "goto LAB_0002318d;" (goto "goto") (statement_identifier "LAB_0002318d") (; ";")) (} "}"))) (goto_statement "goto code_r0x000236a8;" (goto "goto") (statement_identifier "code_r0x000236a8") (; ";"))) (case_statement "case 0x71:\n      bStack_51 = 1;\n      goto code_r0x00023295;" (case "case") (number_literal "0x71") (: ":") (expression_statement "bStack_51 = 1;" (assignment_expression "bStack_51 = 1" (identifier "bStack_51") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto code_r0x00023295;" (goto "goto") (statement_identifier "code_r0x00023295") (; ";"))) (case_statement "case 0x72:\n      bVar21 = 1;\n      goto code_r0x000233fa;" (case "case") (number_literal "0x72") (: ":") (expression_statement "bVar21 = 1;" (assignment_expression "bVar21 = 1" (identifier "bVar21") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto code_r0x000233fa;" (goto "goto") (statement_identifier "code_r0x000233fa") (; ";"))) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x54:\n    if ((((*param_1 & 8) != 0) || (param_1[0x98] - 0x106 < 2)) || (param_1[0x98] == 0xffffffff)) {\ncode_r0x00023880:\n      param_1[0x98] = 0x10c;\n      uVar19 = 0x10c;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }\ncode_r0x000235d7:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x5e;\n    puVar13 = auStack_6c;\n    break;" (case "case") (number_literal "0x54") (: ":") (if_statement "if ((((*param_1 & 8) != 0) || (param_1[0x98] - 0x106 < 2)) || (param_1[0x98] == 0xffffffff)) {\ncode_r0x00023880:\n      param_1[0x98] = 0x10c;\n      uVar19 = 0x10c;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" (if "if") (parenthesized_expression "((((*param_1 & 8) != 0) || (param_1[0x98] - 0x106 < 2)) || (param_1[0x98] == 0xffffffff))" (( "(") (binary_expression "(((*param_1 & 8) != 0) || (param_1[0x98] - 0x106 < 2)) || (param_1[0x98] == 0xffffffff)" (parenthesized_expression "(((*param_1 & 8) != 0) || (param_1[0x98] - 0x106 < 2))" (( "(") (binary_expression "((*param_1 & 8) != 0) || (param_1[0x98] - 0x106 < 2)" (parenthesized_expression "((*param_1 & 8) != 0)" (( "(") (binary_expression "(*param_1 & 8) != 0" (parenthesized_expression "(*param_1 & 8)" (( "(") (binary_expression "*param_1 & 8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(param_1[0x98] - 0x106 < 2)" (( "(") (binary_expression "param_1[0x98] - 0x106 < 2" (binary_expression "param_1[0x98] - 0x106" (subscript_expression "param_1[0x98]" (identifier "param_1") ([ "[") (number_literal "0x98") (] "]")) (- "-") (number_literal "0x106")) (< "<") (number_literal "2")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(param_1[0x98] == 0xffffffff)" (( "(") (binary_expression "param_1[0x98] == 0xffffffff" (subscript_expression "param_1[0x98]" (identifier "param_1") ([ "[") (number_literal "0x98") (] "]")) (== "==") (number_literal "0xffffffff")) () ")"))) () ")")) (compound_statement "{\ncode_r0x00023880:\n      param_1[0x98] = 0x10c;\n      uVar19 = 0x10c;\n      puVar13 = auStack_6c;\n      goto LAB_0002318d;\n    }" ({ "{") (labeled_statement "code_r0x00023880:\n      param_1[0x98] = 0x10c;" (statement_identifier "code_r0x00023880") (: ":") (expression_statement "param_1[0x98] = 0x10c;" (assignment_expression "param_1[0x98] = 0x10c" (subscript_expression "param_1[0x98]" (identifier "param_1") ([ "[") (number_literal "0x98") (] "]")) (= "=") (number_literal "0x10c")) (; ";"))) (expression_statement "uVar19 = 0x10c;" (assignment_expression "uVar19 = 0x10c" (identifier "uVar19") (= "=") (number_literal "0x10c")) (; ";")) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" (identifier "puVar13") (= "=") (identifier "auStack_6c")) (; ";")) (goto_statement "goto LAB_0002318d;" (goto "goto") (statement_identifier "LAB_0002318d") (; ";")) (} "}"))) (labeled_statement "code_r0x000235d7:\n    bVar21 = (byte)param_1[0xcc];" (statement_identifier "code_r0x000235d7") (: ":") (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" (identifier "bVar21") (= "=") (cast_expression "(byte)param_1[0xcc]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_1[0xcc]" (identifier "param_1") ([ "[") (number_literal "0xcc") (] "]")))) (; ";"))) (expression_statement "uVar19 = 0x5e;" (assignment_expression "uVar19 = 0x5e" (identifier "uVar19") (= "=") (number_literal "0x5e")) (; ";")) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" (identifier "puVar13") (= "=") (identifier "auStack_6c")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x56:\ncode_r0x000236c8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x60;\n    puVar13 = auStack_6c;\n    break;" (case "case") (number_literal "0x56") (: ":") (labeled_statement "code_r0x000236c8:\n    bVar21 = (byte)param_1[0xcc];" (statement_identifier "code_r0x000236c8") (: ":") (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" (identifier "bVar21") (= "=") (cast_expression "(byte)param_1[0xcc]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_1[0xcc]" (identifier "param_1") ([ "[") (number_literal "0xcc") (] "]")))) (; ";"))) (expression_statement "uVar19 = 0x60;" (assignment_expression "uVar19 = 0x60" (identifier "uVar19") (= "=") (number_literal "0x60")) (; ";")) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" (identifier "puVar13") (= "=") (identifier "auStack_6c")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x58:\ncode_r0x000236a8:\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x62;\n    puVar13 = auStack_6c;\n    break;" (case "case") (number_literal "0x58") (: ":") (labeled_statement "code_r0x000236a8:\n    bVar21 = (byte)param_1[0xcc];" (statement_identifier "code_r0x000236a8") (: ":") (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" (identifier "bVar21") (= "=") (cast_expression "(byte)param_1[0xcc]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_1[0xcc]" (identifier "param_1") ([ "[") (number_literal "0xcc") (] "]")))) (; ";"))) (expression_statement "uVar19 = 0x62;" (assignment_expression "uVar19 = 0x62" (identifier "uVar19") (= "=") (number_literal "0x62")) (; ";")) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" (identifier "puVar13") (= "=") (identifier "auStack_6c")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x71:\n    bStack_51 = 0;\ncode_r0x00023295:\n    auStack_50[0] = *param_1;\n    puVar13 = auStack_6c;\n    if ((((auStack_50[0] & 0x200) != 0) &&\n        (puVar13 = auStack_6c, (((byte)(auStack_50[0] >> 0xc) ^ 1) & 1) == bStack_51)) &&\n       (((auStack_50[0] & 0x10) != 0 || (puVar13 = auStack_6c, (byte)param_1[0xa3] == 0)))) {\n      local_5c[1] = pbVar7 + (int)pbVar12;\n      param_1[0x9b] = 0xffffffff;\n      param_1[0x9a] = 0xffffffff;\n      if (local_5c[1] == local_5c[0]) {\ncode_r0x00023b5a:\n        puVar13 = auStack_6c;\n        if (bStack_51 == 0) goto code_r0x00023a30;\n      }\n      else {\n        bVar21 = pbVar7[1];\n        pbVar12 = (byte *)(int)(char)bVar21;\n        if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar7 = (byte *)0xffffffff;\n          local_60 = pbVar12;\n          do {\n            pbVar3 = local_60;\n            if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }\n            pbVar7 = pbVar3 + -0x30;\n            param_1[0x9a] = (uint)pbVar7;\n            local_5c[0] = local_5c[0] + 1;\n            if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }\n            bVar21 = *local_5c[0];\n            local_60 = (byte *)(int)(char)bVar21;\n            pbVar12 = (byte *)(int)(char)bVar21 + -0x30;\n          } while ((byte)pbVar12 < 10);\n          if (bVar21 == 0x2c) {\n            if ((int)pbVar7 < 0) goto code_r0x00023bed;\ncode_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;\n            if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }\n            bVar21 = local_5c[0][1];\n            if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            local_5c[0] = pbVar12;\n            goto code_r0x00023bd8;\n          }\n          param_1[0x9b] = (uint)pbVar7;\n          puVar17 = auStack_6c;\n          if (bStack_51 == 0) goto code_r0x00023a30;\n        }\n        else {\n          if (bVar21 == 0x2c) {\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }\ncode_r0x00023bd8:\n          if (bStack_51 == 0) goto code_r0x00023a3a;\n        }\n        puVar13 = auStack_6c;\n        if (*local_5c[0] == 0x5c) goto code_r0x00023a2b;\n      }\ncode_r0x00023a04:\n      if ((*(uint *)(puVar13 + 0x1c) & 0x200000) == 0) {\n        *(byte **)(puVar13 + -4) = pbVar12;\n        pcVar8 = "invalid content of \\{\\}";\n        ppbVar15 = (byte **)(puVar13 + -8);\n        *(undefined4 *)(puVar13 + -8) = 5;\ncode_r0x00023a1b:\n        while( true ) {\n          *(char **)((int)ppbVar15 + -4) = pcVar8;\n          puVar16 = (undefined1 *)((int)ppbVar15 + -8);\n          *(undefined4 *)((int)ppbVar15 + -8) = 0;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23;\n          uVar11 = dcgettext();\n          *(undefined4 *)((int)ppbVar15 + -8) = uVar11;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b;\n          FUN_0001be40();\n          pbVar12 = extraout_ECX;\ncode_r0x00023a2b:\n          *(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;\n          puVar17 = puVar16;\ncode_r0x00023a30:\n          puVar13 = puVar17;\n          puVar18 = puVar17;\n          if (*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)) break;\ncode_r0x00023a3a:\n          puVar13 = puVar18;\n          if ((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))\n          break;\n          uVar5 = param_1[0x9b];\n          if ((int)uVar5 < 0) {\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }\n          if ((int)uVar5 < (int)uVar19) break;\n          if ((int)uVar5 < 0x8000) goto code_r0x00023a66;\n          pcVar8 = "regular expression too big";\n          *(uint *)(puVar18 + -4) = uVar19;\n          ppbVar15 = (byte **)(puVar18 + -8);\n          *(undefined4 *)(puVar18 + -8) = 5;\n        }\n        goto code_r0x00023a04;\n      }\n    }\n    bVar21 = (byte)param_1[0xcc];\n    uVar19 = 0x7b;\n    break;" (case "case") (number_literal "0x71") (: ":") (expression_statement "bStack_51 = 0;" (assignment_expression "bStack_51 = 0" (identifier "bStack_51") (= "=") (number_literal "0")) (; ";")) (labeled_statement "code_r0x00023295:\n    auStack_50[0] = *param_1;" (statement_identifier "code_r0x00023295") (: ":") (expression_statement "auStack_50[0] = *param_1;" (assignment_expression "auStack_50[0] = *param_1" (subscript_expression "auStack_50[0]" (identifier "auStack_50") ([ "[") (number_literal "0") (] "]")) (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";"))) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" (identifier "puVar13") (= "=") (identifier "auStack_6c")) (; ";")) (if_statement "if ((((auStack_50[0] & 0x200) != 0) &&\n        (puVar13 = auStack_6c, (((byte)(auStack_50[0] >> 0xc) ^ 1) & 1) == bStack_51)) &&\n       (((auStack_50[0] & 0x10) != 0 || (puVar13 = auStack_6c, (byte)param_1[0xa3] == 0)))) {\n      local_5c[1] = pbVar7 + (int)pbVar12;\n      param_1[0x9b] = 0xffffffff;\n      param_1[0x9a] = 0xffffffff;\n      if (local_5c[1] == local_5c[0]) {\ncode_r0x00023b5a:\n        puVar13 = auStack_6c;\n        if (bStack_51 == 0) goto code_r0x00023a30;\n      }\n      else {\n        bVar21 = pbVar7[1];\n        pbVar12 = (byte *)(int)(char)bVar21;\n        if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar7 = (byte *)0xffffffff;\n          local_60 = pbVar12;\n          do {\n            pbVar3 = local_60;\n            if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }\n            pbVar7 = pbVar3 + -0x30;\n            param_1[0x9a] = (uint)pbVar7;\n            local_5c[0] = local_5c[0] + 1;\n            if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }\n            bVar21 = *local_5c[0];\n            local_60 = (byte *)(int)(char)bVar21;\n            pbVar12 = (byte *)(int)(char)bVar21 + -0x30;\n          } while ((byte)pbVar12 < 10);\n          if (bVar21 == 0x2c) {\n            if ((int)pbVar7 < 0) goto code_r0x00023bed;\ncode_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;\n            if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }\n            bVar21 = local_5c[0][1];\n            if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            local_5c[0] = pbVar12;\n            goto code_r0x00023bd8;\n          }\n          param_1[0x9b] = (uint)pbVar7;\n          puVar17 = auStack_6c;\n          if (bStack_51 == 0) goto code_r0x00023a30;\n        }\n        else {\n          if (bVar21 == 0x2c) {\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }\ncode_r0x00023bd8:\n          if (bStack_51 == 0) goto code_r0x00023a3a;\n        }\n        puVar13 = auStack_6c;\n        if (*local_5c[0] == 0x5c) goto code_r0x00023a2b;\n      }\ncode_r0x00023a04:\n      if ((*(uint *)(puVar13 + 0x1c) & 0x200000) == 0) {\n        *(byte **)(puVar13 + -4) = pbVar12;\n        pcVar8 = "invalid content of \\{\\}";\n        ppbVar15 = (byte **)(puVar13 + -8);\n        *(undefined4 *)(puVar13 + -8) = 5;\ncode_r0x00023a1b:\n        while( true ) {\n          *(char **)((int)ppbVar15 + -4) = pcVar8;\n          puVar16 = (undefined1 *)((int)ppbVar15 + -8);\n          *(undefined4 *)((int)ppbVar15 + -8) = 0;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23;\n          uVar11 = dcgettext();\n          *(undefined4 *)((int)ppbVar15 + -8) = uVar11;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b;\n          FUN_0001be40();\n          pbVar12 = extraout_ECX;\ncode_r0x00023a2b:\n          *(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;\n          puVar17 = puVar16;\ncode_r0x00023a30:\n          puVar13 = puVar17;\n          puVar18 = puVar17;\n          if (*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)) break;\ncode_r0x00023a3a:\n          puVar13 = puVar18;\n          if ((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))\n          break;\n          uVar5 = param_1[0x9b];\n          if ((int)uVar5 < 0) {\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }\n          if ((int)uVar5 < (int)uVar19) break;\n          if ((int)uVar5 < 0x8000) goto code_r0x00023a66;\n          pcVar8 = "regular expression too big";\n          *(uint *)(puVar18 + -4) = uVar19;\n          ppbVar15 = (byte **)(puVar18 + -8);\n          *(undefined4 *)(puVar18 + -8) = 5;\n        }\n        goto code_r0x00023a04;\n      }\n    }" (if "if") (parenthesized_expression "((((auStack_50[0] & 0x200) != 0) &&\n        (puVar13 = auStack_6c, (((byte)(auStack_50[0] >> 0xc) ^ 1) & 1) == bStack_51)) &&\n       (((auStack_50[0] & 0x10) != 0 || (puVar13 = auStack_6c, (byte)param_1[0xa3] == 0))))" (( "(") (binary_expression "(((auStack_50[0] & 0x200) != 0) &&\n        (puVar13 = auStack_6c, (((byte)(auStack_50[0] >> 0xc) ^ 1) & 1) == bStack_51)) &&\n       (((auStack_50[0] & 0x10) != 0 || (puVar13 = auStack_6c, (byte)param_1[0xa3] == 0)))" (parenthesized_expression "(((auStack_50[0] & 0x200) != 0) &&\n        (puVar13 = auStack_6c, (((byte)(auStack_50[0] >> 0xc) ^ 1) & 1) == bStack_51))" (( "(") (binary_expression "((auStack_50[0] & 0x200) != 0) &&\n        (puVar13 = auStack_6c, (((byte)(auStack_50[0] >> 0xc) ^ 1) & 1) == bStack_51)" (parenthesized_expression "((auStack_50[0] & 0x200) != 0)" (( "(") (binary_expression "(auStack_50[0] & 0x200) != 0" (parenthesized_expression "(auStack_50[0] & 0x200)" (( "(") (binary_expression "auStack_50[0] & 0x200" (subscript_expression "auStack_50[0]" (identifier "auStack_50") ([ "[") (number_literal "0") (] "]")) (& "&") (number_literal "0x200")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(puVar13 = auStack_6c, (((byte)(auStack_50[0] >> 0xc) ^ 1) & 1) == bStack_51)" (( "(") (comma_expression "puVar13 = auStack_6c, (((byte)(auStack_50[0] >> 0xc) ^ 1) & 1) == bStack_51" (assignment_expression "puVar13 = auStack_6c" (identifier "puVar13") (= "=") (identifier "auStack_6c")) (, ",") (binary_expression "(((byte)(auStack_50[0] >> 0xc) ^ 1) & 1) == bStack_51" (parenthesized_expression "(((byte)(auStack_50[0] >> 0xc) ^ 1) & 1)" (( "(") (binary_expression "((byte)(auStack_50[0] >> 0xc) ^ 1) & 1" (parenthesized_expression "((byte)(auStack_50[0] >> 0xc) ^ 1)" (( "(") (binary_expression "(byte)(auStack_50[0] >> 0xc) ^ 1" (call_expression "(byte)(auStack_50[0] >> 0xc)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(auStack_50[0] >> 0xc)" (( "(") (binary_expression "auStack_50[0] >> 0xc" (subscript_expression "auStack_50[0]" (identifier "auStack_50") ([ "[") (number_literal "0") (] "]")) (>> ">>") (number_literal "0xc")) () ")"))) (^ "^") (number_literal "1")) () ")")) (& "&") (number_literal "1")) () ")")) (== "==") (identifier "bStack_51"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(((auStack_50[0] & 0x10) != 0 || (puVar13 = auStack_6c, (byte)param_1[0xa3] == 0)))" (( "(") (parenthesized_expression "((auStack_50[0] & 0x10) != 0 || (puVar13 = auStack_6c, (byte)param_1[0xa3] == 0))" (( "(") (binary_expression "(auStack_50[0] & 0x10) != 0 || (puVar13 = auStack_6c, (byte)param_1[0xa3] == 0)" (binary_expression "(auStack_50[0] & 0x10) != 0" (parenthesized_expression "(auStack_50[0] & 0x10)" (( "(") (binary_expression "auStack_50[0] & 0x10" (subscript_expression "auStack_50[0]" (identifier "auStack_50") ([ "[") (number_literal "0") (] "]")) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "(puVar13 = auStack_6c, (byte)param_1[0xa3] == 0)" (( "(") (comma_expression "puVar13 = auStack_6c, (byte)param_1[0xa3] == 0" (assignment_expression "puVar13 = auStack_6c" (identifier "puVar13") (= "=") (identifier "auStack_6c")) (, ",") (binary_expression "(byte)param_1[0xa3] == 0" (cast_expression "(byte)param_1[0xa3]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_1[0xa3]" (identifier "param_1") ([ "[") (number_literal "0xa3") (] "]"))) (== "==") (number_literal "0"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n      local_5c[1] = pbVar7 + (int)pbVar12;\n      param_1[0x9b] = 0xffffffff;\n      param_1[0x9a] = 0xffffffff;\n      if (local_5c[1] == local_5c[0]) {\ncode_r0x00023b5a:\n        puVar13 = auStack_6c;\n        if (bStack_51 == 0) goto code_r0x00023a30;\n      }\n      else {\n        bVar21 = pbVar7[1];\n        pbVar12 = (byte *)(int)(char)bVar21;\n        if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar7 = (byte *)0xffffffff;\n          local_60 = pbVar12;\n          do {\n            pbVar3 = local_60;\n            if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }\n            pbVar7 = pbVar3 + -0x30;\n            param_1[0x9a] = (uint)pbVar7;\n            local_5c[0] = local_5c[0] + 1;\n            if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }\n            bVar21 = *local_5c[0];\n            local_60 = (byte *)(int)(char)bVar21;\n            pbVar12 = (byte *)(int)(char)bVar21 + -0x30;\n          } while ((byte)pbVar12 < 10);\n          if (bVar21 == 0x2c) {\n            if ((int)pbVar7 < 0) goto code_r0x00023bed;\ncode_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;\n            if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }\n            bVar21 = local_5c[0][1];\n            if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            local_5c[0] = pbVar12;\n            goto code_r0x00023bd8;\n          }\n          param_1[0x9b] = (uint)pbVar7;\n          puVar17 = auStack_6c;\n          if (bStack_51 == 0) goto code_r0x00023a30;\n        }\n        else {\n          if (bVar21 == 0x2c) {\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }\ncode_r0x00023bd8:\n          if (bStack_51 == 0) goto code_r0x00023a3a;\n        }\n        puVar13 = auStack_6c;\n        if (*local_5c[0] == 0x5c) goto code_r0x00023a2b;\n      }\ncode_r0x00023a04:\n      if ((*(uint *)(puVar13 + 0x1c) & 0x200000) == 0) {\n        *(byte **)(puVar13 + -4) = pbVar12;\n        pcVar8 = "invalid content of \\{\\}";\n        ppbVar15 = (byte **)(puVar13 + -8);\n        *(undefined4 *)(puVar13 + -8) = 5;\ncode_r0x00023a1b:\n        while( true ) {\n          *(char **)((int)ppbVar15 + -4) = pcVar8;\n          puVar16 = (undefined1 *)((int)ppbVar15 + -8);\n          *(undefined4 *)((int)ppbVar15 + -8) = 0;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23;\n          uVar11 = dcgettext();\n          *(undefined4 *)((int)ppbVar15 + -8) = uVar11;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b;\n          FUN_0001be40();\n          pbVar12 = extraout_ECX;\ncode_r0x00023a2b:\n          *(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;\n          puVar17 = puVar16;\ncode_r0x00023a30:\n          puVar13 = puVar17;\n          puVar18 = puVar17;\n          if (*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)) break;\ncode_r0x00023a3a:\n          puVar13 = puVar18;\n          if ((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))\n          break;\n          uVar5 = param_1[0x9b];\n          if ((int)uVar5 < 0) {\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }\n          if ((int)uVar5 < (int)uVar19) break;\n          if ((int)uVar5 < 0x8000) goto code_r0x00023a66;\n          pcVar8 = "regular expression too big";\n          *(uint *)(puVar18 + -4) = uVar19;\n          ppbVar15 = (byte **)(puVar18 + -8);\n          *(undefined4 *)(puVar18 + -8) = 5;\n        }\n        goto code_r0x00023a04;\n      }\n    }" ({ "{") (expression_statement "local_5c[1] = pbVar7 + (int)pbVar12;" (assignment_expression "local_5c[1] = pbVar7 + (int)pbVar12" (subscript_expression "local_5c[1]" (identifier "local_5c") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "pbVar7 + (int)pbVar12" (identifier "pbVar7") (+ "+") (cast_expression "(int)pbVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar12")))) (; ";")) (expression_statement "param_1[0x9b] = 0xffffffff;" (assignment_expression "param_1[0x9b] = 0xffffffff" (subscript_expression "param_1[0x9b]" (identifier "param_1") ([ "[") (number_literal "0x9b") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "param_1[0x9a] = 0xffffffff;" (assignment_expression "param_1[0x9a] = 0xffffffff" (subscript_expression "param_1[0x9a]" (identifier "param_1") ([ "[") (number_literal "0x9a") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (if_statement "if (local_5c[1] == local_5c[0]) {\ncode_r0x00023b5a:\n        puVar13 = auStack_6c;\n        if (bStack_51 == 0) goto code_r0x00023a30;\n      }\n      else {\n        bVar21 = pbVar7[1];\n        pbVar12 = (byte *)(int)(char)bVar21;\n        if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar7 = (byte *)0xffffffff;\n          local_60 = pbVar12;\n          do {\n            pbVar3 = local_60;\n            if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }\n            pbVar7 = pbVar3 + -0x30;\n            param_1[0x9a] = (uint)pbVar7;\n            local_5c[0] = local_5c[0] + 1;\n            if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }\n            bVar21 = *local_5c[0];\n            local_60 = (byte *)(int)(char)bVar21;\n            pbVar12 = (byte *)(int)(char)bVar21 + -0x30;\n          } while ((byte)pbVar12 < 10);\n          if (bVar21 == 0x2c) {\n            if ((int)pbVar7 < 0) goto code_r0x00023bed;\ncode_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;\n            if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }\n            bVar21 = local_5c[0][1];\n            if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            local_5c[0] = pbVar12;\n            goto code_r0x00023bd8;\n          }\n          param_1[0x9b] = (uint)pbVar7;\n          puVar17 = auStack_6c;\n          if (bStack_51 == 0) goto code_r0x00023a30;\n        }\n        else {\n          if (bVar21 == 0x2c) {\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }\ncode_r0x00023bd8:\n          if (bStack_51 == 0) goto code_r0x00023a3a;\n        }\n        puVar13 = auStack_6c;\n        if (*local_5c[0] == 0x5c) goto code_r0x00023a2b;\n      }" (if "if") (parenthesized_expression "(local_5c[1] == local_5c[0])" (( "(") (binary_expression "local_5c[1] == local_5c[0]" (subscript_expression "local_5c[1]" (identifier "local_5c") ([ "[") (number_literal "1") (] "]")) (== "==") (subscript_expression "local_5c[0]" (identifier "local_5c") ([ "[") (number_literal "0") (] "]"))) () ")")) (compound_statement "{\ncode_r0x00023b5a:\n        puVar13 = auStack_6c;\n        if (bStack_51 == 0) goto code_r0x00023a30;\n      }" ({ "{") (labeled_statement "code_r0x00023b5a:\n        puVar13 = auStack_6c;" (statement_identifier "code_r0x00023b5a") (: ":") (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" (identifier "puVar13") (= "=") (identifier "auStack_6c")) (; ";"))) (if_statement "if (bStack_51 == 0) goto code_r0x00023a30;" (if "if") (parenthesized_expression "(bStack_51 == 0)" (( "(") (binary_expression "bStack_51 == 0" (identifier "bStack_51") (== "==") (number_literal "0")) () ")")) (goto_statement "goto code_r0x00023a30;" (goto "goto") (statement_identifier "code_r0x00023a30") (; ";"))) (} "}")) (else_clause "else {\n        bVar21 = pbVar7[1];\n        pbVar12 = (byte *)(int)(char)bVar21;\n        if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar7 = (byte *)0xffffffff;\n          local_60 = pbVar12;\n          do {\n            pbVar3 = local_60;\n            if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }\n            pbVar7 = pbVar3 + -0x30;\n            param_1[0x9a] = (uint)pbVar7;\n            local_5c[0] = local_5c[0] + 1;\n            if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }\n            bVar21 = *local_5c[0];\n            local_60 = (byte *)(int)(char)bVar21;\n            pbVar12 = (byte *)(int)(char)bVar21 + -0x30;\n          } while ((byte)pbVar12 < 10);\n          if (bVar21 == 0x2c) {\n            if ((int)pbVar7 < 0) goto code_r0x00023bed;\ncode_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;\n            if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }\n            bVar21 = local_5c[0][1];\n            if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            local_5c[0] = pbVar12;\n            goto code_r0x00023bd8;\n          }\n          param_1[0x9b] = (uint)pbVar7;\n          puVar17 = auStack_6c;\n          if (bStack_51 == 0) goto code_r0x00023a30;\n        }\n        else {\n          if (bVar21 == 0x2c) {\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }\ncode_r0x00023bd8:\n          if (bStack_51 == 0) goto code_r0x00023a3a;\n        }\n        puVar13 = auStack_6c;\n        if (*local_5c[0] == 0x5c) goto code_r0x00023a2b;\n      }" (else "else") (compound_statement "{\n        bVar21 = pbVar7[1];\n        pbVar12 = (byte *)(int)(char)bVar21;\n        if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar7 = (byte *)0xffffffff;\n          local_60 = pbVar12;\n          do {\n            pbVar3 = local_60;\n            if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }\n            pbVar7 = pbVar3 + -0x30;\n            param_1[0x9a] = (uint)pbVar7;\n            local_5c[0] = local_5c[0] + 1;\n            if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }\n            bVar21 = *local_5c[0];\n            local_60 = (byte *)(int)(char)bVar21;\n            pbVar12 = (byte *)(int)(char)bVar21 + -0x30;\n          } while ((byte)pbVar12 < 10);\n          if (bVar21 == 0x2c) {\n            if ((int)pbVar7 < 0) goto code_r0x00023bed;\ncode_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;\n            if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }\n            bVar21 = local_5c[0][1];\n            if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            local_5c[0] = pbVar12;\n            goto code_r0x00023bd8;\n          }\n          param_1[0x9b] = (uint)pbVar7;\n          puVar17 = auStack_6c;\n          if (bStack_51 == 0) goto code_r0x00023a30;\n        }\n        else {\n          if (bVar21 == 0x2c) {\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }\ncode_r0x00023bd8:\n          if (bStack_51 == 0) goto code_r0x00023a3a;\n        }\n        puVar13 = auStack_6c;\n        if (*local_5c[0] == 0x5c) goto code_r0x00023a2b;\n      }" ({ "{") (expression_statement "bVar21 = pbVar7[1];" (assignment_expression "bVar21 = pbVar7[1]" (identifier "bVar21") (= "=") (subscript_expression "pbVar7[1]" (identifier "pbVar7") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pbVar12 = (byte *)(int)(char)bVar21;" (assignment_expression "pbVar12 = (byte *)(int)(char)bVar21" (identifier "pbVar12") (= "=") (cast_expression "(byte *)(int)(char)bVar21" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(int)(char)bVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)bVar21" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar21"))))) (; ";")) (if_statement "if ((byte)(bVar21 - 0x30) < 10) {\n          pbVar7 = (byte *)0xffffffff;\n          local_60 = pbVar12;\n          do {\n            pbVar3 = local_60;\n            if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }\n            pbVar7 = pbVar3 + -0x30;\n            param_1[0x9a] = (uint)pbVar7;\n            local_5c[0] = local_5c[0] + 1;\n            if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }\n            bVar21 = *local_5c[0];\n            local_60 = (byte *)(int)(char)bVar21;\n            pbVar12 = (byte *)(int)(char)bVar21 + -0x30;\n          } while ((byte)pbVar12 < 10);\n          if (bVar21 == 0x2c) {\n            if ((int)pbVar7 < 0) goto code_r0x00023bed;\ncode_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;\n            if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }\n            bVar21 = local_5c[0][1];\n            if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            local_5c[0] = pbVar12;\n            goto code_r0x00023bd8;\n          }\n          param_1[0x9b] = (uint)pbVar7;\n          puVar17 = auStack_6c;\n          if (bStack_51 == 0) goto code_r0x00023a30;\n        }\n        else {\n          if (bVar21 == 0x2c) {\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }\ncode_r0x00023bd8:\n          if (bStack_51 == 0) goto code_r0x00023a3a;\n        }" (if "if") (parenthesized_expression "((byte)(bVar21 - 0x30) < 10)" (( "(") (binary_expression "(byte)(bVar21 - 0x30) < 10" (call_expression "(byte)(bVar21 - 0x30)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(bVar21 - 0x30)" (( "(") (binary_expression "bVar21 - 0x30" (identifier "bVar21") (- "-") (number_literal "0x30")) () ")"))) (< "<") (number_literal "10")) () ")")) (compound_statement "{\n          pbVar7 = (byte *)0xffffffff;\n          local_60 = pbVar12;\n          do {\n            pbVar3 = local_60;\n            if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }\n            pbVar7 = pbVar3 + -0x30;\n            param_1[0x9a] = (uint)pbVar7;\n            local_5c[0] = local_5c[0] + 1;\n            if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }\n            bVar21 = *local_5c[0];\n            local_60 = (byte *)(int)(char)bVar21;\n            pbVar12 = (byte *)(int)(char)bVar21 + -0x30;\n          } while ((byte)pbVar12 < 10);\n          if (bVar21 == 0x2c) {\n            if ((int)pbVar7 < 0) goto code_r0x00023bed;\ncode_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;\n            if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }\n            bVar21 = local_5c[0][1];\n            if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            local_5c[0] = pbVar12;\n            goto code_r0x00023bd8;\n          }\n          param_1[0x9b] = (uint)pbVar7;\n          puVar17 = auStack_6c;\n          if (bStack_51 == 0) goto code_r0x00023a30;\n        }" ({ "{") (expression_statement "pbVar7 = (byte *)0xffffffff;" (assignment_expression "pbVar7 = (byte *)0xffffffff" (identifier "pbVar7") (= "=") (cast_expression "(byte *)0xffffffff" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (expression_statement "local_60 = pbVar12;" (assignment_expression "local_60 = pbVar12" (identifier "local_60") (= "=") (identifier "pbVar12")) (; ";")) (do_statement "do {\n            pbVar3 = local_60;\n            if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }\n            pbVar7 = pbVar3 + -0x30;\n            param_1[0x9a] = (uint)pbVar7;\n            local_5c[0] = local_5c[0] + 1;\n            if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }\n            bVar21 = *local_5c[0];\n            local_60 = (byte *)(int)(char)bVar21;\n            pbVar12 = (byte *)(int)(char)bVar21 + -0x30;\n          } while ((byte)pbVar12 < 10);" (do "do") (compound_statement "{\n            pbVar3 = local_60;\n            if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }\n            pbVar7 = pbVar3 + -0x30;\n            param_1[0x9a] = (uint)pbVar7;\n            local_5c[0] = local_5c[0] + 1;\n            if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }\n            bVar21 = *local_5c[0];\n            local_60 = (byte *)(int)(char)bVar21;\n            pbVar12 = (byte *)(int)(char)bVar21 + -0x30;\n          }" ({ "{") (expression_statement "pbVar3 = local_60;" (assignment_expression "pbVar3 = local_60" (identifier "pbVar3") (= "=") (identifier "local_60")) (; ";")) (if_statement "if ((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))\n            {\n              pbVar3 = (byte *)0x8030;\n            }" (if "if") (parenthesized_expression "((-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))" (( "(") (binary_expression "(-1 < (int)pbVar7) &&\n               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10))" (parenthesized_expression "(-1 < (int)pbVar7)" (( "(") (binary_expression "-1 < (int)pbVar7" (number_literal "-1") (< "<") (cast_expression "(int)pbVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar7"))) () ")")) (&& "&&") (parenthesized_expression "(pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10))" (( "(") (comma_expression "pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)" (assignment_expression "pbVar3 = local_60 + (int)pbVar7 * 10" (identifier "pbVar3") (= "=") (binary_expression "local_60 + (int)pbVar7 * 10" (identifier "local_60") (+ "+") (binary_expression "(int)pbVar7 * 10" (cast_expression "(int)pbVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar7")) (* "*") (number_literal "10")))) (, ",") (binary_expression "0x8030 < (int)(local_60 + (int)pbVar7 * 10)" (number_literal "0x8030") (< "<") (cast_expression "(int)(local_60 + (int)pbVar7 * 10)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(local_60 + (int)pbVar7 * 10)" (( "(") (binary_expression "local_60 + (int)pbVar7 * 10" (identifier "local_60") (+ "+") (binary_expression "(int)pbVar7 * 10" (cast_expression "(int)pbVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar7")) (* "*") (number_literal "10"))) () ")"))))) () ")"))) () ")")) (compound_statement "{\n              pbVar3 = (byte *)0x8030;\n            }" ({ "{") (expression_statement "pbVar3 = (byte *)0x8030;" (assignment_expression "pbVar3 = (byte *)0x8030" (identifier "pbVar3") (= "=") (cast_expression "(byte *)0x8030" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x8030"))) (; ";")) (} "}"))) (expression_statement "pbVar7 = pbVar3 + -0x30;" (assignment_expression "pbVar7 = pbVar3 + -0x30" (identifier "pbVar7") (= "=") (binary_expression "pbVar3 + -0x30" (identifier "pbVar3") (+ "+") (number_literal "-0x30"))) (; ";")) (expression_statement "param_1[0x9a] = (uint)pbVar7;" (assignment_expression "param_1[0x9a] = (uint)pbVar7" (subscript_expression "param_1[0x9a]" (identifier "param_1") ([ "[") (number_literal "0x9a") (] "]")) (= "=") (cast_expression "(uint)pbVar7" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pbVar7"))) (; ";")) (expression_statement "local_5c[0] = local_5c[0] + 1;" (assignment_expression "local_5c[0] = local_5c[0] + 1" (subscript_expression "local_5c[0]" (identifier "local_5c") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "local_5c[0] + 1" (subscript_expression "local_5c[0]" (identifier "local_5c") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (local_5c[1] == local_5c[0]) {\n              goto code_r0x00023b5a;\n            }" (if "if") (parenthesized_expression "(local_5c[1] == local_5c[0])" (( "(") (binary_expression "local_5c[1] == local_5c[0]" (subscript_expression "local_5c[1]" (identifier "local_5c") ([ "[") (number_literal "1") (] "]")) (== "==") (subscript_expression "local_5c[0]" (identifier "local_5c") ([ "[") (number_literal "0") (] "]"))) () ")")) (compound_statement "{\n              goto code_r0x00023b5a;\n            }" ({ "{") (goto_statement "goto code_r0x00023b5a;" (goto "goto") (statement_identifier "code_r0x00023b5a") (; ";")) (} "}"))) (expression_statement "bVar21 = *local_5c[0];" (assignment_expression "bVar21 = *local_5c[0]" (identifier "bVar21") (= "=") (pointer_expression "*local_5c[0]" (* "*") (subscript_expression "local_5c[0]" (identifier "local_5c") ([ "[") (number_literal "0") (] "]")))) (; ";")) (expression_statement "local_60 = (byte *)(int)(char)bVar21;" (assignment_expression "local_60 = (byte *)(int)(char)bVar21" (identifier "local_60") (= "=") (cast_expression "(byte *)(int)(char)bVar21" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(int)(char)bVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)bVar21" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar21"))))) (; ";")) (expression_statement "pbVar12 = (byte *)(int)(char)bVar21 + -0x30;" (assignment_expression "pbVar12 = (byte *)(int)(char)bVar21 + -0x30" (identifier "pbVar12") (= "=") (binary_expression "(byte *)(int)(char)bVar21 + -0x30" (cast_expression "(byte *)(int)(char)bVar21" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(int)(char)bVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)bVar21" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar21")))) (+ "+") (number_literal "-0x30"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((byte)pbVar12 < 10)" (( "(") (binary_expression "(byte)pbVar12 < 10" (cast_expression "(byte)pbVar12" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "pbVar12")) (< "<") (number_literal "10")) () ")")) (; ";")) (if_statement "if (bVar21 == 0x2c) {\n            if ((int)pbVar7 < 0) goto code_r0x00023bed;\ncode_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;\n            if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }\n            bVar21 = local_5c[0][1];\n            if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            local_5c[0] = pbVar12;\n            goto code_r0x00023bd8;\n          }" (if "if") (parenthesized_expression "(bVar21 == 0x2c)" (( "(") (binary_expression "bVar21 == 0x2c" (identifier "bVar21") (== "==") (number_literal "0x2c")) () ")")) (compound_statement "{\n            if ((int)pbVar7 < 0) goto code_r0x00023bed;\ncode_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;\n            if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }\n            bVar21 = local_5c[0][1];\n            if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }\n            local_5c[0] = pbVar12;\n            goto code_r0x00023bd8;\n          }" ({ "{") (if_statement "if ((int)pbVar7 < 0) goto code_r0x00023bed;" (if "if") (parenthesized_expression "((int)pbVar7 < 0)" (( "(") (binary_expression "(int)pbVar7 < 0" (cast_expression "(int)pbVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar7")) (< "<") (number_literal "0")) () ")")) (goto_statement "goto code_r0x00023bed;" (goto "goto") (statement_identifier "code_r0x00023bed") (; ";"))) (labeled_statement "code_r0x00023b6e:\n            pbVar12 = local_5c[0] + 1;" (statement_identifier "code_r0x00023b6e") (: ":") (expression_statement "pbVar12 = local_5c[0] + 1;" (assignment_expression "pbVar12 = local_5c[0] + 1" (identifier "pbVar12") (= "=") (binary_expression "local_5c[0] + 1" (subscript_expression "local_5c[0]" (identifier "local_5c") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "1"))) (; ";"))) (if_statement "if (local_5c[1] == pbVar12) {\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }" (if "if") (parenthesized_expression "(local_5c[1] == pbVar12)" (( "(") (binary_expression "local_5c[1] == pbVar12" (subscript_expression "local_5c[1]" (identifier "local_5c") ([ "[") (number_literal "1") (] "]")) (== "==") (identifier "pbVar12")) () ")")) (compound_statement "{\ncode_r0x00023bca:\n              local_5c[0] = local_5c[1];\n              goto code_r0x00023b5a;\n            }" ({ "{") (labeled_statement "code_r0x00023bca:\n              local_5c[0] = local_5c[1];" (statement_identifier "code_r0x00023bca") (: ":") (expression_statement "local_5c[0] = local_5c[1];" (assignment_expression "local_5c[0] = local_5c[1]" (subscript_expression "local_5c[0]" (identifier "local_5c") ([ "[") (number_literal "0") (] "]")) (= "=") (subscript_expression "local_5c[1]" (identifier "local_5c") ([ "[") (number_literal "1") (] "]"))) (; ";"))) (goto_statement "goto code_r0x00023b5a;" (goto "goto") (statement_identifier "code_r0x00023b5a") (; ";")) (} "}"))) (expression_statement "bVar21 = local_5c[0][1];" (assignment_expression "bVar21 = local_5c[0][1]" (identifier "bVar21") (= "=") (subscript_expression "local_5c[0][1]" (subscript_expression "local_5c[0]" (identifier "local_5c") ([ "[") (number_literal "0") (] "]")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if ((byte)(bVar21 - 0x30) < 10) {\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }" (if "if") (parenthesized_expression "((byte)(bVar21 - 0x30) < 10)" (( "(") (binary_expression "(byte)(bVar21 - 0x30) < 10" (call_expression "(byte)(bVar21 - 0x30)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(bVar21 - 0x30)" (( "(") (binary_expression "bVar21 - 0x30" (identifier "bVar21") (- "-") (number_literal "0x30")) () ")"))) (< "<") (number_literal "10")) () ")")) (compound_statement "{\n              uVar19 = 0xffffffff;\n              do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);\n            }" ({ "{") (expression_statement "uVar19 = 0xffffffff;" (assignment_expression "uVar19 = 0xffffffff" (identifier "uVar19") (= "=") (number_literal "0xffffffff")) (; ";")) (do_statement "do {\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              } while ((byte)(bVar21 - 0x30) < 10);" (do "do") (compound_statement "{\n                iVar10 = (int)(char)bVar21;\n                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }\n                uVar19 = iVar10 - 0x30;\n                param_1[0x9b] = uVar19;\n                pbVar12 = pbVar12 + 1;\n                if (local_5c[1] == pbVar12) goto code_r0x00023bca;\n                bVar21 = *pbVar12;\n              }" ({ "{") (expression_statement "iVar10 = (int)(char)bVar21;" (assignment_expression "iVar10 = (int)(char)bVar21" (identifier "iVar10") (= "=") (cast_expression "(int)(char)bVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)bVar21" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar21")))) (; ";")) (if_statement "if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {\n                  iVar10 = 0x8030;\n                }" (if "if") (parenthesized_expression "((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10))" (( "(") (binary_expression "(-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)" (parenthesized_expression "(-1 < (int)uVar19)" (( "(") (binary_expression "-1 < (int)uVar19" (number_literal "-1") (< "<") (cast_expression "(int)uVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar19"))) () ")")) (&& "&&") (parenthesized_expression "(iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)" (( "(") (comma_expression "iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10" (assignment_expression "iVar10 = iVar10 + uVar19 * 10" (identifier "iVar10") (= "=") (binary_expression "iVar10 + uVar19 * 10" (identifier "iVar10") (+ "+") (binary_expression "uVar19 * 10" (identifier "uVar19") (* "*") (number_literal "10")))) (, ",") (binary_expression "0x8030 < iVar10" (number_literal "0x8030") (< "<") (identifier "iVar10"))) () ")"))) () ")")) (compound_statement "{\n                  iVar10 = 0x8030;\n                }" ({ "{") (expression_statement "iVar10 = 0x8030;" (assignment_expression "iVar10 = 0x8030" (identifier "iVar10") (= "=") (number_literal "0x8030")) (; ";")) (} "}"))) (expression_statement "uVar19 = iVar10 - 0x30;" (assignment_expression "uVar19 = iVar10 - 0x30" (identifier "uVar19") (= "=") (binary_expression "iVar10 - 0x30" (identifier "iVar10") (- "-") (number_literal "0x30"))) (; ";")) (expression_statement "param_1[0x9b] = uVar19;" (assignment_expression "param_1[0x9b] = uVar19" (subscript_expression "param_1[0x9b]" (identifier "param_1") ([ "[") (number_literal "0x9b") (] "]")) (= "=") (identifier "uVar19")) (; ";")) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + 1" (identifier "pbVar12") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (local_5c[1] == pbVar12) goto code_r0x00023bca;" (if "if") (parenthesized_expression "(local_5c[1] == pbVar12)" (( "(") (binary_expression "local_5c[1] == pbVar12" (subscript_expression "local_5c[1]" (identifier "local_5c") ([ "[") (number_literal "1") (] "]")) (== "==") (identifier "pbVar12")) () ")")) (goto_statement "goto code_r0x00023bca;" (goto "goto") (statement_identifier "code_r0x00023bca") (; ";"))) (expression_statement "bVar21 = *pbVar12;" (assignment_expression "bVar21 = *pbVar12" (identifier "bVar21") (= "=") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((byte)(bVar21 - 0x30) < 10)" (( "(") (binary_expression "(byte)(bVar21 - 0x30) < 10" (call_expression "(byte)(bVar21 - 0x30)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(bVar21 - 0x30)" (( "(") (binary_expression "bVar21 - 0x30" (identifier "bVar21") (- "-") (number_literal "0x30")) () ")"))) (< "<") (number_literal "10")) () ")")) (; ";")) (} "}"))) (expression_statement "local_5c[0] = pbVar12;" (assignment_expression "local_5c[0] = pbVar12" (subscript_expression "local_5c[0]" (identifier "local_5c") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "pbVar12")) (; ";")) (goto_statement "goto code_r0x00023bd8;" (goto "goto") (statement_identifier "code_r0x00023bd8") (; ";")) (} "}"))) (expression_statement "param_1[0x9b] = (uint)pbVar7;" (assignment_expression "param_1[0x9b] = (uint)pbVar7" (subscript_expression "param_1[0x9b]" (identifier "param_1") ([ "[") (number_literal "0x9b") (] "]")) (= "=") (cast_expression "(uint)pbVar7" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pbVar7"))) (; ";")) (expression_statement "puVar17 = auStack_6c;" (assignment_expression "puVar17 = auStack_6c" (identifier "puVar17") (= "=") (identifier "auStack_6c")) (; ";")) (if_statement "if (bStack_51 == 0) goto code_r0x00023a30;" (if "if") (parenthesized_expression "(bStack_51 == 0)" (( "(") (binary_expression "bStack_51 == 0" (identifier "bStack_51") (== "==") (number_literal "0")) () ")")) (goto_statement "goto code_r0x00023a30;" (goto "goto") (statement_identifier "code_r0x00023a30") (; ";"))) (} "}")) (else_clause "else {\n          if (bVar21 == 0x2c) {\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }\ncode_r0x00023bd8:\n          if (bStack_51 == 0) goto code_r0x00023a3a;\n        }" (else "else") (compound_statement "{\n          if (bVar21 == 0x2c) {\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }\ncode_r0x00023bd8:\n          if (bStack_51 == 0) goto code_r0x00023a3a;\n        }" ({ "{") (if_statement "if (bVar21 == 0x2c) {\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }" (if "if") (parenthesized_expression "(bVar21 == 0x2c)" (( "(") (binary_expression "bVar21 == 0x2c" (identifier "bVar21") (== "==") (number_literal "0x2c")) () ")")) (compound_statement "{\ncode_r0x00023bed:\n            param_1[0x9a] = 0;\n            goto code_r0x00023b6e;\n          }" ({ "{") (labeled_statement "code_r0x00023bed:\n            param_1[0x9a] = 0;" (statement_identifier "code_r0x00023bed") (: ":") (expression_statement "param_1[0x9a] = 0;" (assignment_expression "param_1[0x9a] = 0" (subscript_expression "param_1[0x9a]" (identifier "param_1") ([ "[") (number_literal "0x9a") (] "]")) (= "=") (number_literal "0")) (; ";"))) (goto_statement "goto code_r0x00023b6e;" (goto "goto") (statement_identifier "code_r0x00023b6e") (; ";")) (} "}"))) (labeled_statement "code_r0x00023bd8:\n          if (bStack_51 == 0) goto code_r0x00023a3a;" (statement_identifier "code_r0x00023bd8") (: ":") (if_statement "if (bStack_51 == 0) goto code_r0x00023a3a;" (if "if") (parenthesized_expression "(bStack_51 == 0)" (( "(") (binary_expression "bStack_51 == 0" (identifier "bStack_51") (== "==") (number_literal "0")) () ")")) (goto_statement "goto code_r0x00023a3a;" (goto "goto") (statement_identifier "code_r0x00023a3a") (; ";")))) (} "}")))) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" (identifier "puVar13") (= "=") (identifier "auStack_6c")) (; ";")) (if_statement "if (*local_5c[0] == 0x5c) goto code_r0x00023a2b;" (if "if") (parenthesized_expression "(*local_5c[0] == 0x5c)" (( "(") (binary_expression "*local_5c[0] == 0x5c" (pointer_expression "*local_5c[0]" (* "*") (subscript_expression "local_5c[0]" (identifier "local_5c") ([ "[") (number_literal "0") (] "]"))) (== "==") (number_literal "0x5c")) () ")")) (goto_statement "goto code_r0x00023a2b;" (goto "goto") (statement_identifier "code_r0x00023a2b") (; ";"))) (} "}")))) (labeled_statement "code_r0x00023a04:\n      if ((*(uint *)(puVar13 + 0x1c) & 0x200000) == 0) {\n        *(byte **)(puVar13 + -4) = pbVar12;\n        pcVar8 = "invalid content of \\{\\}";\n        ppbVar15 = (byte **)(puVar13 + -8);\n        *(undefined4 *)(puVar13 + -8) = 5;\ncode_r0x00023a1b:\n        while( true ) {\n          *(char **)((int)ppbVar15 + -4) = pcVar8;\n          puVar16 = (undefined1 *)((int)ppbVar15 + -8);\n          *(undefined4 *)((int)ppbVar15 + -8) = 0;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23;\n          uVar11 = dcgettext();\n          *(undefined4 *)((int)ppbVar15 + -8) = uVar11;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b;\n          FUN_0001be40();\n          pbVar12 = extraout_ECX;\ncode_r0x00023a2b:\n          *(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;\n          puVar17 = puVar16;\ncode_r0x00023a30:\n          puVar13 = puVar17;\n          puVar18 = puVar17;\n          if (*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)) break;\ncode_r0x00023a3a:\n          puVar13 = puVar18;\n          if ((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))\n          break;\n          uVar5 = param_1[0x9b];\n          if ((int)uVar5 < 0) {\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }\n          if ((int)uVar5 < (int)uVar19) break;\n          if ((int)uVar5 < 0x8000) goto code_r0x00023a66;\n          pcVar8 = "regular expression too big";\n          *(uint *)(puVar18 + -4) = uVar19;\n          ppbVar15 = (byte **)(puVar18 + -8);\n          *(undefined4 *)(puVar18 + -8) = 5;\n        }\n        goto code_r0x00023a04;\n      }" (statement_identifier "code_r0x00023a04") (: ":") (if_statement "if ((*(uint *)(puVar13 + 0x1c) & 0x200000) == 0) {\n        *(byte **)(puVar13 + -4) = pbVar12;\n        pcVar8 = "invalid content of \\{\\}";\n        ppbVar15 = (byte **)(puVar13 + -8);\n        *(undefined4 *)(puVar13 + -8) = 5;\ncode_r0x00023a1b:\n        while( true ) {\n          *(char **)((int)ppbVar15 + -4) = pcVar8;\n          puVar16 = (undefined1 *)((int)ppbVar15 + -8);\n          *(undefined4 *)((int)ppbVar15 + -8) = 0;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23;\n          uVar11 = dcgettext();\n          *(undefined4 *)((int)ppbVar15 + -8) = uVar11;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b;\n          FUN_0001be40();\n          pbVar12 = extraout_ECX;\ncode_r0x00023a2b:\n          *(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;\n          puVar17 = puVar16;\ncode_r0x00023a30:\n          puVar13 = puVar17;\n          puVar18 = puVar17;\n          if (*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)) break;\ncode_r0x00023a3a:\n          puVar13 = puVar18;\n          if ((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))\n          break;\n          uVar5 = param_1[0x9b];\n          if ((int)uVar5 < 0) {\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }\n          if ((int)uVar5 < (int)uVar19) break;\n          if ((int)uVar5 < 0x8000) goto code_r0x00023a66;\n          pcVar8 = "regular expression too big";\n          *(uint *)(puVar18 + -4) = uVar19;\n          ppbVar15 = (byte **)(puVar18 + -8);\n          *(undefined4 *)(puVar18 + -8) = 5;\n        }\n        goto code_r0x00023a04;\n      }" (if "if") (parenthesized_expression "((*(uint *)(puVar13 + 0x1c) & 0x200000) == 0)" (( "(") (binary_expression "(*(uint *)(puVar13 + 0x1c) & 0x200000) == 0" (parenthesized_expression "(*(uint *)(puVar13 + 0x1c) & 0x200000)" (( "(") (binary_expression "*(uint *)(puVar13 + 0x1c) & 0x200000" (pointer_expression "*(uint *)(puVar13 + 0x1c)" (* "*") (cast_expression "(uint *)(puVar13 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 0x1c)" (( "(") (binary_expression "puVar13 + 0x1c" (identifier "puVar13") (+ "+") (number_literal "0x1c")) () ")")))) (& "&") (number_literal "0x200000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(byte **)(puVar13 + -4) = pbVar12;\n        pcVar8 = "invalid content of \\{\\}";\n        ppbVar15 = (byte **)(puVar13 + -8);\n        *(undefined4 *)(puVar13 + -8) = 5;\ncode_r0x00023a1b:\n        while( true ) {\n          *(char **)((int)ppbVar15 + -4) = pcVar8;\n          puVar16 = (undefined1 *)((int)ppbVar15 + -8);\n          *(undefined4 *)((int)ppbVar15 + -8) = 0;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23;\n          uVar11 = dcgettext();\n          *(undefined4 *)((int)ppbVar15 + -8) = uVar11;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b;\n          FUN_0001be40();\n          pbVar12 = extraout_ECX;\ncode_r0x00023a2b:\n          *(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;\n          puVar17 = puVar16;\ncode_r0x00023a30:\n          puVar13 = puVar17;\n          puVar18 = puVar17;\n          if (*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)) break;\ncode_r0x00023a3a:\n          puVar13 = puVar18;\n          if ((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))\n          break;\n          uVar5 = param_1[0x9b];\n          if ((int)uVar5 < 0) {\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }\n          if ((int)uVar5 < (int)uVar19) break;\n          if ((int)uVar5 < 0x8000) goto code_r0x00023a66;\n          pcVar8 = "regular expression too big";\n          *(uint *)(puVar18 + -4) = uVar19;\n          ppbVar15 = (byte **)(puVar18 + -8);\n          *(undefined4 *)(puVar18 + -8) = 5;\n        }\n        goto code_r0x00023a04;\n      }" ({ "{") (expression_statement "*(byte **)(puVar13 + -4) = pbVar12;" (assignment_expression "*(byte **)(puVar13 + -4) = pbVar12" (pointer_expression "*(byte **)(puVar13 + -4)" (* "*") (cast_expression "(byte **)(puVar13 + -4)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -4)" (( "(") (binary_expression "puVar13 + -4" (identifier "puVar13") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "pbVar12")) (; ";")) (expression_statement "pcVar8 = "invalid content of \\{\\}";" (assignment_expression "pcVar8 = "invalid content of \\{\\}"" (identifier "pcVar8") (= "=") (string_literal ""invalid content of \\{\\}"" (" """) (string_content "invalid content of ") (escape_sequence "\\") (string_content "{") (escape_sequence "\\") (string_content "}") (" """))) (; ";")) (expression_statement "ppbVar15 = (byte **)(puVar13 + -8);" (assignment_expression "ppbVar15 = (byte **)(puVar13 + -8)" (identifier "ppbVar15") (= "=") (cast_expression "(byte **)(puVar13 + -8)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -8)" (( "(") (binary_expression "puVar13 + -8" (identifier "puVar13") (+ "+") (number_literal "-8")) () ")")))) (; ";")) (expression_statement "*(undefined4 *)(puVar13 + -8) = 5;" (assignment_expression "*(undefined4 *)(puVar13 + -8) = 5" (pointer_expression "*(undefined4 *)(puVar13 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar13 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -8)" (( "(") (binary_expression "puVar13 + -8" (identifier "puVar13") (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "5")) (; ";")) (labeled_statement "code_r0x00023a1b:\n        while( true ) {\n          *(char **)((int)ppbVar15 + -4) = pcVar8;\n          puVar16 = (undefined1 *)((int)ppbVar15 + -8);\n          *(undefined4 *)((int)ppbVar15 + -8) = 0;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23;\n          uVar11 = dcgettext();\n          *(undefined4 *)((int)ppbVar15 + -8) = uVar11;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b;\n          FUN_0001be40();\n          pbVar12 = extraout_ECX;\ncode_r0x00023a2b:\n          *(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;\n          puVar17 = puVar16;\ncode_r0x00023a30:\n          puVar13 = puVar17;\n          puVar18 = puVar17;\n          if (*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)) break;\ncode_r0x00023a3a:\n          puVar13 = puVar18;\n          if ((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))\n          break;\n          uVar5 = param_1[0x9b];\n          if ((int)uVar5 < 0) {\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }\n          if ((int)uVar5 < (int)uVar19) break;\n          if ((int)uVar5 < 0x8000) goto code_r0x00023a66;\n          pcVar8 = "regular expression too big";\n          *(uint *)(puVar18 + -4) = uVar19;\n          ppbVar15 = (byte **)(puVar18 + -8);\n          *(undefined4 *)(puVar18 + -8) = 5;\n        }" (statement_identifier "code_r0x00023a1b") (: ":") (while_statement "while( true ) {\n          *(char **)((int)ppbVar15 + -4) = pcVar8;\n          puVar16 = (undefined1 *)((int)ppbVar15 + -8);\n          *(undefined4 *)((int)ppbVar15 + -8) = 0;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23;\n          uVar11 = dcgettext();\n          *(undefined4 *)((int)ppbVar15 + -8) = uVar11;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b;\n          FUN_0001be40();\n          pbVar12 = extraout_ECX;\ncode_r0x00023a2b:\n          *(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;\n          puVar17 = puVar16;\ncode_r0x00023a30:\n          puVar13 = puVar17;\n          puVar18 = puVar17;\n          if (*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)) break;\ncode_r0x00023a3a:\n          puVar13 = puVar18;\n          if ((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))\n          break;\n          uVar5 = param_1[0x9b];\n          if ((int)uVar5 < 0) {\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }\n          if ((int)uVar5 < (int)uVar19) break;\n          if ((int)uVar5 < 0x8000) goto code_r0x00023a66;\n          pcVar8 = "regular expression too big";\n          *(uint *)(puVar18 + -4) = uVar19;\n          ppbVar15 = (byte **)(puVar18 + -8);\n          *(undefined4 *)(puVar18 + -8) = 5;\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          *(char **)((int)ppbVar15 + -4) = pcVar8;\n          puVar16 = (undefined1 *)((int)ppbVar15 + -8);\n          *(undefined4 *)((int)ppbVar15 + -8) = 0;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23;\n          uVar11 = dcgettext();\n          *(undefined4 *)((int)ppbVar15 + -8) = uVar11;\n          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b;\n          FUN_0001be40();\n          pbVar12 = extraout_ECX;\ncode_r0x00023a2b:\n          *(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;\n          puVar17 = puVar16;\ncode_r0x00023a30:\n          puVar13 = puVar17;\n          puVar18 = puVar17;\n          if (*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)) break;\ncode_r0x00023a3a:\n          puVar13 = puVar18;\n          if ((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))\n          break;\n          uVar5 = param_1[0x9b];\n          if ((int)uVar5 < 0) {\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }\n          if ((int)uVar5 < (int)uVar19) break;\n          if ((int)uVar5 < 0x8000) goto code_r0x00023a66;\n          pcVar8 = "regular expression too big";\n          *(uint *)(puVar18 + -4) = uVar19;\n          ppbVar15 = (byte **)(puVar18 + -8);\n          *(undefined4 *)(puVar18 + -8) = 5;\n        }" ({ "{") (expression_statement "*(char **)((int)ppbVar15 + -4) = pcVar8;" (assignment_expression "*(char **)((int)ppbVar15 + -4) = pcVar8" (pointer_expression "*(char **)((int)ppbVar15 + -4)" (* "*") (cast_expression "(char **)((int)ppbVar15 + -4)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppbVar15 + -4)" (( "(") (binary_expression "(int)ppbVar15 + -4" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "pcVar8")) (; ";")) (expression_statement "puVar16 = (undefined1 *)((int)ppbVar15 + -8);" (assignment_expression "puVar16 = (undefined1 *)((int)ppbVar15 + -8)" (identifier "puVar16") (= "=") (cast_expression "(undefined1 *)((int)ppbVar15 + -8)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppbVar15 + -8)" (( "(") (binary_expression "(int)ppbVar15 + -8" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-8")) () ")")))) (; ";")) (expression_statement "*(undefined4 *)((int)ppbVar15 + -8) = 0;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -8) = 0" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -8)" (* "*") (cast_expression "(undefined4 *)((int)ppbVar15 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppbVar15 + -8)" (( "(") (binary_expression "(int)ppbVar15 + -8" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23;" (assignment_expression "*(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23" (pointer_expression "*(undefined **)((int)ppbVar15 + -0xc)" (* "*") (cast_expression "(undefined **)((int)ppbVar15 + -0xc)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppbVar15 + -0xc)" (( "(") (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (pointer_expression "&UNK_00023a23" (& "&") (identifier "UNK_00023a23"))) (; ";")) (expression_statement "uVar11 = dcgettext();" (assignment_expression "uVar11 = dcgettext()" (identifier "uVar11") (= "=") (call_expression "dcgettext()" (identifier "dcgettext") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)((int)ppbVar15 + -8) = uVar11;" (assignment_expression "*(undefined4 *)((int)ppbVar15 + -8) = uVar11" (pointer_expression "*(undefined4 *)((int)ppbVar15 + -8)" (* "*") (cast_expression "(undefined4 *)((int)ppbVar15 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppbVar15 + -8)" (( "(") (binary_expression "(int)ppbVar15 + -8" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "*(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b;" (assignment_expression "*(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b" (pointer_expression "*(undefined **)((int)ppbVar15 + -0xc)" (* "*") (cast_expression "(undefined **)((int)ppbVar15 + -0xc)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppbVar15 + -0xc)" (( "(") (binary_expression "(int)ppbVar15 + -0xc" (cast_expression "(int)ppbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppbVar15")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (pointer_expression "&UNK_00023a2b" (& "&") (identifier "UNK_00023a2b"))) (; ";")) (expression_statement "FUN_0001be40();" (call_expression "FUN_0001be40()" (identifier "FUN_0001be40") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pbVar12 = extraout_ECX;" (assignment_expression "pbVar12 = extraout_ECX" (identifier "pbVar12") (= "=") (identifier "extraout_ECX")) (; ";")) (labeled_statement "code_r0x00023a2b:\n          *(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;" (statement_identifier "code_r0x00023a2b") (: ":") (expression_statement "*(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;" (assignment_expression "*(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1" (pointer_expression "*(int *)(puVar16 + 0x10)" (* "*") (cast_expression "(int *)(puVar16 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar16 + 0x10)" (( "(") (binary_expression "puVar16 + 0x10" (identifier "puVar16") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (binary_expression "*(int *)(puVar16 + 0x10) + 1" (pointer_expression "*(int *)(puVar16 + 0x10)" (* "*") (cast_expression "(int *)(puVar16 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar16 + 0x10)" (( "(") (binary_expression "puVar16 + 0x10" (identifier "puVar16") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "puVar17 = puVar16;" (assignment_expression "puVar17 = puVar16" (identifier "puVar17") (= "=") (identifier "puVar16")) (; ";")) (labeled_statement "code_r0x00023a30:\n          puVar13 = puVar17;" (statement_identifier "code_r0x00023a30") (: ":") (expression_statement "puVar13 = puVar17;" (assignment_expression "puVar13 = puVar17" (identifier "puVar13") (= "=") (identifier "puVar17")) (; ";"))) (expression_statement "puVar18 = puVar17;" (assignment_expression "puVar18 = puVar17" (identifier "puVar18") (= "=") (identifier "puVar17")) (; ";")) (if_statement "if (*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)) break;" (if "if") (parenthesized_expression "(*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10))" (( "(") (binary_expression "*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)" (pointer_expression "*(int *)(puVar17 + 0x14)" (* "*") (cast_expression "(int *)(puVar17 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 0x14)" (( "(") (binary_expression "puVar17 + 0x14" (identifier "puVar17") (+ "+") (number_literal "0x14")) () ")")))) (== "==") (pointer_expression "*(int *)(puVar17 + 0x10)" (* "*") (cast_expression "(int *)(puVar17 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 0x10)" (( "(") (binary_expression "puVar17 + 0x10" (identifier "puVar17") (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "code_r0x00023a3a:\n          puVar13 = puVar18;" (statement_identifier "code_r0x00023a3a") (: ":") (expression_statement "puVar13 = puVar18;" (assignment_expression "puVar13 = puVar18" (identifier "puVar13") (= "=") (identifier "puVar18")) (; ";"))) (if_statement "if ((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))\n          break;" (if "if") (parenthesized_expression "((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))" (( "(") (binary_expression "(**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0)" (parenthesized_expression "(**(char **)(puVar18 + 0x10) != '}')" (( "(") (binary_expression "**(char **)(puVar18 + 0x10) != '}'" (pointer_expression "**(char **)(puVar18 + 0x10)" (* "*") (pointer_expression "*(char **)(puVar18 + 0x10)" (* "*") (cast_expression "(char **)(puVar18 + 0x10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + 0x10)" (( "(") (binary_expression "puVar18 + 0x10" (identifier "puVar18") (+ "+") (number_literal "0x10")) () ")"))))) (!= "!=") (char_literal "'}'" (' "'") (character "}") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(uVar19 = param_1[0x9a], (int)uVar19 < 0)" (( "(") (comma_expression "uVar19 = param_1[0x9a], (int)uVar19 < 0" (assignment_expression "uVar19 = param_1[0x9a]" (identifier "uVar19") (= "=") (subscript_expression "param_1[0x9a]" (identifier "param_1") ([ "[") (number_literal "0x9a") (] "]"))) (, ",") (binary_expression "(int)uVar19 < 0" (cast_expression "(int)uVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar19")) (< "<") (number_literal "0"))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar5 = param_1[0x9b];" (assignment_expression "uVar5 = param_1[0x9b]" (identifier "uVar5") (= "=") (subscript_expression "param_1[0x9b]" (identifier "param_1") ([ "[") (number_literal "0x9b") (] "]"))) (; ";")) (if_statement "if ((int)uVar5 < 0) {\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }" (if "if") (parenthesized_expression "((int)uVar5 < 0)" (( "(") (binary_expression "(int)uVar5 < 0" (cast_expression "(int)uVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar5")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\ncode_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);\n            iVar1 = *(int *)(puVar18 + 0x14);\n            *(byte *)(param_1 + 0xa3) = 0;\n            uVar19 = 0x104;\n            param_1[0x98] = 0x104;\n            param_1[0x96] = iVar10 + 1U;\n            param_1[0x97] = iVar1 - (iVar10 + 1U);\n            goto LAB_0002318d;\n          }" ({ "{") (labeled_statement "code_r0x00023a66:\n            iVar10 = *(int *)(puVar18 + 0x10);" (statement_identifier "code_r0x00023a66") (: ":") (expression_statement "iVar10 = *(int *)(puVar18 + 0x10);" (assignment_expression "iVar10 = *(int *)(puVar18 + 0x10)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(puVar18 + 0x10)" (* "*") (cast_expression "(int *)(puVar18 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x10)" (( "(") (binary_expression "puVar18 + 0x10" (identifier "puVar18") (+ "+") (number_literal "0x10")) () ")"))))) (; ";"))) (expression_statement "iVar1 = *(int *)(puVar18 + 0x14);" (assignment_expression "iVar1 = *(int *)(puVar18 + 0x14)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(puVar18 + 0x14)" (* "*") (cast_expression "(int *)(puVar18 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + 0x14)" (( "(") (binary_expression "puVar18 + 0x14" (identifier "puVar18") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "*(byte *)(param_1 + 0xa3) = 0;" (assignment_expression "*(byte *)(param_1 + 0xa3) = 0" (pointer_expression "*(byte *)(param_1 + 0xa3)" (* "*") (cast_expression "(byte *)(param_1 + 0xa3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xa3)" (( "(") (binary_expression "param_1 + 0xa3" (identifier "param_1") (+ "+") (number_literal "0xa3")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar19 = 0x104;" (assignment_expression "uVar19 = 0x104" (identifier "uVar19") (= "=") (number_literal "0x104")) (; ";")) (expression_statement "param_1[0x98] = 0x104;" (assignment_expression "param_1[0x98] = 0x104" (subscript_expression "param_1[0x98]" (identifier "param_1") ([ "[") (number_literal "0x98") (] "]")) (= "=") (number_literal "0x104")) (; ";")) (expression_statement "param_1[0x96] = iVar10 + 1U;" (assignment_expression "param_1[0x96] = iVar10 + 1U" (subscript_expression "param_1[0x96]" (identifier "param_1") ([ "[") (number_literal "0x96") (] "]")) (= "=") (binary_expression "iVar10 + 1U" (identifier "iVar10") (+ "+") (number_literal "1U"))) (; ";")) (expression_statement "param_1[0x97] = iVar1 - (iVar10 + 1U);" (assignment_expression "param_1[0x97] = iVar1 - (iVar10 + 1U)" (subscript_expression "param_1[0x97]" (identifier "param_1") ([ "[") (number_literal "0x97") (] "]")) (= "=") (binary_expression "iVar1 - (iVar10 + 1U)" (identifier "iVar1") (- "-") (parenthesized_expression "(iVar10 + 1U)" (( "(") (binary_expression "iVar10 + 1U" (identifier "iVar10") (+ "+") (number_literal "1U")) () ")")))) (; ";")) (goto_statement "goto LAB_0002318d;" (goto "goto") (statement_identifier "LAB_0002318d") (; ";")) (} "}"))) (if_statement "if ((int)uVar5 < (int)uVar19) break;" (if "if") (parenthesized_expression "((int)uVar5 < (int)uVar19)" (( "(") (binary_expression "(int)uVar5 < (int)uVar19" (cast_expression "(int)uVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar5")) (< "<") (cast_expression "(int)uVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar19"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if ((int)uVar5 < 0x8000) goto code_r0x00023a66;" (if "if") (parenthesized_expression "((int)uVar5 < 0x8000)" (( "(") (binary_expression "(int)uVar5 < 0x8000" (cast_expression "(int)uVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar5")) (< "<") (number_literal "0x8000")) () ")")) (goto_statement "goto code_r0x00023a66;" (goto "goto") (statement_identifier "code_r0x00023a66") (; ";"))) (expression_statement "pcVar8 = "regular expression too big";" (assignment_expression "pcVar8 = "regular expression too big"" (identifier "pcVar8") (= "=") (string_literal ""regular expression too big"" (" """) (string_content "regular expression too big") (" """))) (; ";")) (expression_statement "*(uint *)(puVar18 + -4) = uVar19;" (assignment_expression "*(uint *)(puVar18 + -4) = uVar19" (pointer_expression "*(uint *)(puVar18 + -4)" (* "*") (cast_expression "(uint *)(puVar18 + -4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -4)" (( "(") (binary_expression "puVar18 + -4" (identifier "puVar18") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "uVar19")) (; ";")) (expression_statement "ppbVar15 = (byte **)(puVar18 + -8);" (assignment_expression "ppbVar15 = (byte **)(puVar18 + -8)" (identifier "ppbVar15") (= "=") (cast_expression "(byte **)(puVar18 + -8)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar18 + -8)" (( "(") (binary_expression "puVar18 + -8" (identifier "puVar18") (+ "+") (number_literal "-8")) () ")")))) (; ";")) (expression_statement "*(undefined4 *)(puVar18 + -8) = 5;" (assignment_expression "*(undefined4 *)(puVar18 + -8) = 5" (pointer_expression "*(undefined4 *)(puVar18 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar18 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar18 + -8)" (( "(") (binary_expression "puVar18 + -8" (identifier "puVar18") (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "5")) (; ";")) (} "}")))) (goto_statement "goto code_r0x00023a04;" (goto "goto") (statement_identifier "code_r0x00023a04") (; ";")) (} "}")))) (} "}"))) (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" (identifier "bVar21") (= "=") (cast_expression "(byte)param_1[0xcc]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_1[0xcc]" (identifier "param_1") ([ "[") (number_literal "0xcc") (] "]")))) (; ";")) (expression_statement "uVar19 = 0x7b;" (assignment_expression "uVar19 = 0x7b" (identifier "uVar19") (= "=") (number_literal "0x7b")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x72:\n    bVar21 = 0;\ncode_r0x000233fa:\n    if (((*param_1 & 0x400) != 0) || ((((byte)(*param_1 >> 0xf) ^ 1) & 1) != bVar21)) {\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x7c;\n      puVar13 = auStack_6c;\n      break;\n    }\ncode_r0x000238f1:\n    *(byte *)(param_1 + 0xa3) = 1;\n    uVar19 = 0x106;\n    param_1[0x98] = 0x106;\n    puVar13 = auStack_6c;\n    goto LAB_0002318d;" (case "case") (number_literal "0x72") (: ":") (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" (identifier "bVar21") (= "=") (number_literal "0")) (; ";")) (labeled_statement "code_r0x000233fa:\n    if (((*param_1 & 0x400) != 0) || ((((byte)(*param_1 >> 0xf) ^ 1) & 1) != bVar21)) {\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x7c;\n      puVar13 = auStack_6c;\n      break;\n    }" (statement_identifier "code_r0x000233fa") (: ":") (if_statement "if (((*param_1 & 0x400) != 0) || ((((byte)(*param_1 >> 0xf) ^ 1) & 1) != bVar21)) {\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x7c;\n      puVar13 = auStack_6c;\n      break;\n    }" (if "if") (parenthesized_expression "(((*param_1 & 0x400) != 0) || ((((byte)(*param_1 >> 0xf) ^ 1) & 1) != bVar21))" (( "(") (binary_expression "((*param_1 & 0x400) != 0) || ((((byte)(*param_1 >> 0xf) ^ 1) & 1) != bVar21)" (parenthesized_expression "((*param_1 & 0x400) != 0)" (( "(") (binary_expression "(*param_1 & 0x400) != 0" (parenthesized_expression "(*param_1 & 0x400)" (( "(") (binary_expression "*param_1 & 0x400" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (& "&") (number_literal "0x400")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((((byte)(*param_1 >> 0xf) ^ 1) & 1) != bVar21)" (( "(") (binary_expression "(((byte)(*param_1 >> 0xf) ^ 1) & 1) != bVar21" (parenthesized_expression "(((byte)(*param_1 >> 0xf) ^ 1) & 1)" (( "(") (binary_expression "((byte)(*param_1 >> 0xf) ^ 1) & 1" (parenthesized_expression "((byte)(*param_1 >> 0xf) ^ 1)" (( "(") (binary_expression "(byte)(*param_1 >> 0xf) ^ 1" (call_expression "(byte)(*param_1 >> 0xf)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(*param_1 >> 0xf)" (( "(") (binary_expression "*param_1 >> 0xf" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (>> ">>") (number_literal "0xf")) () ")"))) (^ "^") (number_literal "1")) () ")")) (& "&") (number_literal "1")) () ")")) (!= "!=") (identifier "bVar21")) () ")"))) () ")")) (compound_statement "{\n      bVar21 = (byte)param_1[0xcc];\n      uVar19 = 0x7c;\n      puVar13 = auStack_6c;\n      break;\n    }" ({ "{") (expression_statement "bVar21 = (byte)param_1[0xcc];" (assignment_expression "bVar21 = (byte)param_1[0xcc]" (identifier "bVar21") (= "=") (cast_expression "(byte)param_1[0xcc]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_1[0xcc]" (identifier "param_1") ([ "[") (number_literal "0xcc") (] "]")))) (; ";")) (expression_statement "uVar19 = 0x7c;" (assignment_expression "uVar19 = 0x7c" (identifier "uVar19") (= "=") (number_literal "0x7c")) (; ";")) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" (identifier "puVar13") (= "=") (identifier "auStack_6c")) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}")))) (labeled_statement "code_r0x000238f1:\n    *(byte *)(param_1 + 0xa3) = 1;" (statement_identifier "code_r0x000238f1") (: ":") (expression_statement "*(byte *)(param_1 + 0xa3) = 1;" (assignment_expression "*(byte *)(param_1 + 0xa3) = 1" (pointer_expression "*(byte *)(param_1 + 0xa3)" (* "*") (cast_expression "(byte *)(param_1 + 0xa3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xa3)" (( "(") (binary_expression "param_1 + 0xa3" (identifier "param_1") (+ "+") (number_literal "0xa3")) () ")")))) (= "=") (number_literal "1")) (; ";"))) (expression_statement "uVar19 = 0x106;" (assignment_expression "uVar19 = 0x106" (identifier "uVar19") (= "=") (number_literal "0x106")) (; ";")) (expression_statement "param_1[0x98] = 0x106;" (assignment_expression "param_1[0x98] = 0x106" (subscript_expression "param_1[0x98]" (identifier "param_1") ([ "[") (number_literal "0x98") (] "]")) (= "=") (number_literal "0x106")) (; ";")) (expression_statement "puVar13 = auStack_6c;" (assignment_expression "puVar13 = auStack_6c" (identifier "puVar13") (= "=") (identifier "auStack_6c")) (; ";")) (goto_statement "goto LAB_0002318d;" (goto "goto") (statement_identifier "LAB_0002318d") (; ";"))) (} "}"))) (labeled_statement "LAB_00023160:\n  puVar14 = puVar13;" (statement_identifier "LAB_00023160") (: ":") (expression_statement "puVar14 = puVar13;" (assignment_expression "puVar14 = puVar13" (identifier "puVar14") (= "=") (identifier "puVar13")) (; ";"))) (expression_statement "*(byte *)(param_1 + 0xa3) = 0;" (assignment_expression "*(byte *)(param_1 + 0xa3) = 0" (pointer_expression "*(byte *)(param_1 + 0xa3)" (* "*") (cast_expression "(byte *)(param_1 + 0xa3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xa3)" (( "(") (binary_expression "param_1 + 0xa3" (identifier "param_1") (+ "+") (number_literal "0xa3")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (bVar21 == 0) {\n    if (*(byte *)((int)param_1 + 5) != 0) {\n      *(undefined4 *)(puVar14 + -4) = 0x2317a;\n      ppuVar6 = __ctype_b_loc();\n      if ((*(byte *)((int)*ppuVar6 + uVar19 * 2 + 1) & 4) != 0) {\n        uVar19 = 0;\n        do {\n          *(undefined4 *)(puVar14 + uVar19 + 0x2c) = 0;\n          uVar19 = uVar19 + 4;\n        } while (uVar19 < 0x20);\n        *(undefined4 *)(puVar14 + -4) = 0x237bd;\n        FUN_0001da50();\ncode_r0x000237bd:\n        *(undefined4 *)(puVar14 + -4) = 0x237c6;\n        iVar10 = FUN_0001e6a0();\n        uVar19 = iVar10 + 0x114;\n      }\n    }\n    param_1[0x98] = uVar19;\n    puVar13 = puVar14;\n  }\n  else {\n    param_1[0x98] = 0x109;\n    uVar19 = 0x109;\n    puVar13 = puVar14;\n  }" (if "if") (parenthesized_expression "(bVar21 == 0)" (( "(") (binary_expression "bVar21 == 0" (identifier "bVar21") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (*(byte *)((int)param_1 + 5) != 0) {\n      *(undefined4 *)(puVar14 + -4) = 0x2317a;\n      ppuVar6 = __ctype_b_loc();\n      if ((*(byte *)((int)*ppuVar6 + uVar19 * 2 + 1) & 4) != 0) {\n        uVar19 = 0;\n        do {\n          *(undefined4 *)(puVar14 + uVar19 + 0x2c) = 0;\n          uVar19 = uVar19 + 4;\n        } while (uVar19 < 0x20);\n        *(undefined4 *)(puVar14 + -4) = 0x237bd;\n        FUN_0001da50();\ncode_r0x000237bd:\n        *(undefined4 *)(puVar14 + -4) = 0x237c6;\n        iVar10 = FUN_0001e6a0();\n        uVar19 = iVar10 + 0x114;\n      }\n    }\n    param_1[0x98] = uVar19;\n    puVar13 = puVar14;\n  }" ({ "{") (if_statement "if (*(byte *)((int)param_1 + 5) != 0) {\n      *(undefined4 *)(puVar14 + -4) = 0x2317a;\n      ppuVar6 = __ctype_b_loc();\n      if ((*(byte *)((int)*ppuVar6 + uVar19 * 2 + 1) & 4) != 0) {\n        uVar19 = 0;\n        do {\n          *(undefined4 *)(puVar14 + uVar19 + 0x2c) = 0;\n          uVar19 = uVar19 + 4;\n        } while (uVar19 < 0x20);\n        *(undefined4 *)(puVar14 + -4) = 0x237bd;\n        FUN_0001da50();\ncode_r0x000237bd:\n        *(undefined4 *)(puVar14 + -4) = 0x237c6;\n        iVar10 = FUN_0001e6a0();\n        uVar19 = iVar10 + 0x114;\n      }\n    }" (if "if") (parenthesized_expression "(*(byte *)((int)param_1 + 5) != 0)" (( "(") (binary_expression "*(byte *)((int)param_1 + 5) != 0" (pointer_expression "*(byte *)((int)param_1 + 5)" (* "*") (cast_expression "(byte *)((int)param_1 + 5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 5)" (( "(") (binary_expression "(int)param_1 + 5" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "5")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      *(undefined4 *)(puVar14 + -4) = 0x2317a;\n      ppuVar6 = __ctype_b_loc();\n      if ((*(byte *)((int)*ppuVar6 + uVar19 * 2 + 1) & 4) != 0) {\n        uVar19 = 0;\n        do {\n          *(undefined4 *)(puVar14 + uVar19 + 0x2c) = 0;\n          uVar19 = uVar19 + 4;\n        } while (uVar19 < 0x20);\n        *(undefined4 *)(puVar14 + -4) = 0x237bd;\n        FUN_0001da50();\ncode_r0x000237bd:\n        *(undefined4 *)(puVar14 + -4) = 0x237c6;\n        iVar10 = FUN_0001e6a0();\n        uVar19 = iVar10 + 0x114;\n      }\n    }" ({ "{") (expression_statement "*(undefined4 *)(puVar14 + -4) = 0x2317a;" (assignment_expression "*(undefined4 *)(puVar14 + -4) = 0x2317a" (pointer_expression "*(undefined4 *)(puVar14 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar14 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + -4)" (( "(") (binary_expression "puVar14 + -4" (identifier "puVar14") (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0x2317a")) (; ";")) (expression_statement "ppuVar6 = __ctype_b_loc();" (assignment_expression "ppuVar6 = __ctype_b_loc()" (identifier "ppuVar6") (= "=") (call_expression "__ctype_b_loc()" (identifier "__ctype_b_loc") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((*(byte *)((int)*ppuVar6 + uVar19 * 2 + 1) & 4) != 0) {\n        uVar19 = 0;\n        do {\n          *(undefined4 *)(puVar14 + uVar19 + 0x2c) = 0;\n          uVar19 = uVar19 + 4;\n        } while (uVar19 < 0x20);\n        *(undefined4 *)(puVar14 + -4) = 0x237bd;\n        FUN_0001da50();\ncode_r0x000237bd:\n        *(undefined4 *)(puVar14 + -4) = 0x237c6;\n        iVar10 = FUN_0001e6a0();\n        uVar19 = iVar10 + 0x114;\n      }" (if "if") (parenthesized_expression "((*(byte *)((int)*ppuVar6 + uVar19 * 2 + 1) & 4) != 0)" (( "(") (binary_expression "(*(byte *)((int)*ppuVar6 + uVar19 * 2 + 1) & 4) != 0" (parenthesized_expression "(*(byte *)((int)*ppuVar6 + uVar19 * 2 + 1) & 4)" (( "(") (binary_expression "*(byte *)((int)*ppuVar6 + uVar19 * 2 + 1) & 4" (pointer_expression "*(byte *)((int)*ppuVar6 + uVar19 * 2 + 1)" (* "*") (cast_expression "(byte *)((int)*ppuVar6 + uVar19 * 2 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)*ppuVar6 + uVar19 * 2 + 1)" (( "(") (binary_expression "(int)*ppuVar6 + uVar19 * 2 + 1" (binary_expression "(int)*ppuVar6 + uVar19 * 2" (cast_expression "(int)*ppuVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*ppuVar6" (* "*") (identifier "ppuVar6"))) (+ "+") (binary_expression "uVar19 * 2" (identifier "uVar19") (* "*") (number_literal "2"))) (+ "+") (number_literal "1")) () ")")))) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar19 = 0;\n        do {\n          *(undefined4 *)(puVar14 + uVar19 + 0x2c) = 0;\n          uVar19 = uVar19 + 4;\n        } while (uVar19 < 0x20);\n        *(undefined4 *)(puVar14 + -4) = 0x237bd;\n        FUN_0001da50();\ncode_r0x000237bd:\n        *(undefined4 *)(puVar14 + -4) = 0x237c6;\n        iVar10 = FUN_0001e6a0();\n        uVar19 = iVar10 + 0x114;\n      }" ({ "{") (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" (identifier "uVar19") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          *(undefined4 *)(puVar14 + uVar19 + 0x2c) = 0;\n          uVar19 = uVar19 + 4;\n        } while (uVar19 < 0x20);" (do "do") (compound_statement "{\n          *(undefined4 *)(puVar14 + uVar19 + 0x2c) = 0;\n          uVar19 = uVar19 + 4;\n        }" ({ "{") (expression_statement "*(undefined4 *)(puVar14 + uVar19 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)(puVar14 + uVar19 + 0x2c) = 0" (pointer_expression "*(undefined4 *)(puVar14 + uVar19 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(puVar14 + uVar19 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + uVar19 + 0x2c)" (( "(") (binary_expression "puVar14 + uVar19 + 0x2c" (binary_expression "puVar14 + uVar19" (identifier "puVar14") (+ "+") (identifier "uVar19")) (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar19 = uVar19 + 4;" (assignment_expression "uVar19 = uVar19 + 4" (identifier "uVar19") (= "=") (binary_expression "uVar19 + 4" (identifier "uVar19") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar19 < 0x20)" (( "(") (binary_expression "uVar19 < 0x20" (identifier "uVar19") (< "<") (number_literal "0x20")) () ")")) (; ";")) (expression_statement "*(undefined4 *)(puVar14 + -4) = 0x237bd;" (assignment_expression "*(undefined4 *)(puVar14 + -4) = 0x237bd" (pointer_expression "*(undefined4 *)(puVar14 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar14 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + -4)" (( "(") (binary_expression "puVar14 + -4" (identifier "puVar14") (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0x237bd")) (; ";")) (expression_statement "FUN_0001da50();" (call_expression "FUN_0001da50()" (identifier "FUN_0001da50") (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "code_r0x000237bd:\n        *(undefined4 *)(puVar14 + -4) = 0x237c6;" (statement_identifier "code_r0x000237bd") (: ":") (expression_statement "*(undefined4 *)(puVar14 + -4) = 0x237c6;" (assignment_expression "*(undefined4 *)(puVar14 + -4) = 0x237c6" (pointer_expression "*(undefined4 *)(puVar14 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar14 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + -4)" (( "(") (binary_expression "puVar14 + -4" (identifier "puVar14") (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0x237c6")) (; ";"))) (expression_statement "iVar10 = FUN_0001e6a0();" (assignment_expression "iVar10 = FUN_0001e6a0()" (identifier "iVar10") (= "=") (call_expression "FUN_0001e6a0()" (identifier "FUN_0001e6a0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar19 = iVar10 + 0x114;" (assignment_expression "uVar19 = iVar10 + 0x114" (identifier "uVar19") (= "=") (binary_expression "iVar10 + 0x114" (identifier "iVar10") (+ "+") (number_literal "0x114"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "param_1[0x98] = uVar19;" (assignment_expression "param_1[0x98] = uVar19" (subscript_expression "param_1[0x98]" (identifier "param_1") ([ "[") (number_literal "0x98") (] "]")) (= "=") (identifier "uVar19")) (; ";")) (expression_statement "puVar13 = puVar14;" (assignment_expression "puVar13 = puVar14" (identifier "puVar13") (= "=") (identifier "puVar14")) (; ";")) (} "}")) (else_clause "else {\n    param_1[0x98] = 0x109;\n    uVar19 = 0x109;\n    puVar13 = puVar14;\n  }" (else "else") (compound_statement "{\n    param_1[0x98] = 0x109;\n    uVar19 = 0x109;\n    puVar13 = puVar14;\n  }" ({ "{") (expression_statement "param_1[0x98] = 0x109;" (assignment_expression "param_1[0x98] = 0x109" (subscript_expression "param_1[0x98]" (identifier "param_1") ([ "[") (number_literal "0x98") (] "]")) (= "=") (number_literal "0x109")) (; ";")) (expression_statement "uVar19 = 0x109;" (assignment_expression "uVar19 = 0x109" (identifier "uVar19") (= "=") (number_literal "0x109")) (; ";")) (expression_statement "puVar13 = puVar14;" (assignment_expression "puVar13 = puVar14" (identifier "puVar13") (= "=") (identifier "puVar14")) (; ";")) (} "}")))) (labeled_statement "LAB_0002318d:\n  if (*(int *)(puVar13 + 0x4c) == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar19;\n  }" (statement_identifier "LAB_0002318d") (: ":") (if_statement "if (*(int *)(puVar13 + 0x4c) == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar19;\n  }" (if "if") (parenthesized_expression "(*(int *)(puVar13 + 0x4c) == *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "*(int *)(puVar13 + 0x4c) == *(int *)(in_GS_OFFSET + 0x14)" (pointer_expression "*(int *)(puVar13 + 0x4c)" (* "*") (cast_expression "(int *)(puVar13 + 0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 0x4c)" (( "(") (binary_expression "puVar13 + 0x4c" (identifier "puVar13") (+ "+") (number_literal "0x4c")) () ")")))) (== "==") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n    return uVar19;\n  }" ({ "{") (return_statement "return uVar19;" (return "return") (identifier "uVar19") (; ";")) (} "}")))) (expression_statement "*(undefined **)(puVar13 + -4) = &UNK_00023c01;" (assignment_expression "*(undefined **)(puVar13 + -4) = &UNK_00023c01" (pointer_expression "*(undefined **)(puVar13 + -4)" (* "*") (cast_expression "(undefined **)(puVar13 + -4)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -4)" (( "(") (binary_expression "puVar13 + -4" (identifier "puVar13") (+ "+") (number_literal "-4")) () ")")))) (= "=") (pointer_expression "&UNK_00023c01" (& "&") (identifier "UNK_00023c01"))) (; ";")) (expression_statement "FUN_0002c430();" (call_expression "FUN_0002c430()" (identifier "FUN_0002c430") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Type propagation algorithm not settling */

type_1 __regparm3 function_1(type_2 *type_2)

{
  type_3 *var_20;
  size_t *psVar2;
  int var_26;
  type_4 var_3;
  type_5 *puVar5;
  bool bVar6;
  type_3 *pbVar7;
  type_6 var_15;
  type_5 **ppuVar9;
  size_t var_5;
  size_t sVar11;
  ptrdiff_t var_25;
  char *pcVar13;
  int var_17;
  type_3 *var_8;
  char var_12;
  type_3 *var_9;
  type_6 var_7;
  int var_21;
  type_7 *var_18;
  int var_1;
  type_3 var_10;
  type_3 *var_2;
  type_3 *var_6;
  type_3 var_19;
  type_8 wch;
  type_9 ccl;
  
  var_10 = 0;
  var_2 = (type_3 *)(type_2->function_1).left;
  var_26 = *(int *)(var_1 + 0x14);
  if (var_2 == (type_3 *)0x0) {
    (type_2->function_1).lasttok = -1;
    var_7 = 0xffffffff;
    goto LAB_0002318d;
  }
  var_6 = (type_3 *)(type_2->function_1).ptr;
  var_3 = (type_2->localeinfo).sbctowc[*var_6];
  if (var_3 == 0xffffffff) {
    var_5 = var_4(&wch,(char *)var_6,(size_t)var_2,&type_2->mbs);
    if (0xfffffffc < var_5 - 1) {
      (type_2->mbs).__count = 0;
      var_6 = (type_3 *)(type_2->function_1).ptr;
      (type_2->mbs).__value.__wch = 0;
      var_2 = (type_3 *)(type_2->function_1).left;
      goto LAB_00023107;
    }
    var_2 = (type_3 *)(type_2->function_1).left;
    (type_2->function_1).cur_mb_len = var_5;
    (type_2->function_1).wctok = wch;
    var_6 = (type_3 *)(type_2->function_1).ptr;
    if (var_5 == 1) goto LAB_00023117;
LAB_00023235:
    var_7 = 0xffffffff;
    (type_2->function_1).ptr = (char *)(var_6 + var_5);
    var_12 = (type_2->localeinfo).multibyte;
    (type_2->function_1).left = (int)var_2 - var_5;
    goto LAB_00023160;
  }
LAB_00023107:
  (type_2->function_1).wctok = var_3;
  (type_2->function_1).cur_mb_len = 1;
LAB_00023117:
  var_7 = (type_6)*var_6;
  var_20 = var_6 + 1;
  (type_2->function_1).ptr = (char *)var_20;
  var_8 = var_2 + -1;
  (type_2->function_1).left = (size_t)var_8;
  if (0x72 < (type_3)(var_7 - 10)) goto _L1538;
  var_15 = var_7 - 10 & 0xff;
  var_9 = (type_3 *)((int)&_GLOBAL_OFFSET_TABLE_ + (&switchD_00023149::switchdataD_0002ef08)[var_15])
  ;
  switch(var_15) {
  case 0:
    var_7 = (type_2->syntax).syntax_bits;
    if (((var_7 & 0x400) != 0) || ((var_7 & 0x800) == 0)) {
_L1503:
      var_12 = (type_2->localeinfo).multibyte;
      var_7 = 10;
      break;
    }
    goto LAB_000238f1;
  default:
    goto _L1538;
  case 0x1a:
    var_7 = (type_2->syntax).syntax_bits;
    if ((((((var_7 & 8) != 0) || (var_8 == (type_3 *)0x0)) ||
         ((var_9 = (type_3 *)((var_7 >> 0xd ^ 1) & 1), var_9 < var_8 &&
          (var_20[(type_6)(var_6[1] == 0x5c) & (type_6)var_9] == 0x29)))) ||
        ((var_9 = (type_3 *)((var_7 >> 0xf ^ 1) & 1), var_9 < var_8 &&
         (var_20[(type_6)var_9 & (type_6)(var_6[1] == 0x5c)] == 0x7c)))) ||
       (((var_7 & 0x800) != 0 && (var_6[1] == 10)))) {
LAB_00023868:
      (type_2->function_1).lasttok = 0x10d;
      var_7 = 0x10d;
      goto LAB_0002318d;
    }
_L1438:
    var_12 = (type_2->localeinfo).multibyte;
    var_7 = 0x24;
    break;
  case 0x1d:
_L1449:
    var_12 = (type_2->localeinfo).multibyte;
    var_7 = 0x27;
    break;
  case 0x1e:
    var_10 = 0;
LAB_00023262:
    if ((((type_3)((type_2->syntax).syntax_bits >> 0xd) ^ 1) & 1) == var_10) {
      psVar2 = &(type_2->function_1).parens;
      *psVar2 = *psVar2 + 1;
      var_7 = 0x107;
      (type_2->function_1).laststart = true;
      (type_2->function_1).lasttok = 0x107;
      goto LAB_0002318d;
    }
    var_12 = (type_2->localeinfo).multibyte;
    var_7 = 0x28;
    break;
  case 0x1f:
    var_10 = 0;
LAB_0002351a:
    var_7 = (type_2->syntax).syntax_bits;
    if (((((type_3)(var_7 >> 0xd) ^ 1) & 1) == var_10) &&
       ((var_5 = (type_2->function_1).parens, var_5 != 0 || ((var_7 & 0x20000) == 0)))) {
      (type_2->function_1).laststart = false;
      var_7 = 0x108;
      (type_2->function_1).parens = var_5 - 1;
      (type_2->function_1).lasttok = 0x108;
      goto LAB_0002318d;
    }
    var_12 = (type_2->localeinfo).multibyte;
    var_7 = 0x29;
    break;
  case 0x20:
    if ((((type_2->syntax).syntax_bits & 0x10) != 0) || ((type_2->function_1).laststart == false)) {
      (type_2->function_1).lasttok = 0x102;
      var_7 = 0x102;
      goto LAB_0002318d;
    }
_L1469:
    var_12 = (type_2->localeinfo).multibyte;
    var_7 = 0x2a;
    break;
  case 0x21:
    var_10 = 0;
LAB_000234d2:
    var_7 = (type_2->syntax).syntax_bits;
    if ((((var_7 & 0x400) == 0) && (((type_3)(var_7 >> 1) & 1) == var_10)) &&
       (((var_7 & 0x10) != 0 || ((type_2->function_1).laststart == false)))) {
      (type_2->function_1).lasttok = 0x103;
      var_7 = 0x103;
      goto LAB_0002318d;
    }
    var_12 = (type_2->localeinfo).multibyte;
    var_7 = 0x2b;
    break;
  case 0x24:
    bVar6 = false;
LAB_0002336a:
    var_12 = (type_2->localeinfo).multibyte;
    if (!bVar6) {
      var_5 = type_2->canychar;
      if (var_5 == 0xffffffff) {
        var_7 = (type_2->syntax).syntax_bits;
        ccl.w[0] = 0xffffffff;
        ccl.w[1] = 0xffffffff;
        ccl.w[2] = 0xffffffff;
        ccl.w[3] = 0xffffffff;
        ccl.w[4] = 0xffffffff;
        ccl.w[5] = 0xffffffff;
        ccl.w[6] = 0xffffffff;
        ccl.w[7] = 0xffffffff;
        if ((var_7 & 0x40) == 0) {
          ccl.w[0] = 0xfffffbff;
        }
        if ((var_7 & 0x80) != 0) {
          ccl.w[0] = ccl.w[0] & 0xfffffffe;
        }
        if ((type_10)var_12 != false) {
          var_7 = 0;
          do {
            if ((type_2->localeinfo).sbctowc[var_7] == 0xffffffff) {
              ccl.w[var_7 >> 5] = ccl.w[var_7 >> 5] & ~(1 << ((type_3)var_7 & 0x1f));
            }
            var_7 = var_7 + 1;
          } while (var_7 != 0x100);
        }
        var_5 = var_11(type_2,&ccl);
        var_12 = (type_2->localeinfo).multibyte;
        type_2->canychar = var_5;
      }
      (type_2->function_1).laststart = false;
      var_7 = 0x10a;
      if (var_12 == '\0') {
        var_7 = var_5 + 0x114;
      }
      (type_2->function_1).lasttok = var_7;
      goto LAB_0002318d;
    }
    var_7 = 0x2e;
    break;
  case 0x32:
_L1452:
    var_12 = (type_2->localeinfo).multibyte;
    var_7 = 0x3c;
    break;
  case 0x34:
_L1455:
    var_12 = (type_2->localeinfo).multibyte;
    var_7 = 0x3e;
    break;
  case 0x35:
    var_10 = 0;
LAB_000233b2:
    var_7 = (type_2->syntax).syntax_bits;
    if ((((var_7 & 0x400) == 0) && (((type_3)(var_7 >> 1) & 1) == var_10)) &&
       (((var_7 & 0x10) != 0 || ((type_2->function_1).laststart == false)))) {
      (type_2->function_1).lasttok = 0x101;
      var_7 = 0x101;
      goto LAB_0002318d;
    }
    var_12 = (type_2->localeinfo).multibyte;
    var_7 = 0x3f;
    break;
  case 0x38:
_L1461:
    var_12 = (type_2->localeinfo).multibyte;
    var_7 = 0x42;
    break;
  case 0x49:
  case 0x69:
    bVar6 = false;
    var_2 = var_8;
    var_6 = var_20;
LAB_0002342a:
    var_12 = (type_2->localeinfo).multibyte;
    if ((!bVar6) || (((type_2->syntax).syntax_bits & 0x80000) != 0)) break;
    if ((type_10)var_12 != false) {
      pcVar13 = &UNK_0002f468 + (var_7 == 0x73);
LAB_0002345c:
      (type_2->function_1).ptr = pcVar13;
      sVar11 = var_13(pcVar13);
      (type_2->function_1).left = sVar11;
      var_7 = var_14(type_2);
      (type_2->function_1).laststart = false;
      (type_2->function_1).lasttok = var_7;
      (type_2->function_1).ptr = (char *)var_6;
      (type_2->function_1).left = (size_t)var_2;
      goto LAB_0002318d;
    }
    var_15 = 0;
    do {
      *(type_11 *)((int)ccl.w + var_15) = 0;
      var_15 = var_15 + 4;
    } while (var_15 < 0x20);
    ppuVar9 = var_16();
    var_15 = 0;
    puVar5 = *ppuVar9;
    do {
      if ((*(type_3 *)((int)puVar5 + var_15 * 2 + 1) & 0x20) != 0) {
        ccl.w[var_15 >> 5] = ccl.w[var_15 >> 5] | 1 << ((type_3)var_15 & 0x1f);
      }
      var_15 = var_15 + 1;
    } while (var_15 != 0x100);
    if (var_7 == 0x53) {
LAB_00023b34:
      ccl.w[0] = ~ccl.w[0];
      ccl.w[1] = ~ccl.w[1];
      ccl.w[2] = ~ccl.w[2];
      ccl.w[3] = ~ccl.w[3];
      ccl.w[4] = ~ccl.w[4];
      ccl.w[5] = ~ccl.w[5];
      ccl.w[6] = ~ccl.w[6];
      ccl.w[7] = ~ccl.w[7];
    }
LAB_00023ae7:
    (type_2->function_1).laststart = false;
    goto LAB_000237bd;
  case 0x51:
    (type_2->function_1).laststart = false;
    var_7 = var_14(type_2);
    (type_2->function_1).lasttok = var_7;
    goto LAB_0002318d;
  case 0x52:
    if (var_8 == (type_3 *)0x0) {
      pcVar13 = "unfinished \\ escape";
      goto LAB_00023a1b;
    }
    var_3 = (type_2->localeinfo).sbctowc[var_6[1]];
    var_2 = var_8;
    var_6 = var_20;
    if (var_3 == 0xffffffff) {
      var_5 = var_4(&wch,(char *)var_20,(size_t)var_8,&type_2->mbs);
      if (0xfffffffc < var_5 - 1) {
        var_18 = &type_2->mbs;
        for (var_17 = 2; var_17 != 0; var_17 = var_17 + -1) {
          var_18->__count = 0;
          var_18 = (type_7 *)((int)(var_18 + -(type_6)var_10) + 4);
        }
        var_6 = (type_3 *)(type_2->function_1).ptr;
        var_2 = (type_3 *)(type_2->function_1).left;
        goto LAB_00023748;
      }
      var_2 = (type_3 *)(type_2->function_1).left;
      (type_2->function_1).cur_mb_len = var_5;
      (type_2->function_1).wctok = wch;
      var_6 = (type_3 *)(type_2->function_1).ptr;
      if (var_5 != 1) goto LAB_00023235;
    }
    else {
LAB_00023748:
      (type_2->function_1).cur_mb_len = 1;
      (type_2->function_1).wctok = var_3;
    }
    var_7 = (type_6)*var_6;
    var_20 = var_6 + 1;
    (type_2->function_1).ptr = (char *)var_20;
    var_8 = var_2 + -1;
    (type_2->function_1).left = (size_t)var_8;
    switch(var_7 - 10 & 0xff) {
    case 0:
      goto _L1503;
    case 0x1a:
      goto _L1438;
    case 0x1d:
      if (((type_2->syntax).syntax_bits & 0x80000) == 0) goto LAB_00023868;
      goto _L1449;
    case 0x1e:
      var_10 = 1;
      goto LAB_00023262;
    case 0x1f:
      var_10 = 1;
      goto LAB_0002351a;
    case 0x20:
      goto _L1469;
    case 0x21:
      var_10 = 1;
      goto LAB_000234d2;
    case 0x24:
      bVar6 = true;
      goto LAB_0002336a;
    case 0x27:
    case 0x28:
    case 0x29:
    case 0x2a:
    case 0x2b:
    case 0x2c:
    case 0x2d:
    case 0x2e:
    case 0x2f:
      if (((type_2->syntax).syntax_bits & 0x4000) == 0) {
        (type_2->function_1).laststart = false;
        var_7 = 0x112;
        (type_2->function_1).lasttok = 0x112;
        goto LAB_0002318d;
      }
    default:
_L1538:
      var_12 = (type_2->localeinfo).multibyte;
      break;
    case 0x32:
      if (((type_2->syntax).syntax_bits & 0x80000) == 0) {
        (type_2->function_1).lasttok = 0x10e;
        var_7 = 0x10e;
        goto LAB_0002318d;
      }
      goto _L1452;
    case 0x34:
      if (((type_2->syntax).syntax_bits & 0x80000) == 0) {
        (type_2->function_1).lasttok = 0x10f;
        var_7 = 0x10f;
        goto LAB_0002318d;
      }
      goto _L1455;
    case 0x35:
      var_10 = 1;
      goto LAB_000233b2;
    case 0x38:
      if (((type_2->syntax).syntax_bits & 0x80000) == 0) {
        (type_2->function_1).lasttok = 0x111;
        var_7 = 0x111;
        goto LAB_0002318d;
      }
      goto _L1461;
    case 0x49:
    case 0x69:
      bVar6 = true;
      var_2 = var_8;
      var_6 = var_20;
      goto LAB_0002342a;
    case 0x4d:
    case 0x6d:
      var_12 = (type_2->localeinfo).multibyte;
      if (((type_2->syntax).syntax_bits & 0x80000) != 0) break;
      if ((type_10)var_12 != false) {
        pcVar13 = &UNK_0002f474 + (var_7 == 0x77);
        var_2 = var_8;
        var_6 = var_20;
        goto LAB_0002345c;
      }
      var_15 = 0;
      do {
        *(type_11 *)((int)ccl.w + var_15) = 0;
        var_15 = var_15 + 4;
      } while (var_15 < 0x20);
      var_15 = 0;
      do {
        if ((type_2->syntax).sbit[var_15] == '\x02') {
          ccl.w[var_15 >> 5] = ccl.w[var_15 >> 5] | 1 << ((type_3)var_15 & 0x1f);
        }
        var_15 = var_15 + 1;
      } while (var_15 != 0x100);
      if (var_7 == 0x57) goto LAB_00023b34;
      goto LAB_00023ae7;
    case 0x51:
      var_12 = (type_2->localeinfo).multibyte;
      var_7 = 0x5b;
      break;
    case 0x52:
      var_12 = (type_2->localeinfo).multibyte;
      var_7 = 0x5c;
      break;
    case 0x54:
      goto _L1433;
    case 0x56:
      if (((type_2->syntax).syntax_bits & 0x80000) == 0) goto LAB_00023880;
      goto _L1446;
    case 0x58:
      if (((type_2->syntax).syntax_bits & 0x80000) == 0) {
        (type_2->function_1).lasttok = 0x110;
        var_7 = 0x110;
        goto LAB_0002318d;
      }
      goto _L1458;
    case 0x71:
      var_19 = 1;
      var_8 = var_2;
      var_9 = var_6;
      var_6 = var_20;
      goto LAB_00023295;
    case 0x72:
      var_10 = 1;
      goto LAB_000233fa;
    }
    break;
  case 0x54:
    if (((((type_2->syntax).syntax_bits & 8) != 0) ||
        (var_17 = (type_2->function_1).lasttok, var_17 - 0x106U < 2)) || (var_17 == -1)) {
LAB_00023880:
      (type_2->function_1).lasttok = 0x10c;
      var_7 = 0x10c;
      goto LAB_0002318d;
    }
_L1433:
    var_12 = (type_2->localeinfo).multibyte;
    var_7 = 0x5e;
    break;
  case 0x56:
_L1446:
    var_12 = (type_2->localeinfo).multibyte;
    var_7 = 0x60;
    break;
  case 0x58:
_L1458:
    var_12 = (type_2->localeinfo).multibyte;
    var_7 = 0x62;
    break;
  case 0x71:
    var_19 = 0;
    var_8 = var_2;
    var_9 = var_6;
    var_6 = var_20;
LAB_00023295:
    var_7 = (type_2->syntax).syntax_bits;
    if ((((var_7 & 0x200) != 0) && ((((type_3)(var_7 >> 0xc) ^ 1) & 1) == var_19)) &&
       (((var_7 & 0x10) != 0 || ((type_2->function_1).laststart == false)))) {
      var_20 = var_9 + (int)var_8;
      (type_2->function_1).maxrep = -1;
      (type_2->function_1).minrep = -1;
      pbVar7 = var_6;
      if (var_20 == var_6) {
LAB_00023b5a:
        var_6 = pbVar7;
        if (var_19 == 0) {
LAB_00023a30:
          if (var_20 != var_6) goto LAB_00023a3a;
        }
      }
      else {
        var_10 = var_9[1];
        var_8 = (type_3 *)(int)(char)var_10;
        if ((type_3)(var_10 - 0x30) < 10) {
          var_9 = (type_3 *)0xffffffff;
          var_2 = var_8;
          do {
            if ((-1 < (int)var_9) &&
               (var_2 = var_2 + (int)var_9 * 10, 0x8030 < (int)var_2)) {
              var_2 = (type_3 *)0x8030;
            }
            var_9 = var_2 + -0x30;
            (type_2->function_1).minrep = (int)var_9;
            var_6 = var_6 + 1;
            pbVar7 = var_6;
            if (var_20 == var_6) goto LAB_00023b5a;
            var_2 = (type_3 *)(int)(char)*var_6;
            var_8 = var_2 + -0x30;
          } while ((type_3)var_8 < 10);
          if (*var_6 == 0x2c) {
            if ((int)var_9 < 0) goto LAB_00023bed;
LAB_00023b6e:
            var_8 = var_6 + 1;
            pbVar7 = var_20;
            if (var_20 == var_8) goto LAB_00023b5a;
            var_10 = var_6[1];
            var_6 = var_8;
            if ((type_3)(var_10 - 0x30) < 10) {
              var_17 = -1;
              do {
                var_21 = (int)(char)var_10;
                if ((-1 < var_17) && (var_21 = var_21 + var_17 * 10, 0x8030 < var_21)) {
                  var_21 = 0x8030;
                }
                var_17 = var_21 + -0x30;
                (type_2->function_1).maxrep = var_17;
                var_8 = var_8 + 1;
                if (var_20 == var_8) goto LAB_00023b5a;
                var_10 = *var_8;
                var_6 = var_8;
              } while ((type_3)(var_10 - 0x30) < 10);
            }
            goto LAB_00023bd8;
          }
          (type_2->function_1).maxrep = (int)var_9;
          if (var_19 == 0) goto LAB_00023a30;
LAB_000239fb:
          if (*var_6 == 0x5c) {
            var_6 = var_6 + 1;
            goto LAB_00023a30;
          }
        }
        else {
          if (var_10 == 0x2c) {
LAB_00023bed:
            (type_2->function_1).minrep = 0;
            goto LAB_00023b6e;
          }
LAB_00023bd8:
          if (var_19 != 0) goto LAB_000239fb;
LAB_00023a3a:
          if ((*var_6 == 0x7d) && (var_9 = (type_3 *)(type_2->function_1).minrep, -1 < (int)var_9)) {
            var_17 = (type_2->function_1).maxrep;
            if (-1 < var_17) {
              if (var_17 < (int)var_9) goto LAB_00023a04;
              if (0x7fff < var_17) {
                pcVar13 = "regular expression too big";
                goto LAB_00023a1b;
              }
            }
            (type_2->function_1).laststart = false;
            var_7 = 0x104;
            (type_2->function_1).lasttok = 0x104;
            (type_2->function_1).ptr = (char *)(var_6 + 1);
            (type_2->function_1).left = (int)var_20 - (int)(var_6 + 1);
            goto LAB_0002318d;
          }
        }
      }
LAB_00023a04:
      if ((var_7 & 0x200000) == 0) {
        pcVar13 = "invalid content of \\{\\}";
        var_9 = var_8;
LAB_00023a1b:
        pcVar13 = (char *)var_22(0,pcVar13,5,var_9);
                    /* WARNING: Subroutine does not return */
        var_23(pcVar13);
      }
    }
    var_12 = (type_2->localeinfo).multibyte;
    var_7 = 0x7b;
    break;
  case 0x72:
    var_10 = 0;
LAB_000233fa:
    var_7 = (type_2->syntax).syntax_bits;
    if (((var_7 & 0x400) != 0) || ((((type_3)(var_7 >> 0xf) ^ 1) & 1) != var_10)) {
      var_12 = (type_2->localeinfo).multibyte;
      var_7 = 0x7c;
      break;
    }
LAB_000238f1:
    (type_2->function_1).laststart = true;
    var_7 = 0x106;
    (type_2->function_1).lasttok = 0x106;
    goto LAB_0002318d;
  }
LAB_00023160:
  (type_2->function_1).laststart = false;
  if (var_12 == '\0') {
    if (((type_2->syntax).case_fold != false) &&
       (ppuVar9 = var_16(), (*(type_3 *)((int)*ppuVar9 + var_7 * 2 + 1) & 4) != 0)) {
      var_15 = 0;
      do {
        *(type_11 *)((int)ccl.w + var_15) = 0;
        var_15 = var_15 + 4;
      } while (var_15 < 0x20);
      var_24(var_7,&ccl);
LAB_000237bd:
      var_25 = var_11(type_2,&ccl);
      var_7 = var_25 + 0x114;
    }
    (type_2->function_1).lasttok = var_7;
  }
  else {
    (type_2->function_1).lasttok = 0x109;
    var_7 = 0x109;
  }
LAB_0002318d:
  if (var_26 == *(int *)(var_1 + 0x14)) {
    return var_7;
  }
                    /* WARNING: Subroutine does not return */
  var_27();
}


(translation_unit (function_definition type: (type_identifier) (ERROR (identifier)) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) 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: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator 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: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (array_declarator declarator: (identifier) size: (number_literal)))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (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: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (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)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (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: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_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: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) (switch_statement condition: (parenthesized_expression (identifier)) body: (compound_statement (case_statement value: (number_literal) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (break_statement))) (goto_statement label: (statement_identifier))) (case_statement (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) right: (parenthesized_expression (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) right: (number_literal))))))))) right: (parenthesized_expression (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))) right: (number_literal))))))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (break_statement)) (case_statement value: (number_literal) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) right: (number_literal))) right: (number_literal))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) right: (number_literal))) right: (number_literal))) right: (identifier))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal)))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (break_statement)) (case_statement value: (number_literal) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))) right: (identifier))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (false))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (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: (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: (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))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (number_literal))) right: (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (number_literal))) right: (unary_expression argument: (parenthesized_expression (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_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))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (break_statement)) (case_statement value: (number_literal) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (break_statement)) (case_statement value: (number_literal) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))) right: (identifier))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (break_statement)) (case_statement value: (number_literal) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (break_statement)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (false))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (unary_expression argument: (identifier))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal)))))) consequence: (break_statement)) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (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))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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: (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))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (number_literal))) right: (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (number_literal))) right: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (unary_expression argument: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (unary_expression argument: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (unary_expression argument: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (unary_expression argument: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (unary_expression argument: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (unary_expression argument: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (unary_expression argument: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (unary_expression argument: (subscript_expression argument: (identifier) index: (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: (number_literal)))) (goto_statement label: (statement_identifier))) (case_statement value: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content) (escape_sequence) (string_content)))) (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)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (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: (identifier) right: (number_literal))))))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (subscript_expression argument: (identifier) index: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (for_statement initializer: (assignment_expression left: (identifier) right: (number_literal)) condition: (binary_expression left: (identifier) right: (number_literal)) update: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (switch_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) body: (compound_statement (case_statement value: (number_literal) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (true))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (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))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (goto_statement label: (statement_identifier))))) (case_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (break_statement)) (case_statement value: (number_literal) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (true))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (break_statement)) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (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: (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))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (number_literal))) right: (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (number_literal))) right: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (break_statement)) (case_statement value: (number_literal) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier))))) (break_statement)) (case_statement value: (number_literal) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (break_statement)) (case_statement value: (number_literal) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (break_statement)) (case_statement value: (number_literal) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (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))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) right: (number_literal))) right: (number_literal))) right: (identifier)))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal)) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))))))))) 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))))) (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))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) right: (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) 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: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) consequence: (compound_statement (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_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: (identifier))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) right: (binary_expression left: (number_literal) right: (identifier)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) condition: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (labeled_statement label: (statement_identifier) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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: (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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (break_statement)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (char_literal (character)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (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: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (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))) (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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (goto_statement label: (statement_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: (break_statement)) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (goto_statement label: (statement_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) right: (number_literal))) right: (number_literal))) right: (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (break_statement)))) (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: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) 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: (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))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) right: (number_literal))) right: (number_literal))) 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: (binary_expression left: (identifier) right: (identifier)) 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: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (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: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (return_statement (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))))

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

uint __regparm3 MASKED(uint *param_1)

{
  int iVar1;
  ushort *puVar2;
  byte *pbVar3;
  bool bVar4;
  uint uVar5;
  ushort **ppuVar6;
  byte *pbVar7;
  char *pcVar8;
  size_t sVar9;
  int iVar10;
  undefined4 uVar11;
  byte *pbVar12;
  byte *extraout_ECX;
  undefined1 *puVar13;
  undefined1 *puVar14;
  byte **ppbVar15;
  undefined1 *puVar16;
  undefined1 *puVar17;
  undefined1 *puVar18;
  uint uVar19;
  uint *puVar20;
  int in_GS_OFFSET;
  byte bVar21;
  undefined4 uStackY_80;
  byte *pbStack_74;
  uint *puStack_70;
  undefined1 auStack_6c [12];
  byte *local_60;
  byte *local_5c [2];
  byte bStack_51;
  uint auStack_50 [4];
  uint local_40 [11];
  undefined4 uStack_14;
  
  bVar21 = 0;
  uStack_14 = 0x230cb;
  pbVar12 = (byte *)param_1[0x97];
  local_40[8] = *(undefined4 *)(in_GS_OFFSET + 0x14);
  if (pbVar12 == (byte *)0x0) {
    param_1[0x98] = 0xffffffff;
    uVar19 = 0xffffffff;
    puVar13 = auStack_6c;
    goto LAB_0002318d;
  }
  pbVar7 = (byte *)param_1[0x96];
  uVar19 = param_1[*pbVar7 + 0x10d];
  if (uVar19 == 0xffffffff) {
    puStack_70 = param_1 + 0xb2;
    pbStack_74 = pbVar12;
    uVar5 = FUN_0002b6f0(auStack_50 + 3,pbVar7);
    if (0xfffffffc < uVar5 - 1) {
      param_1[0xb2] = 0;
      pbVar7 = (byte *)param_1[0x96];
      param_1[0xb3] = 0;
      pbVar12 = (byte *)param_1[0x97];
      goto LAB_00023107;
    }
    pbVar12 = (byte *)param_1[0x97];
    param_1[0x9d] = uVar5;
    param_1[0x9c] = auStack_50[3];
    pbVar7 = (byte *)param_1[0x96];
    if (uVar5 == 1) goto LAB_00023117;
code_r0x00023235:
    uVar19 = 0xffffffff;
    param_1[0x96] = (uint)(pbVar7 + uVar5);
    bVar21 = (byte)param_1[0xcc];
    param_1[0x97] = (int)pbVar12 - uVar5;
    puVar13 = auStack_6c;
    goto LAB_00023160;
  }
LAB_00023107:
  param_1[0x9c] = uVar19;
  param_1[0x9d] = 1;
LAB_00023117:
  puVar14 = auStack_6c;
  puVar18 = auStack_6c;
  puVar16 = auStack_6c;
  puVar17 = auStack_6c;
  puVar13 = auStack_6c;
  uVar19 = (uint)*pbVar7;
  local_5c[0] = pbVar7 + 1;
  param_1[0x96] = (uint)local_5c[0];
  local_60 = pbVar12 + -1;
  param_1[0x97] = (uint)local_60;
  if (0x72 < (byte)(uVar19 - 10)) goto LAB_00023150;
  uVar5 = uVar19 - 10 & 0xff;
  switch(uVar5) {
  case 0:
    if (((*param_1 & 0x400) != 0) || ((*param_1 & 0x800) == 0)) {
code_r0x0002359b:
      bVar21 = (byte)param_1[0xcc];
      uVar19 = 10;
      puVar13 = auStack_6c;
      break;
    }
    goto code_r0x000238f1;
  default:
    goto LAB_00023150;
  case 0x1a:
    uVar19 = *param_1;
    if ((((((uVar19 & 8) != 0) || (local_60 == (byte *)0x0)) ||
         ((pbVar12 = (byte *)((uVar19 >> 0xd ^ 1) & 1), pbVar12 < local_60 &&
          (local_5c[0][(uint)(pbVar7[1] == 0x5c) & (uint)pbVar12] == 0x29)))) ||
        ((pbVar12 = (byte *)((uVar19 >> 0xf ^ 1) & 1), pbVar12 < local_60 &&
         (local_5c[0][(uint)pbVar12 & (uint)(pbVar7[1] == 0x5c)] == 0x7c)))) ||
       (((uVar19 & 0x800) != 0 && (pbVar7[1] == 10)))) {
code_r0x00023868:
      param_1[0x98] = 0x10d;
      uVar19 = 0x10d;
      puVar13 = auStack_6c;
      goto LAB_0002318d;
    }
code_r0x00023673:
    bVar21 = (byte)param_1[0xcc];
    uVar19 = 0x24;
    puVar13 = auStack_6c;
    break;
  case 0x1d:
code_r0x00023690:
    bVar21 = (byte)param_1[0xcc];
    uVar19 = 0x27;
    puVar13 = auStack_6c;
    break;
  case 0x1e:
    bVar21 = 0;
code_r0x00023262:
    if ((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) {
      param_1[0x99] = param_1[0x99] + 1;
      uVar19 = 0x107;
      *(byte *)(param_1 + 0xa3) = 1;
      param_1[0x98] = 0x107;
      puVar13 = auStack_6c;
      goto LAB_0002318d;
    }
    bVar21 = (byte)param_1[0xcc];
    uVar19 = 0x28;
    puVar13 = auStack_6c;
    break;
  case 0x1f:
    bVar21 = 0;
code_r0x0002351a:
    if (((((byte)(*param_1 >> 0xd) ^ 1) & 1) == bVar21) &&
       ((param_1[0x99] != 0 || ((*param_1 & 0x20000) == 0)))) {
      *(byte *)(param_1 + 0xa3) = 0;
      uVar19 = 0x108;
      param_1[0x99] = param_1[0x99] - 1;
      param_1[0x98] = 0x108;
      puVar13 = auStack_6c;
      goto LAB_0002318d;
    }
    bVar21 = (byte)param_1[0xcc];
    uVar19 = 0x29;
    puVar13 = auStack_6c;
    break;
  case 0x20:
    if (((*param_1 & 0x10) != 0) || ((byte)param_1[0xa3] == 0)) {
      param_1[0x98] = 0x102;
      uVar19 = 0x102;
      puVar13 = auStack_6c;
      goto LAB_0002318d;
    }
code_r0x00023894:
    bVar21 = (byte)param_1[0xcc];
    uVar19 = 0x2a;
    puVar13 = auStack_6c;
    break;
  case 0x21:
    bVar21 = 0;
code_r0x000234d2:
    uVar19 = *param_1;
    if ((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&
       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))) {
      param_1[0x98] = 0x103;
      uVar19 = 0x103;
      puVar13 = auStack_6c;
      goto LAB_0002318d;
    }
    bVar21 = (byte)param_1[0xcc];
    uVar19 = 0x2b;
    puVar13 = auStack_6c;
    break;
  case 0x24:
    bVar4 = false;
code_r0x0002336a:
    bVar21 = (byte)param_1[0xcc];
    if (!bVar4) {
      uVar5 = param_1[0x95];
      if (uVar5 == 0xffffffff) {
        local_40[0] = 0xffffffff;
        local_40[1] = 0xffffffff;
        local_40[2] = 0xffffffff;
        local_40[3] = 0xffffffff;
        local_40[4] = 0xffffffff;
        local_40[5] = 0xffffffff;
        local_40[6] = 0xffffffff;
        local_40[7] = 0xffffffff;
        if ((*param_1 & 0x40) == 0) {
          local_40[0] = 0xfffffbff;
        }
        if ((*param_1 & 0x80) != 0) {
          local_40[0] = local_40[0] & 0xfffffffe;
        }
        if (bVar21 != 0) {
          uVar19 = 0;
          do {
            if (param_1[uVar19 + 0x10d] == 0xffffffff) {
              local_40[uVar19 >> 5] = local_40[uVar19 >> 5] & ~(1 << ((byte)uVar19 & 0x1f));
            }
            uVar19 = uVar19 + 1;
          } while (uVar19 != 0x100);
        }
        puStack_70 = (uint *)&UNK_000239cf;
        uVar5 = FUN_0001e6a0();
        bVar21 = (byte)param_1[0xcc];
        param_1[0x95] = uVar5;
      }
      *(byte *)(param_1 + 0xa3) = 0;
      uVar19 = 0x10a;
      if (bVar21 == 0) {
        uVar19 = uVar5 + 0x114;
      }
      param_1[0x98] = uVar19;
      puVar13 = auStack_6c;
      goto LAB_0002318d;
    }
    uVar19 = 0x2e;
    puVar13 = auStack_6c;
    break;
  case 0x32:
code_r0x000236f8:
    bVar21 = (byte)param_1[0xcc];
    uVar19 = 0x3c;
    puVar13 = auStack_6c;
    break;
  case 0x34:
code_r0x000236e0:
    bVar21 = (byte)param_1[0xcc];
    uVar19 = 0x3e;
    puVar13 = auStack_6c;
    break;
  case 0x35:
    bVar21 = 0;
code_r0x000233b2:
    uVar19 = *param_1;
    if ((((uVar19 & 0x400) == 0) && (((byte)(uVar19 >> 1) & 1) == bVar21)) &&
       (((uVar19 & 0x10) != 0 || ((byte)param_1[0xa3] == 0)))) {
      param_1[0x98] = 0x101;
      uVar19 = 0x101;
      puVar13 = auStack_6c;
      goto LAB_0002318d;
    }
    bVar21 = (byte)param_1[0xcc];
    uVar19 = 0x3f;
    puVar13 = auStack_6c;
    break;
  case 0x38:
code_r0x00023710:
    bVar21 = (byte)param_1[0xcc];
    uVar19 = 0x42;
    puVar13 = auStack_6c;
    break;
  case 0x49:
  case 0x69:
    bVar4 = false;
code_r0x0002342a:
    bVar21 = (byte)param_1[0xcc];
    puVar13 = auStack_6c;
    if ((!bVar4) || (puVar13 = auStack_6c, (*param_1 & 0x80000) != 0)) break;
    if (bVar21 != 0) {
      pcVar8 = &UNK_0002f468 + (uVar19 == 0x73);
code_r0x0002345c:
      param_1[0x96] = (uint)pcVar8;
      sVar9 = strlen(pcVar8);
      param_1[0x97] = sVar9;
      puStack_70 = (uint *)&UNK_0002347b;
      uVar19 = FUN_00021f80();
      *(byte *)(param_1 + 0xa3) = 0;
      param_1[0x98] = uVar19;
      param_1[0x96] = (uint)local_5c[0];
      param_1[0x97] = (uint)local_60;
      puVar13 = auStack_6c;
      goto LAB_0002318d;
    }
    uVar5 = 0;
    do {
      *(undefined4 *)((int)local_40 + uVar5) = 0;
      uVar5 = uVar5 + 4;
    } while (uVar5 < 0x20);
    puStack_70 = (uint *)&UNK_00023ab3;
    ppuVar6 = __ctype_b_loc();
    uVar5 = 0;
    puVar2 = *ppuVar6;
    do {
      if ((*(byte *)((int)puVar2 + uVar5 * 2 + 1) & 0x20) != 0) {
        local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);
      }
      uVar5 = uVar5 + 1;
    } while (uVar5 != 0x100);
    if (uVar19 == 0x53) {
code_r0x00023b34:
      local_40[0] = ~local_40[0];
      local_40[1] = ~local_40[1];
      local_40[2] = ~local_40[2];
      local_40[3] = ~local_40[3];
      local_40[4] = ~local_40[4];
      local_40[5] = ~local_40[5];
      local_40[6] = ~local_40[6];
      local_40[7] = ~local_40[7];
    }
code_r0x00023ae7:
    *(byte *)(param_1 + 0xa3) = 0;
    goto code_r0x000237bd;
  case 0x51:
    *(byte *)(param_1 + 0xa3) = 0;
    puStack_70 = (uint *)&UNK_0002357e;
    uVar19 = FUN_00021f80();
    param_1[0x98] = uVar19;
    puVar13 = auStack_6c;
    goto LAB_0002318d;
  case 0x52:
    if (local_60 == (byte *)0x0) {
      pcVar8 = "unfinished \\ escape";
      ppbVar15 = &pbStack_74;
      pbStack_74 = (byte *)0x5;
      puStack_70 = (uint *)((int)&__DT_PLTGOT + *(int *)(&DAT_0002ef08 + uVar5 * 4));
      goto code_r0x00023a1b;
    }
    pbVar12 = (byte *)param_1[pbVar7[1] + 0x10d];
    if (pbVar12 == (byte *)0xffffffff) {
      pbStack_74 = local_60;
      puStack_70 = param_1 + 0xb2;
      local_5c[1] = pbVar12;
      uVar5 = FUN_0002b6f0(auStack_50 + 3,local_5c[0]);
      if (0xfffffffc < uVar5 - 1) {
        puVar20 = param_1 + 0xb2;
        for (iVar10 = 2; iVar10 != 0; iVar10 = iVar10 + -1) {
          *puVar20 = 0;
          puVar20 = puVar20 + (uint)bVar21 * -2 + 1;
        }
        local_5c[0] = (byte *)param_1[0x96];
        local_60 = (byte *)param_1[0x97];
        pbVar12 = local_5c[1];
        goto code_r0x00023748;
      }
      pbVar12 = (byte *)param_1[0x97];
      param_1[0x9d] = uVar5;
      param_1[0x9c] = auStack_50[3];
      pbVar7 = (byte *)param_1[0x96];
      if (uVar5 != 1) goto code_r0x00023235;
    }
    else {
code_r0x00023748:
      param_1[0x9d] = 1;
      param_1[0x9c] = (uint)pbVar12;
      pbVar12 = local_60;
      pbVar7 = local_5c[0];
    }
    uVar19 = (uint)*pbVar7;
    local_5c[0] = pbVar7 + 1;
    param_1[0x96] = (uint)(pbVar7 + 1);
    local_60 = pbVar12 + -1;
    param_1[0x97] = (uint)(pbVar12 + -1);
    switch(uVar19 - 10 & 0xff) {
    case 0:
      goto code_r0x0002359b;
    case 0x1a:
      goto code_r0x00023673;
    case 0x1d:
      if ((*param_1 & 0x80000) == 0) goto code_r0x00023868;
      goto code_r0x00023690;
    case 0x1e:
      bVar21 = 1;
      goto code_r0x00023262;
    case 0x1f:
      bVar21 = 1;
      goto code_r0x0002351a;
    case 0x20:
      goto code_r0x00023894;
    case 0x21:
      bVar21 = 1;
      goto code_r0x000234d2;
    case 0x24:
      bVar4 = true;
      goto code_r0x0002336a;
    case 0x27:
    case 0x28:
    case 0x29:
    case 0x2a:
    case 0x2b:
    case 0x2c:
    case 0x2d:
    case 0x2e:
    case 0x2f:
      if ((*param_1 & 0x4000) == 0) {
        *(byte *)(param_1 + 0xa3) = 0;
        uVar19 = 0x112;
        param_1[0x98] = 0x112;
        goto LAB_0002318d;
      }
    default:
LAB_00023150:
      bVar21 = (byte)param_1[0xcc];
      puVar13 = auStack_6c;
      break;
    case 0x32:
      if ((*param_1 & 0x80000) == 0) {
        param_1[0x98] = 0x10e;
        uVar19 = 0x10e;
        puVar13 = auStack_6c;
        goto LAB_0002318d;
      }
      goto code_r0x000236f8;
    case 0x34:
      if ((*param_1 & 0x80000) == 0) {
        param_1[0x98] = 0x10f;
        uVar19 = 0x10f;
        puVar13 = auStack_6c;
        goto LAB_0002318d;
      }
      goto code_r0x000236e0;
    case 0x35:
      bVar21 = 1;
      goto code_r0x000233b2;
    case 0x38:
      if ((*param_1 & 0x80000) == 0) {
        param_1[0x98] = 0x111;
        uVar19 = 0x111;
        puVar13 = auStack_6c;
        goto LAB_0002318d;
      }
      goto code_r0x00023710;
    case 0x49:
    case 0x69:
      bVar4 = true;
      goto code_r0x0002342a;
    case 0x4d:
    case 0x6d:
      bVar21 = (byte)param_1[0xcc];
      puVar13 = auStack_6c;
      if ((*param_1 & 0x80000) != 0) break;
      if (bVar21 != 0) {
        pcVar8 = &UNK_0002f474 + (uVar19 == 0x77);
        goto code_r0x0002345c;
      }
      uVar5 = 0;
      do {
        *(undefined4 *)((int)local_40 + uVar5) = 0;
        uVar5 = uVar5 + 4;
      } while (uVar5 < 0x20);
      uVar5 = 0;
      do {
        if (*(byte *)((int)param_1 + uVar5 + 8) == 2) {
          local_40[uVar5 >> 5] = local_40[uVar5 >> 5] | 1 << ((byte)uVar5 & 0x1f);
        }
        uVar5 = uVar5 + 1;
      } while (uVar5 != 0x100);
      if (uVar19 == 0x57) goto code_r0x00023b34;
      goto code_r0x00023ae7;
    case 0x51:
      bVar21 = (byte)param_1[0xcc];
      uVar19 = 0x5b;
      puVar13 = auStack_6c;
      break;
    case 0x52:
      bVar21 = (byte)param_1[0xcc];
      uVar19 = 0x5c;
      puVar13 = auStack_6c;
      break;
    case 0x54:
      goto code_r0x000235d7;
    case 0x56:
      if ((*param_1 & 0x80000) == 0) goto code_r0x00023880;
      goto code_r0x000236c8;
    case 0x58:
      if ((*param_1 & 0x80000) == 0) {
        param_1[0x98] = 0x110;
        uVar19 = 0x110;
        puVar13 = auStack_6c;
        goto LAB_0002318d;
      }
      goto code_r0x000236a8;
    case 0x71:
      bStack_51 = 1;
      goto code_r0x00023295;
    case 0x72:
      bVar21 = 1;
      goto code_r0x000233fa;
    }
    break;
  case 0x54:
    if ((((*param_1 & 8) != 0) || (param_1[0x98] - 0x106 < 2)) || (param_1[0x98] == 0xffffffff)) {
code_r0x00023880:
      param_1[0x98] = 0x10c;
      uVar19 = 0x10c;
      puVar13 = auStack_6c;
      goto LAB_0002318d;
    }
code_r0x000235d7:
    bVar21 = (byte)param_1[0xcc];
    uVar19 = 0x5e;
    puVar13 = auStack_6c;
    break;
  case 0x56:
code_r0x000236c8:
    bVar21 = (byte)param_1[0xcc];
    uVar19 = 0x60;
    puVar13 = auStack_6c;
    break;
  case 0x58:
code_r0x000236a8:
    bVar21 = (byte)param_1[0xcc];
    uVar19 = 0x62;
    puVar13 = auStack_6c;
    break;
  case 0x71:
    bStack_51 = 0;
code_r0x00023295:
    auStack_50[0] = *param_1;
    puVar13 = auStack_6c;
    if ((((auStack_50[0] & 0x200) != 0) &&
        (puVar13 = auStack_6c, (((byte)(auStack_50[0] >> 0xc) ^ 1) & 1) == bStack_51)) &&
       (((auStack_50[0] & 0x10) != 0 || (puVar13 = auStack_6c, (byte)param_1[0xa3] == 0)))) {
      local_5c[1] = pbVar7 + (int)pbVar12;
      param_1[0x9b] = 0xffffffff;
      param_1[0x9a] = 0xffffffff;
      if (local_5c[1] == local_5c[0]) {
code_r0x00023b5a:
        puVar13 = auStack_6c;
        if (bStack_51 == 0) goto code_r0x00023a30;
      }
      else {
        bVar21 = pbVar7[1];
        pbVar12 = (byte *)(int)(char)bVar21;
        if ((byte)(bVar21 - 0x30) < 10) {
          pbVar7 = (byte *)0xffffffff;
          local_60 = pbVar12;
          do {
            pbVar3 = local_60;
            if ((-1 < (int)pbVar7) &&
               (pbVar3 = local_60 + (int)pbVar7 * 10, 0x8030 < (int)(local_60 + (int)pbVar7 * 10)))
            {
              pbVar3 = (byte *)0x8030;
            }
            pbVar7 = pbVar3 + -0x30;
            param_1[0x9a] = (uint)pbVar7;
            local_5c[0] = local_5c[0] + 1;
            if (local_5c[1] == local_5c[0]) {
              goto code_r0x00023b5a;
            }
            bVar21 = *local_5c[0];
            local_60 = (byte *)(int)(char)bVar21;
            pbVar12 = (byte *)(int)(char)bVar21 + -0x30;
          } while ((byte)pbVar12 < 10);
          if (bVar21 == 0x2c) {
            if ((int)pbVar7 < 0) goto code_r0x00023bed;
code_r0x00023b6e:
            pbVar12 = local_5c[0] + 1;
            if (local_5c[1] == pbVar12) {
code_r0x00023bca:
              local_5c[0] = local_5c[1];
              goto code_r0x00023b5a;
            }
            bVar21 = local_5c[0][1];
            if ((byte)(bVar21 - 0x30) < 10) {
              uVar19 = 0xffffffff;
              do {
                iVar10 = (int)(char)bVar21;
                if ((-1 < (int)uVar19) && (iVar10 = iVar10 + uVar19 * 10, 0x8030 < iVar10)) {
                  iVar10 = 0x8030;
                }
                uVar19 = iVar10 - 0x30;
                param_1[0x9b] = uVar19;
                pbVar12 = pbVar12 + 1;
                if (local_5c[1] == pbVar12) goto code_r0x00023bca;
                bVar21 = *pbVar12;
              } while ((byte)(bVar21 - 0x30) < 10);
            }
            local_5c[0] = pbVar12;
            goto code_r0x00023bd8;
          }
          param_1[0x9b] = (uint)pbVar7;
          puVar17 = auStack_6c;
          if (bStack_51 == 0) goto code_r0x00023a30;
        }
        else {
          if (bVar21 == 0x2c) {
code_r0x00023bed:
            param_1[0x9a] = 0;
            goto code_r0x00023b6e;
          }
code_r0x00023bd8:
          if (bStack_51 == 0) goto code_r0x00023a3a;
        }
        puVar13 = auStack_6c;
        if (*local_5c[0] == 0x5c) goto code_r0x00023a2b;
      }
code_r0x00023a04:
      if ((*(uint *)(puVar13 + 0x1c) & 0x200000) == 0) {
        *(byte **)(puVar13 + -4) = pbVar12;
        pcVar8 = "invalid content of \\{\\}";
        ppbVar15 = (byte **)(puVar13 + -8);
        *(undefined4 *)(puVar13 + -8) = 5;
code_r0x00023a1b:
        while( true ) {
          *(char **)((int)ppbVar15 + -4) = pcVar8;
          puVar16 = (undefined1 *)((int)ppbVar15 + -8);
          *(undefined4 *)((int)ppbVar15 + -8) = 0;
          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a23;
          uVar11 = dcgettext();
          *(undefined4 *)((int)ppbVar15 + -8) = uVar11;
          *(undefined **)((int)ppbVar15 + -0xc) = &UNK_00023a2b;
          FUN_0001be40();
          pbVar12 = extraout_ECX;
code_r0x00023a2b:
          *(int *)(puVar16 + 0x10) = *(int *)(puVar16 + 0x10) + 1;
          puVar17 = puVar16;
code_r0x00023a30:
          puVar13 = puVar17;
          puVar18 = puVar17;
          if (*(int *)(puVar17 + 0x14) == *(int *)(puVar17 + 0x10)) break;
code_r0x00023a3a:
          puVar13 = puVar18;
          if ((**(char **)(puVar18 + 0x10) != '}') || (uVar19 = param_1[0x9a], (int)uVar19 < 0))
          break;
          uVar5 = param_1[0x9b];
          if ((int)uVar5 < 0) {
code_r0x00023a66:
            iVar10 = *(int *)(puVar18 + 0x10);
            iVar1 = *(int *)(puVar18 + 0x14);
            *(byte *)(param_1 + 0xa3) = 0;
            uVar19 = 0x104;
            param_1[0x98] = 0x104;
            param_1[0x96] = iVar10 + 1U;
            param_1[0x97] = iVar1 - (iVar10 + 1U);
            goto LAB_0002318d;
          }
          if ((int)uVar5 < (int)uVar19) break;
          if ((int)uVar5 < 0x8000) goto code_r0x00023a66;
          pcVar8 = "regular expression too big";
          *(uint *)(puVar18 + -4) = uVar19;
          ppbVar15 = (byte **)(puVar18 + -8);
          *(undefined4 *)(puVar18 + -8) = 5;
        }
        goto code_r0x00023a04;
      }
    }
    bVar21 = (byte)param_1[0xcc];
    uVar19 = 0x7b;
    break;
  case 0x72:
    bVar21 = 0;
code_r0x000233fa:
    if (((*param_1 & 0x400) != 0) || ((((byte)(*param_1 >> 0xf) ^ 1) & 1) != bVar21)) {
      bVar21 = (byte)param_1[0xcc];
      uVar19 = 0x7c;
      puVar13 = auStack_6c;
      break;
    }
code_r0x000238f1:
    *(byte *)(param_1 + 0xa3) = 1;
    uVar19 = 0x106;
    param_1[0x98] = 0x106;
    puVar13 = auStack_6c;
    goto LAB_0002318d;
  }
LAB_00023160:
  puVar14 = puVar13;
  *(byte *)(param_1 + 0xa3) = 0;
  if (bVar21 == 0) {
    if (*(byte *)((int)param_1 + 5) != 0) {
      *(undefined4 *)(puVar14 + -4) = 0x2317a;
      ppuVar6 = __ctype_b_loc();
      if ((*(byte *)((int)*ppuVar6 + uVar19 * 2 + 1) & 4) != 0) {
        uVar19 = 0;
        do {
          *(undefined4 *)(puVar14 + uVar19 + 0x2c) = 0;
          uVar19 = uVar19 + 4;
        } while (uVar19 < 0x20);
        *(undefined4 *)(puVar14 + -4) = 0x237bd;
        FUN_0001da50();
code_r0x000237bd:
        *(undefined4 *)(puVar14 + -4) = 0x237c6;
        iVar10 = FUN_0001e6a0();
        uVar19 = iVar10 + 0x114;
      }
    }
    param_1[0x98] = uVar19;
    puVar13 = puVar14;
  }
  else {
    param_1[0x98] = 0x109;
    uVar19 = 0x109;
    puVar13 = puVar14;
  }
LAB_0002318d:
  if (*(int *)(puVar13 + 0x4c) == *(int *)(in_GS_OFFSET + 0x14)) {
    return uVar19;
  }
                    /* WARNING: Subroutine does not return */
  *(undefined **)(puVar13 + -4) = &UNK_00023c01;
  FUN_0002c430();
}

