
/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */

bin_tree_t * __regparm3
parse_expression(re_string_t *regexp,regex_t *preg,re_token_t *token,reg_syntax_t syntax,Idx nest,
                reg_errcode_t *err)

{
  bin_tree_storage_t **ppbVar1;
  int *piVar2;
  int iVar3;
  re_dfa_t *dfa;
  undefined4 uVar4;
  re_context_type rVar5;
  re_bitset_ptr_t pbVar6;
  bool bVar7;
  uchar uVar8;
  char cVar9;
  undefined1 b;
  int iVar10;
  bin_tree_t *pbVar11;
  bin_tree_t *pbVar12;
  anon_union_4_5_a39f51ca_for_opr aVar13;
  anon_union_4_5_a39f51ca_for_opr cset;
  reg_syntax_t syntax_00;
  reg_errcode_t rVar14;
  int iVar15;
  anon_union_4_5_a39f51ca_for_opr aVar16;
  ushort **ppuVar17;
  ushort *puVar18;
  anon_union_4_3_ebfdf496_for_opr aVar19;
  wchar_t *__ptr;
  wchar_t *__ptr_00;
  uchar *puVar20;
  bitset_word_t *pbVar21;
  uchar uVar22;
  uint uVar23;
  char *pcVar24;
  int in_GS_OFFSET;
  byte bVar25;
  re_dfa_t *dfa_1;
  undefined1 accept_hyphen;
  Idx IVar26;
  reg_errcode_t *in_stack_ffffff34;
  bin_tree_t *local_c0;
  bin_tree_t *local_b0;
  bin_tree_t *local_a4;
  int local_90;
  uchar *local_8c;
  Idx char_class_alloc;
  bracket_elem_t start_elem;
  re_token_t br_token;
  re_token_t t;
  uchar start_name_buf [32];
  uchar end_name_buf [32];
  
  bVar25 = 0;
  iVar3 = *(int *)(in_GS_OFFSET + 0x14);
  dfa = preg->buffer;
  cVar9 = token->field_0x4;
  switch(cVar9) {
  default:
    goto _L3134;
  case '\x01':
    piVar2 = &dfa->str_tree_storage_idx;
    ppbVar1 = &dfa->str_tree_storage;
    local_b0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,
                                 (re_token_t *)0x0,(re_dfa_t *)token);
    if (local_b0 != (bin_tree_t *)0x0) {
      if (dfa->mb_cur_max < 2) goto LAB_0003093e;
      do {
        iVar10 = regexp->cur_idx;
        if (((regexp->stop <= iVar10) || (iVar10 == regexp->valid_len)) ||
           (regexp->wcs[iVar10] != 0xffffffff)) goto LAB_0003093e;
        iVar10 = peek_token(token,regexp,syntax);
        regexp->cur_idx = regexp->cur_idx + iVar10;
        pbVar12 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,
                                    (re_token_t *)0x0,(re_dfa_t *)token);
        t._4_1_ = 0x10;
        local_b0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,local_b0,
                                     (re_token_t *)pbVar12,(re_dfa_t *)&t);
      } while (pbVar12 != (bin_tree_t *)0x0 && local_b0 != (bin_tree_t *)0x0);
    }
    break;
  case '\x04':
    uVar23 = 1 << ((token->opr).c & 0x1f);
    if ((dfa->completed_bkref_map & uVar23) == 0) {
      local_b0 = (bin_tree_t *)0x0;
      *err = _REG_ESUBREG;
      goto LAB_00030965;
    }
    dfa->used_bkref_map = dfa->used_bkref_map | uVar23;
    local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,
                                 (bin_tree_t *)&dfa->str_tree_storage_idx,(bin_tree_t *)0x0,
                                 (re_token_t *)0x0,(re_dfa_t *)token);
    if (local_b0 != (bin_tree_t *)0x0) {
      dfa->nbackref = dfa->nbackref + 1;
      dfa->field_0x58 = dfa->field_0x58 | 2;
      goto LAB_0003093e;
    }
    break;
  case '\x05':
    local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,
                                 (bin_tree_t *)&dfa->str_tree_storage_idx,(bin_tree_t *)0x0,
                                 (re_token_t *)0x0,(re_dfa_t *)token);
    if (local_b0 == (bin_tree_t *)0x0) break;
    if (1 < dfa->mb_cur_max) {
      dfa->field_0x58 = dfa->field_0x58 | 2;
    }
    goto LAB_0003093e;
  case '\b':
    rVar5 = preg->re_nsub;
    pbVar12 = (bin_tree_t *)0x0;
    preg->re_nsub = rVar5 + 1;
    IVar26 = 0x30fbf;
    iVar10 = peek_token(token,regexp,syntax | 0x800000);
    regexp->cur_idx = regexp->cur_idx + iVar10;
    if (token->field_0x4 == '\t') {
LAB_00030fd0:
      if (rVar5 < WORD_LAST) {
        dfa->completed_bkref_map = dfa->completed_bkref_map | 1 << ((byte)rVar5 & 0x1f);
      }
      t._4_1_ = 0x11;
      local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,
                                   (bin_tree_t *)&dfa->str_tree_storage_idx,pbVar12,
                                   (re_token_t *)0x0,(re_dfa_t *)&t);
      if (local_b0 != (bin_tree_t *)0x0) {
        (local_b0->token).opr.ctx_type = rVar5;
        goto LAB_0003093e;
      }
      break;
    }
    pbVar12 = parse_reg_exp(regexp,(regex_t *)syntax,(re_token_t *)(nest + 1),(reg_syntax_t)err,
                            IVar26,in_stack_ffffff34);
    if (*err == _REG_NOERROR) {
      if (token->field_0x4 == '\t') goto LAB_00030fd0;
      if (pbVar12 != (bin_tree_t *)0x0) {
        postorder(pbVar12,free_tree,(void *)0x0);
      }
      *err = _REG_EPAREN;
    }
    goto _L3134;
  case '\t':
_L3123:
    if ((syntax & 0x20000) == 0) {
      local_b0 = (bin_tree_t *)0x0;
      *err = _REG_ERPAREN;
      goto LAB_00030965;
    }
  case '\x18':
_L3118:
    token->field_0x4 = 1;
    local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,
                                 (bin_tree_t *)&dfa->str_tree_storage_idx,(bin_tree_t *)0x0,
                                 (re_token_t *)0x0,(re_dfa_t *)token);
    if (local_b0 != (bin_tree_t *)0x0) {
LAB_0003093e:
      iVar10 = peek_token(token,regexp,syntax);
      regexp->cur_idx = regexp->cur_idx + iVar10;
      uVar23 = (uint)(byte)token->field_0x4;
      do {
        bVar25 = (byte)uVar23;
        if ((0x17 < bVar25) || ((0x8c0800U >> (uVar23 & 0x1f) & 1) == 0)) goto LAB_00030965;
        IVar26 = regexp->cur_idx;
        aVar13 = token->opr;
        uVar4 = *(undefined4 *)&token->field_0x4;
        local_a4 = local_b0;
        pbVar12 = local_b0;
        if (bVar25 == 0x17) {
          uVar23 = fetch_number(regexp,token,syntax);
          if (uVar23 == 0xffffffff) {
            if ((token->field_0x4 == '\x01') && ((token->opr).c == ',')) {
              uVar23 = 0;
LAB_00030d4d:
              local_c0 = (bin_tree_t *)fetch_number(regexp,token,syntax);
              if (local_c0 == (bin_tree_t *)0xfffffffe) goto LAB_00030cd8;
              if (((local_c0 == (bin_tree_t *)0xffffffff) || ((int)uVar23 <= (int)local_c0)) &&
                 (token->field_0x4 == '\x18')) {
                pbVar11 = (bin_tree_t *)uVar23;
                if (local_c0 != (bin_tree_t *)0xffffffff) goto LAB_00030dfc;
                goto joined_r0x00030e0b;
              }
            }
LAB_00030e40:
            *err = _REG_BADBR;
          }
          else {
            if (uVar23 != 0xfffffffe) {
              local_c0 = (bin_tree_t *)uVar23;
              if (token->field_0x4 != '\x18') {
                if (token->field_0x4 != '\x01') goto LAB_00030cd8;
                if ((token->opr).c == ',') goto LAB_00030d4d;
                if ((syntax & 0x200000) == 0) goto LAB_00030e40;
                goto LAB_00030ce9;
              }
LAB_00030dfc:
              pbVar11 = local_c0;
joined_r0x00030e0b:
              if (0x7fff < (int)pbVar11) {
                *err = _REG_ESIZE;
                goto LAB_00030e4a;
              }
              iVar10 = peek_token(token,regexp,syntax);
              regexp->cur_idx = regexp->cur_idx + iVar10;
              if (local_b0 == (bin_tree_t *)0x0) goto LAB_00030d10;
              if (local_c0 != (bin_tree_t *)0x0 || uVar23 != 0) {
                if ((int)uVar23 < 1) {
                  local_a4 = (bin_tree_t *)0x0;
                  goto LAB_00030eb9;
                }
                if (uVar23 != 1) {
                  iVar10 = 2;
                  do {
                    pbVar12 = duplicate_tree(pbVar12,dfa);
                    t._4_1_ = 0x10;
                    local_a4 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,
                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,local_a4,
                                                 (re_token_t *)pbVar12,(re_dfa_t *)&t);
                    if ((pbVar12 == (bin_tree_t *)0x0) || (local_a4 == (bin_tree_t *)0x0))
                    goto LAB_00030be0;
                    iVar10 = iVar10 + 1;
                  } while (iVar10 <= (int)uVar23);
                }
                pbVar11 = local_a4;
                if (local_c0 != (bin_tree_t *)uVar23) goto LAB_00030e9c;
                goto LAB_00030b08;
              }
              postorder(local_b0,free_tree,(void *)0x0);
              if (*err == _REG_NOERROR) goto LAB_00030d1e;
              goto LAB_00030bea;
            }
LAB_00030cd8:
            if ((syntax & 0x200000) == 0) {
              if (token->field_0x4 != '\x02') goto LAB_00030e40;
              *err = _REG_EBRACE;
              goto LAB_00030e4a;
            }
LAB_00030ce9:
            regexp->cur_idx = IVar26;
            token->opr = aVar13;
            *(undefined4 *)&token->field_0x4 = uVar4;
            token->field_0x4 = 1;
            pbVar11 = local_b0;
LAB_00030af2:
            if ((*err == _REG_NOERROR) || (pbVar11 != (bin_tree_t *)0x0)) goto LAB_00030b08;
          }
LAB_00030e4a:
          if (local_b0 == (bin_tree_t *)0x0) goto _L3134;
LAB_00030bea:
          postorder(local_b0,free_tree,(void *)0x0);
          local_b0 = (bin_tree_t *)0x0;
          goto LAB_00030965;
        }
        uVar23 = (uint)(bVar25 == 0x12);
        if (bVar25 == 0x13) {
          iVar10 = peek_token(token,regexp,syntax);
          regexp->cur_idx = regexp->cur_idx + iVar10;
          if (local_b0 == (bin_tree_t *)0x0) goto LAB_00030d10;
          if ((local_b0->token).field_0x4 == '\x11') {
            local_c0 = (bin_tree_t *)0x1;
            local_a4 = (bin_tree_t *)0x0;
            goto LAB_00030c76;
          }
          local_c0 = (bin_tree_t *)0x1;
          t._4_1_ = 10;
          local_a4 = (bin_tree_t *)0x0;
LAB_00030a18:
          ppbVar1 = &dfa->str_tree_storage;
          piVar2 = &dfa->str_tree_storage_idx;
          pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar12,
                                      (re_token_t *)0x0,(re_dfa_t *)&t);
          if (pbVar11 == (bin_tree_t *)0x0) {
LAB_00030be0:
            *err = _REG_ESPACE;
            goto LAB_00030bea;
          }
          for (iVar10 = uVar23 + 2; iVar10 <= (int)local_c0; iVar10 = iVar10 + 1) {
            pbVar12 = duplicate_tree(pbVar12,dfa);
            t._4_1_ = 0x10;
            pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar11,
                                        (re_token_t *)pbVar12,(re_dfa_t *)&t);
            if ((pbVar12 == (bin_tree_t *)0x0) || (pbVar11 == (bin_tree_t *)0x0)) goto LAB_00030be0;
            t._4_1_ = 10;
            pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar11,
                                        (re_token_t *)0x0,(re_dfa_t *)&t);
            if (pbVar11 == (bin_tree_t *)0x0) goto LAB_00030be0;
          }
          if (local_a4 != (bin_tree_t *)0x0) {
            t._4_1_ = 0x10;
            pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,local_a4,
                                        (re_token_t *)pbVar11,(re_dfa_t *)&t);
            goto LAB_00030af2;
          }
        }
        else {
          iVar10 = peek_token(token,regexp,syntax);
          regexp->cur_idx = regexp->cur_idx + iVar10;
          if (local_b0 != (bin_tree_t *)0x0) {
            if (bVar25 != 0x12) {
              if ((local_b0->token).field_0x4 == '\x11') {
                local_c0 = (bin_tree_t *)0xffffffff;
                uVar23 = 0;
                local_a4 = (bin_tree_t *)0x0;
LAB_00030c76:
                postorder(pbVar12,mark_opt_subexp,(pbVar12->token).opr.sbcset);
                goto LAB_00030c8a;
              }
              local_c0 = (bin_tree_t *)0xffffffff;
              uVar23 = 0;
              local_a4 = (bin_tree_t *)0x0;
LAB_00030a13:
              t._4_1_ = 0xb;
              goto LAB_00030a18;
            }
            local_c0 = (bin_tree_t *)0xffffffff;
            uVar23 = 1;
LAB_00030e9c:
            pbVar12 = duplicate_tree(pbVar12,dfa);
            if (pbVar12 != (bin_tree_t *)0x0) {
LAB_00030eb9:
              if ((pbVar12->token).field_0x4 == '\x11') goto LAB_00030c76;
LAB_00030c8a:
              if (local_c0 != (bin_tree_t *)0xffffffff) {
                t._4_1_ = 10;
                goto LAB_00030a18;
              }
              goto LAB_00030a13;
            }
            goto LAB_00030be0;
          }
LAB_00030d10:
          if (*err != _REG_NOERROR) goto _L3134;
LAB_00030d1e:
          local_b0 = (bin_tree_t *)0x0;
          pbVar11 = local_b0;
        }
LAB_00030b08:
        local_b0 = pbVar11;
        bVar25 = token->field_0x4;
        uVar23 = (uint)bVar25;
      } while (((syntax & 0x1000000) == 0) || ((bVar25 != 0xb && (bVar25 != 0x17))));
      if (local_b0 != (bin_tree_t *)0x0) {
        postorder(local_b0,free_tree,(void *)0x0);
      }
      goto LAB_00030b48;
    }
    break;
  case '\v':
  case '\x12':
  case '\x13':
_L3121:
    if ((syntax & 0x20) == 0) {
      if ((syntax & 0x10) != 0) {
        iVar10 = peek_token(token,regexp,syntax);
        regexp->cur_idx = regexp->cur_idx + iVar10;
        local_b0 = parse_expression(regexp,preg,token,syntax,nest,err);
        goto LAB_00030965;
      }
      if (cVar9 == '\t') goto _L3123;
      goto _L3118;
    }
    goto LAB_00030b48;
  case '\f':
    local_c0 = (bin_tree_t *)(token->opr).ctx_type;
    if ((((uint)local_c0 & 0x30f) != 0) && (bVar25 = dfa->field_0x58, (bVar25 & 0x10) == 0)) {
      dfa->field_0x58 = bVar25 | 0x10;
      if ((bVar25 & 8) == 0) {
        dfa->word_char[0] = 0;
        dfa->word_char[1] = 0x3ff0000;
        dfa->word_char[2] = 0x87fffffe;
        dfa->word_char[3] = 0x7fffffe;
        if ((bVar25 & 4) != 0) {
          dfa->word_char[4] = 0;
          dfa->word_char[5] = 0;
          dfa->word_char[6] = 0;
          dfa->word_char[7] = 0;
          local_c0 = (bin_tree_t *)(token->opr).idx;
          goto LAB_00031089;
        }
        iVar15 = 0x80;
        iVar10 = 4;
      }
      else {
        iVar15 = 0;
        iVar10 = 0;
      }
      ppuVar17 = __ctype_b_loc();
      pbVar21 = dfa->word_char + iVar10 + -0x18;
      puVar18 = *ppuVar17 + iVar15;
      do {
        iVar10 = 0;
        do {
          if (((puVar18[iVar10] & 8) != 0) || (iVar15 + iVar10 == 0x5f)) {
            pbVar21[0x18] = pbVar21[0x18] | 1 << ((byte)iVar10 & 0x1f);
          }
          iVar10 = iVar10 + 1;
        } while (iVar10 != 0x20);
        iVar15 = iVar15 + 0x20;
        pbVar21 = pbVar21 + 1;
        puVar18 = puVar18 + 0x20;
      } while (&dfa->state_table != (re_state_table_entry **)pbVar21);
    }
LAB_00031089:
    ppbVar1 = &dfa->str_tree_storage;
    piVar2 = &dfa->str_tree_storage_idx;
    if (((int)local_c0 - WORD_DELIM & 0xfffffeff) == 0) {
      if (local_c0 == (bin_tree_t *)0x100) {
        (token->opr).idx = 6;
        local_c0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,
                                     (re_token_t *)0x0,(re_dfa_t *)token);
        (token->opr).idx = 9;
      }
      else {
        (token->opr).idx = 5;
        local_c0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,
                                     (re_token_t *)0x0,(re_dfa_t *)token);
        (token->opr).idx = 10;
      }
      pbVar12 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,
                                  (re_token_t *)0x0,(re_dfa_t *)token);
      t._4_1_ = 10;
      local_b0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,local_c0,
                                   (re_token_t *)pbVar12,(re_dfa_t *)&t);
      if (local_c0 == (bin_tree_t *)0x0 || pbVar12 == (bin_tree_t *)0x0) break;
    }
    else {
      local_b0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,
                                   (re_token_t *)0x0,(re_dfa_t *)token);
    }
    if (local_b0 != (bin_tree_t *)0x0) {
      iVar10 = peek_token(token,regexp,syntax);
      regexp->cur_idx = regexp->cur_idx + iVar10;
      goto LAB_00030965;
    }
    break;
  case '\x14':
    aVar13.sbcset = (re_bitset_ptr_t)calloc(0x20,1);
    cset.sbcset = (re_bitset_ptr_t)calloc(0x28,1);
    if (aVar13.sbcset == (uint *)0x0 || (re_charset_t *)cset.sbcset == (re_charset_t *)0x0) {
      free(aVar13.sbcset);
      free(cset.sbcset);
      *err = _REG_ESPACE;
      local_b0 = (bin_tree_t *)0x0;
      goto LAB_00030965;
    }
    iVar10 = 0x31289;
    local_c0 = (bin_tree_t *)peek_token_bracket(token,regexp,syntax);
    cVar9 = token->field_0x4;
    if (cVar9 != '\x02') {
      bVar7 = false;
      if (cVar9 != '\x19') {
LAB_000312a6:
        if (cVar9 == '\x15') {
          token->field_0x4 = 1;
        }
        local_90 = 0;
        syntax_00 = 1;
LAB_000312e4:
        start_elem.type = COLL_SYM;
        start_elem.opr.name = start_name_buf;
        rVar14 = parse_bracket_element
                           (&start_elem,regexp,token,(int)local_c0,(re_dfa_t *)syntax,syntax_00,
                            SUB41(iVar10,0));
        if (rVar14 == _REG_NOERROR) {
          iVar10 = peek_token_bracket(token,regexp,syntax);
          if ((start_elem.type - EQUIV_CLASS & 0xfffffffd) == 0) {
LAB_0003135b:
            if (start_elem.type < (CHAR_CLASS|MB_CHAR)) {
                    /* WARNING: Could not recover jumptable at 0x00031371. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              pbVar12 = (bin_tree_t *)
                        (*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +
                                  *(int *)(&UNK_0003ad38 + start_elem.type * 4)))();
              return pbVar12;
            }
                    /* WARNING: Subroutine does not return */
            __assert_fail("0","lib/regcomp.c",0xcf3,"parse_bracket_exp");
          }
          if (token->field_0x4 == '\x02') {
LAB_00031615:
            *err = _REG_EBRACK;
          }
          else {
            if (token->field_0x4 != '\x16') goto LAB_0003135b;
            regexp->cur_idx = regexp->cur_idx + iVar10;
            accept_hyphen = 0xc3;
            iVar15 = peek_token_bracket(&t,regexp,syntax);
            if (t._4_1_ == '\x02') goto LAB_00031615;
            if (t._4_1_ == '\x15') {
              regexp->cur_idx = regexp->cur_idx - iVar10;
              token->field_0x4 = 1;
              goto LAB_0003135b;
            }
            br_token._4_4_ = end_name_buf;
            br_token.opr.idx = 3;
            rVar14 = parse_bracket_element
                               ((bracket_elem_t *)&br_token,regexp,&t,iVar15,(re_dfa_t *)syntax,1,
                                (_Bool)accept_hyphen);
            if (rVar14 == _REG_NOERROR) {
              iVar10 = 0x31728;
              local_c0 = (bin_tree_t *)peek_token_bracket(token,regexp,syntax);
              aVar16.sbcset = cset.sbcset;
              if (dfa->mb_cur_max < 2) {
                aVar16.sbcset = (re_bitset_ptr_t)0x0;
              }
              if (((start_elem.type - EQUIV_CLASS & 0xfffffffd) == 0) ||
                 ((br_token.opr.idx - 2U & 0xfffffffd) == 0)) {
LAB_00031b91:
                *err = _REG_ERANGE;
              }
              else {
                if (start_elem.type != COLL_SYM) {
                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) {
                    uVar23 = 0xffffffff;
                    pcVar24 = (char *)br_token._4_4_;
                    do {
                      if (uVar23 == 0) break;
                      uVar23 = uVar23 - 1;
                      cVar9 = *pcVar24;
                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;
                    } while (cVar9 != '\0');
                    if (1 < ~uVar23 - 1) goto LAB_00031b44;
                    b = '\0';
                    if (start_elem.type == SB_CHAR) goto LAB_0003178a;
LAB_000317a2:
                    uVar22 = *(uchar *)br_token._4_4_;
                  }
                  else {
                    if (start_elem.type == SB_CHAR) {
LAB_0003178a:
                      b = start_elem.opr.ch;
                      goto LAB_0003178f;
                    }
                    b = '\0';
                    uVar22 = '\0';
                    uVar8 = '\0';
                    if (br_token.opr.sbcset != (re_bitset_ptr_t)0x0) goto LAB_000317a5;
LAB_00031b87:
                    b = uVar8;
                    uVar22 = br_token._4_1_;
                  }
LAB_000317a5:
                  if ((start_elem.type == SB_CHAR) ||
                     (aVar19 = start_elem.opr, start_elem.type == COLL_SYM)) {
                    iVar10 = 0x31b70;
                    aVar19.wch = parse_byte(b,aVar16.mbcset);
                  }
                  if ((br_token.opr.sbcset == (re_bitset_ptr_t)0x0) ||
                     (local_8c = (uchar *)br_token._4_4_,
                     br_token.opr.sbcset == (re_bitset_ptr_t)0x3)) {
                    iVar10 = 0x31b5e;
                    local_8c = (uchar *)parse_byte(uVar22,aVar16.mbcset);
                  }
                  if ((aVar19.name == (uchar *)0xffffffff) || (local_8c == (uchar *)0xffffffff))
                  goto LAB_00031b44;
                  if (((syntax & 0x10000) != 0) && (local_8c < aVar19.name)) goto LAB_00031b91;
                  if ((re_charset_t *)aVar16.sbcset != (re_charset_t *)0x0) {
                    iVar15 = (aVar16.mbcset)->nranges;
                    __ptr = (aVar16.mbcset)->range_starts;
                    if (iVar15 == local_90) {
                      local_90 = local_90 * 2 + 1;
                      iVar10 = local_90;
                      __ptr = (wchar_t *)realloc(__ptr,local_90 * 4);
                      __ptr_00 = (wchar_t *)realloc((aVar16.mbcset)->range_ends,local_90 * 4);
                      if ((__ptr == (wchar_t *)0x0) || (__ptr_00 == (wchar_t *)0x0)) {
                        free(__ptr);
                        free(__ptr_00);
                        *err = _REG_ESPACE;
                        goto LAB_000314ef;
                      }
                      (aVar16.mbcset)->range_ends = __ptr_00;
                      iVar15 = (aVar16.mbcset)->nranges;
                      (aVar16.mbcset)->range_starts = __ptr;
                    }
                    ((anon_union_4_3_ebfdf496_for_opr *)(__ptr + iVar15))->name = (uchar *)aVar19;
                    (aVar16.mbcset)->nranges = iVar15 + 1;
                    (aVar16.mbcset)->range_ends[iVar15] = (wchar_t)local_8c;
                  }
                  puVar20 = (uchar *)0x0;
                  do {
                    if ((aVar19.name <= puVar20) && (puVar20 <= local_8c)) {
                      aVar13.sbcset[(int)puVar20 >> 5] =
                           aVar13.sbcset[(int)puVar20 >> 5] | 1 << ((byte)puVar20 & 0x1f);
                    }
                    puVar20 = puVar20 + 1;
                  } while (puVar20 != (uchar *)0x100);
                  *err = _REG_NOERROR;
                  if (token->field_0x4 == '\x02') goto LAB_00031615;
                  if (token->field_0x4 != '\x15') goto code_r0x000314d1;
                  regexp->cur_idx = regexp->cur_idx + (int)local_c0;
                  if (bVar7) {
                    aVar16.sbcset = aVar13.sbcset;
                    do {
                      *aVar16.sbcset = ~*aVar16.sbcset;
                      aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;
                    } while ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges != aVar16.sbcset);
                  }
                  iVar10 = dfa->mb_cur_max;
                  if (1 < iVar10) {
                    pbVar6 = dfa->sb_char;
                    iVar15 = 0;
                    do {
                      aVar13.sbcset[iVar15] = aVar13.sbcset[iVar15] & pbVar6[iVar15];
                      iVar15 = iVar15 + 1;
                    } while (iVar15 != 8);
                  }
                  if ((((((cset.mbcset)->nmbchars != 0) || ((cset.mbcset)->ncoll_syms != 0)) ||
                       ((cset.mbcset)->nequiv_classes != 0)) || ((cset.mbcset)->nranges != 0)) ||
                     ((1 < iVar10 &&
                      (((cset.mbcset)->nchar_classes != 0 || ((*(byte *)(cset.idx + 0x10) & 1) != 0)
                       ))))) {
                    dfa->field_0x58 = dfa->field_0x58 | 2;
                    br_token._4_1_ = 6;
                    br_token.opr.sbcset = cset.sbcset;
                    local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,
                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,
                                                 (bin_tree_t *)0x0,(re_token_t *)0x0,
                                                 (re_dfa_t *)&br_token);
                    aVar16.sbcset = aVar13.sbcset;
                    if (local_b0 != (bin_tree_t *)0x0) {
                      while (*aVar16.sbcset == 0) {
                        aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;
                        if ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges == aVar16.sbcset) {
                          free(aVar13.sbcset);
                          goto LAB_0003093e;
                        }
                      }
                      br_token._4_1_ = 3;
                      br_token.opr.sbcset = aVar13.sbcset;
                      pbVar12 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,
                                                  (bin_tree_t *)&dfa->str_tree_storage_idx,
                                                  (bin_tree_t *)0x0,(re_token_t *)0x0,
                                                  (re_dfa_t *)&br_token);
                      if (pbVar12 != (bin_tree_t *)0x0) {
                        t._4_1_ = 10;
                        dfa_1 = (re_dfa_t *)&t;
                        goto LAB_000319aa;
                      }
                    }
LAB_000319be:
                    *err = _REG_ESPACE;
                    goto LAB_000314ef;
                  }
                  free_charset(cset.mbcset);
                  br_token._4_1_ = 3;
                  dfa_1 = (re_dfa_t *)&br_token;
                  pbVar12 = (bin_tree_t *)0x0;
                  local_b0 = (bin_tree_t *)0x0;
                  br_token.opr.sbcset = aVar13.sbcset;
LAB_000319aa:
                  local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,
                                               (bin_tree_t *)&dfa->str_tree_storage_idx,pbVar12,
                                               (re_token_t *)local_b0,dfa_1);
                  if (local_b0 == (bin_tree_t *)0x0) goto LAB_000319be;
                  goto LAB_0003093e;
                }
                uVar23 = 0xffffffff;
                aVar19 = start_elem.opr;
                do {
                  if (uVar23 == 0) break;
                  uVar23 = uVar23 - 1;
                  uVar22 = *aVar19.name;
                  aVar19.name = (uchar *)((char *)(aVar19.wch + L'\x01') + (uint)bVar25 * -2);
                } while (uVar22 != '\0');
                if (~uVar23 - 1 < 2) {
                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) {
                    uVar23 = 0xffffffff;
                    pcVar24 = (char *)br_token._4_4_;
                    do {
                      if (uVar23 == 0) break;
                      uVar23 = uVar23 - 1;
                      cVar9 = *pcVar24;
                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;
                    } while (cVar9 != '\0');
                    if (1 < ~uVar23 - 1) goto LAB_00031b44;
                  }
                  b = *start_elem.opr.name;
LAB_0003178f:
                  uVar8 = b;
                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x0) goto LAB_00031b87;
                  uVar22 = '\0';
                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) goto LAB_000317a2;
                  goto LAB_000317a5;
                }
LAB_00031b44:
                *err = _REG_ECOLLATE;
              }
            }
            else {
              *err = rVar14;
            }
          }
        }
        else {
          *err = rVar14;
        }
        goto LAB_000314ef;
      }
      *(byte *)(cset.idx + 0x10) = *(byte *)(cset.idx + 0x10) | 1;
      if ((syntax & 0x100) != 0) {
        *aVar13.sbcset = *aVar13.sbcset | 0x400;
      }
      regexp->cur_idx = regexp->cur_idx + (int)local_c0;
      iVar10 = 0x315ee;
      local_c0 = (bin_tree_t *)peek_token_bracket(token,regexp,syntax);
      cVar9 = token->field_0x4;
      if (cVar9 != '\x02') {
        bVar7 = true;
        goto LAB_000312a6;
      }
    }
    *err = _REG_BADPAT;
LAB_000314ef:
    free(aVar13.sbcset);
    free_charset(cset.mbcset);
    if (*err == _REG_NOERROR) {
      local_b0 = (bin_tree_t *)0x0;
      goto LAB_0003093e;
    }
_L3134:
    local_b0 = (bin_tree_t *)0x0;
    goto LAB_00030965;
  case '\x17':
    if ((syntax & 0x1000000) == 0) goto _L3121;
LAB_00030b48:
    local_b0 = (bin_tree_t *)0x0;
    *err = _REG_BADRPT;
    goto LAB_00030965;
  case ' ':
  case '!':
    local_b0 = build_charclass_op(dfa,regexp->trans,"alnum","_",cVar9 == '!',err);
    rVar14 = *err;
    goto joined_r0x00030f59;
  case '\"':
  case '#':
    local_b0 = build_charclass_op(dfa,regexp->trans,"space","",cVar9 == '#',err);
    rVar14 = *err;
joined_r0x00030f59:
    if ((rVar14 != _REG_NOERROR) && (local_b0 == (bin_tree_t *)0x0)) goto _L3134;
    goto LAB_0003093e;
  case '$':
    local_b0 = (bin_tree_t *)0x0;
    *err = _REG_EESCAPE;
    goto LAB_00030965;
  }
  local_b0 = (bin_tree_t *)0x0;
  *err = _REG_ESPACE;
LAB_00030965:
  if (iVar3 == *(int *)(in_GS_OFFSET + 0x14)) {
    return local_b0;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail_local();
code_r0x000314d1:
  syntax_00 = 0;
  goto LAB_000312e4;
}



/* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */
/* WARNING: Removing unreachable block (ram,0x00031bc6) */
/* WARNING: Removing unreachable block (ram,0x0003178a) */
/* WARNING: Removing unreachable block (ram,0x00031775) */
/* WARNING: Removing unreachable block (ram,0x00031ba0) */
/* WARNING: Removing unreachable block (ram,0x00031bab) */
/* WARNING: Removing unreachable block (ram,0x00031bad) */
/* WARNING: Removing unreachable block (ram,0x00031bb9) */
/* WARNING: Removing unreachable block (ram,0x0003177e) */
/* WARNING: Removing unreachable block (ram,0x00031b7b) */
/* WARNING: Removing unreachable block (ram,0x00031c16) */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

int __regparm3
FUN_00030880(int param_1,int *param_2,uint *param_3,uint param_4,int param_5,int *param_6)

{
  bool bVar1;
  char cVar2;
  int iVar3;
  int iVar4;
  uint *__ptr;
  uint *puVar5;
  undefined4 uVar6;
  uint *puVar7;
  ushort **ppuVar8;
  ushort *puVar9;
  char *pcVar10;
  void *__ptr_00;
  void *__ptr_01;
  char *pcVar11;
  int iVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  int iVar16;
  int in_GS_OFFSET;
  byte bVar17;
  uint **ppuVar18;
  uint uStack_c0;
  int local_b0;
  int iStack_a4;
  uint uStack_90;
  char *pcStack_8c;
  uint *puStack_70;
  char *pcStack_6c;
  uint *puStack_68;
  char cStack_64;
  char acStack_60 [32];
  char acStack_40 [32];
  int local_20;
  
  bVar17 = 0;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  iVar3 = *param_2;
  cVar2 = (char)param_3[1];
  switch(cVar2) {
  default:
    goto LAB_00030e58;
  case '\x01':
    local_b0 = FUN_00028330(0,param_3);
    if (local_b0 != 0) {
      if (*(int *)(iVar3 + 0x5c) < 2) goto code_r0x0003093e;
      do {
        iVar3 = *(int *)(param_1 + 0x28);
        if (((*(int *)(param_1 + 0x38) <= iVar3) || (iVar3 == *(int *)(param_1 + 0x1c))) ||
           (*(int *)(*(int *)(param_1 + 8) + iVar3 * 4) != -1)) goto code_r0x0003093e;
        iVar3 = FUN_000300e0();
        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;
        iVar3 = FUN_00028330(0,param_3);
        cStack_64 = '\x10';
        local_b0 = FUN_00028330(iVar3,&puStack_68);
      } while (iVar3 != 0 && local_b0 != 0);
    }
    break;
  case '\x04':
    uVar14 = 1 << ((byte)*param_3 & 0x1f);
    if ((*(uint *)(iVar3 + 0x54) & uVar14) == 0) {
      local_b0 = 0;
      *param_6 = 6;
      goto LAB_00030965;
    }
    *(uint *)(iVar3 + 0x50) = *(uint *)(iVar3 + 0x50) | uVar14;
    local_b0 = FUN_00028330(0,param_3);
    if (local_b0 != 0) {
      *(int *)(iVar3 + 0x4c) = *(int *)(iVar3 + 0x4c) + 1;
      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;
      goto code_r0x0003093e;
    }
    break;
  case '\x05':
    local_b0 = FUN_00028330(0,param_3);
    if (local_b0 == 0) break;
    if (1 < *(int *)(iVar3 + 0x5c)) {
      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;
    }
    goto code_r0x0003093e;
  case '\b':
    uVar14 = param_2[6];
    param_2[6] = uVar14 + 1;
    iVar16 = FUN_000300e0();
    *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;
    if ((char)param_3[1] == '\t') {
code_r0x00030fd0:
      if (uVar14 < 9) {
        *(uint *)(iVar3 + 0x54) = *(uint *)(iVar3 + 0x54) | 1 << ((byte)uVar14 & 0x1f);
      }
      cStack_64 = '\x11';
      local_b0 = FUN_00028330(0,&puStack_68);
      if (local_b0 != 0) {
        *(uint *)(local_b0 + 0x14) = uVar14;
        goto code_r0x0003093e;
      }
      break;
    }
    iVar16 = FUN_00031e70(param_4,param_5 + 1,param_6);
    if (*param_6 == 0) {
      if ((char)param_3[1] == '\t') goto code_r0x00030fd0;
      if (iVar16 != 0) {
        FUN_00025a40();
      }
      *param_6 = 8;
    }
    goto LAB_00030e58;
  case '\t':
code_r0x000313dd:
    if ((param_4 & 0x20000) == 0) {
      local_b0 = 0;
      *param_6 = 0x10;
      goto LAB_00030965;
    }
  case '\x18':
code_r0x00030910:
    *(char *)(param_3 + 1) = '\x01';
    local_b0 = FUN_00028330(0,param_3);
    if (local_b0 != 0) {
code_r0x0003093e:
      iVar3 = FUN_000300e0();
      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;
      uVar14 = (uint)(byte)param_3[1];
      do {
        bVar17 = (byte)uVar14;
        if ((0x17 < bVar17) || ((0x8c0800U >> (uVar14 & 0x1f) & 1) == 0)) goto LAB_00030965;
        uVar6 = *(undefined4 *)(param_1 + 0x28);
        uVar14 = *param_3;
        uVar13 = param_3[1];
        iStack_a4 = local_b0;
        if (bVar17 == 0x17) {
          uVar15 = FUN_000307e0();
          if (uVar15 == 0xffffffff) {
            if (((char)param_3[1] == '\x01') && ((char)*param_3 == ',')) {
              uVar15 = 0;
code_r0x00030d4d:
              uStack_c0 = FUN_000307e0();
              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;
              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&
                 ((char)param_3[1] == '\x18')) {
                uVar14 = uVar15;
                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;
                goto joined_r0x00030e0b;
              }
            }
code_r0x00030e40:
            *param_6 = 10;
          }
          else {
            if (uVar15 != 0xfffffffe) {
              uStack_c0 = uVar15;
              if ((char)param_3[1] != '\x18') {
                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;
                if ((char)*param_3 == ',') goto code_r0x00030d4d;
                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;
                goto code_r0x00030ce9;
              }
code_r0x00030dfc:
              uVar14 = uStack_c0;
joined_r0x00030e0b:
              if (0x7fff < (int)uVar14) {
                *param_6 = 0xf;
                goto code_r0x00030e4a;
              }
              iVar3 = FUN_000300e0();
              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;
              if (local_b0 == 0) goto code_r0x00030d10;
              if (uStack_c0 != 0 || uVar15 != 0) {
                if ((int)uVar15 < 1) {
                  iStack_a4 = 0;
                  iVar3 = local_b0;
                  goto code_r0x00030eb9;
                }
                if (uVar15 != 1) {
                  iVar3 = 2;
                  do {
                    iVar16 = FUN_00028410();
                    cStack_64 = '\x10';
                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);
                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;
                    iVar3 = iVar3 + 1;
                  } while (iVar3 <= (int)uVar15);
                }
                iVar3 = iStack_a4;
                if (uStack_c0 != uVar15) goto code_r0x00030e9c;
                goto code_r0x00030b08;
              }
              FUN_00025a40();
              if (*param_6 == 0) goto code_r0x00030d1e;
              goto code_r0x00030bea;
            }
code_r0x00030cd8:
            if ((param_4 & 0x200000) == 0) {
              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;
              *param_6 = 9;
              goto code_r0x00030e4a;
            }
code_r0x00030ce9:
            *(undefined4 *)(param_1 + 0x28) = uVar6;
            *param_3 = uVar14;
            param_3[1] = uVar13;
            *(char *)(param_3 + 1) = '\x01';
            iVar3 = local_b0;
code_r0x00030af2:
            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;
          }
code_r0x00030e4a:
          if (local_b0 == 0) goto LAB_00030e58;
code_r0x00030bea:
          FUN_00025a40();
          local_b0 = 0;
          goto LAB_00030965;
        }
        uVar15 = (uint)(bVar17 == 0x12);
        if (bVar17 == 0x13) {
          iVar3 = FUN_000300e0();
          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;
          if (local_b0 == 0) goto code_r0x00030d10;
          if (*(char *)(local_b0 + 0x18) == '\x11') {
            uStack_c0 = 1;
            iStack_a4 = 0;
            goto code_r0x00030c76;
          }
          uStack_c0 = 1;
          cStack_64 = '\n';
          iStack_a4 = 0;
code_r0x00030a18:
          iVar3 = FUN_00028330(0,&puStack_68);
          if (iVar3 == 0) {
code_r0x00030be0:
            *param_6 = 0xc;
            goto code_r0x00030bea;
          }
          for (iVar16 = uVar15 + 2; iVar16 <= (int)uStack_c0; iVar16 = iVar16 + 1) {
            iVar3 = FUN_00028410();
            cStack_64 = '\x10';
            iVar4 = FUN_00028330(iVar3,&puStack_68);
            if ((iVar3 == 0) || (iVar4 == 0)) goto code_r0x00030be0;
            cStack_64 = '\n';
            iVar3 = FUN_00028330(0,&puStack_68);
            if (iVar3 == 0) goto code_r0x00030be0;
          }
          if (iStack_a4 != 0) {
            cStack_64 = '\x10';
            iVar3 = FUN_00028330(iVar3,&puStack_68);
            goto code_r0x00030af2;
          }
        }
        else {
          iVar3 = FUN_000300e0();
          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;
          if (local_b0 != 0) {
            if (bVar17 != 0x12) {
              if (*(char *)(local_b0 + 0x18) == '\x11') {
                uStack_c0 = 0xffffffff;
                uVar15 = 0;
                iStack_a4 = 0;
code_r0x00030c76:
                FUN_00025a40();
                goto code_r0x00030c8a;
              }
              uStack_c0 = 0xffffffff;
              uVar15 = 0;
              iStack_a4 = 0;
code_r0x00030a13:
              cStack_64 = '\v';
              goto code_r0x00030a18;
            }
            uStack_c0 = 0xffffffff;
            uVar15 = 1;
code_r0x00030e9c:
            iVar3 = FUN_00028410();
            if (iVar3 != 0) {
code_r0x00030eb9:
              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;
code_r0x00030c8a:
              if (uStack_c0 != 0xffffffff) {
                cStack_64 = '\n';
                goto code_r0x00030a18;
              }
              goto code_r0x00030a13;
            }
            goto code_r0x00030be0;
          }
code_r0x00030d10:
          if (*param_6 != 0) goto LAB_00030e58;
code_r0x00030d1e:
          local_b0 = 0;
          iVar3 = local_b0;
        }
code_r0x00030b08:
        local_b0 = iVar3;
        bVar17 = (byte)param_3[1];
        uVar14 = (uint)bVar17;
      } while (((param_4 & 0x1000000) == 0) || ((bVar17 != 0xb && (bVar17 != 0x17))));
      if (local_b0 != 0) {
        FUN_00025a40();
      }
      goto code_r0x00030b48;
    }
    break;
  case '\v':
  case '\x12':
  case '\x13':
code_r0x000308ec:
    if ((param_4 & 0x20) == 0) {
      if ((param_4 & 0x10) != 0) {
        iVar3 = FUN_000300e0();
        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;
        local_b0 = FUN_00030880(param_4,param_5,param_6);
        goto LAB_00030965;
      }
      if (cVar2 == '\t') goto code_r0x000313dd;
      goto code_r0x00030910;
    }
    goto code_r0x00030b48;
  case '\f':
    uStack_c0 = *param_3;
    if (((uStack_c0 & 0x30f) != 0) && (bVar17 = *(byte *)(iVar3 + 0x58), (bVar17 & 0x10) == 0)) {
      *(byte *)(iVar3 + 0x58) = bVar17 | 0x10;
      if ((bVar17 & 8) == 0) {
        *(undefined4 *)(iVar3 + 0x60) = 0;
        *(undefined4 *)(iVar3 + 100) = 0x3ff0000;
        *(undefined4 *)(iVar3 + 0x68) = 0x87fffffe;
        *(undefined4 *)(iVar3 + 0x6c) = 0x7fffffe;
        if ((bVar17 & 4) != 0) {
          *(undefined4 *)(iVar3 + 0x70) = 0;
          *(undefined4 *)(iVar3 + 0x74) = 0;
          *(undefined4 *)(iVar3 + 0x78) = 0;
          *(undefined4 *)(iVar3 + 0x7c) = 0;
          uStack_c0 = *param_3;
          goto code_r0x00031089;
        }
        iVar4 = 0x80;
        iVar16 = 4;
      }
      else {
        iVar4 = 0;
        iVar16 = 0;
      }
      ppuVar8 = __ctype_b_loc();
      iVar16 = iVar3 + iVar16 * 4;
      puVar9 = *ppuVar8 + iVar4;
      do {
        iVar12 = 0;
        do {
          if (((puVar9[iVar12] & 8) != 0) || (iVar4 + iVar12 == 0x5f)) {
            *(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f);
          }
          iVar12 = iVar12 + 1;
        } while (iVar12 != 0x20);
        iVar4 = iVar4 + 0x20;
        iVar16 = iVar16 + 4;
        puVar9 = puVar9 + 0x20;
      } while (iVar3 + 0x20 != iVar16);
    }
code_r0x00031089:
    if ((uStack_c0 - 0x100 & 0xfffffeff) == 0) {
      if (uStack_c0 == 0x100) {
        *param_3 = 6;
        uStack_c0 = FUN_00028330(0,param_3);
        *param_3 = 9;
      }
      else {
        *param_3 = 5;
        uStack_c0 = FUN_00028330(0,param_3);
        *param_3 = 10;
      }
      iVar3 = FUN_00028330(0,param_3);
      cStack_64 = '\n';
      local_b0 = FUN_00028330(iVar3,&puStack_68);
      if (uStack_c0 == 0 || iVar3 == 0) break;
    }
    else {
      local_b0 = FUN_00028330(0,param_3);
    }
    if (local_b0 != 0) {
      iVar3 = FUN_000300e0();
      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;
      goto LAB_00030965;
    }
    break;
  case '\x14':
    __ptr = (uint *)calloc(0x20,1);
    puVar5 = (uint *)calloc(0x28,1);
    if (__ptr == (uint *)0x0 || puVar5 == (uint *)0x0) {
      free(__ptr);
      free(puVar5);
      *param_6 = 0xc;
      local_b0 = 0;
      goto LAB_00030965;
    }
    uStack_c0 = FUN_00025ab0();
    cVar2 = (char)param_3[1];
    if (cVar2 != '\x02') {
      bVar1 = false;
      if (cVar2 != '\x19') {
code_r0x000312a6:
        if (cVar2 == '\x15') {
          *(char *)(param_3 + 1) = '\x01';
        }
        uStack_90 = 0;
        uVar6 = 1;
code_r0x000312e4:
        iVar16 = FUN_0002fec0(uStack_c0,param_4,uVar6);
        if (iVar16 == 0) {
          iVar16 = FUN_00025ab0();
          if ((char)param_3[1] == '\x02') {
code_r0x00031615:
            *param_6 = 7;
          }
          else {
            if ((char)param_3[1] != '\x16') {
code_r0x0003135b:
                    /* WARNING: Could not recover jumptable at 0x00031371. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();
              return iVar3;
            }
            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;
            uVar6 = FUN_00025ab0();
            if (cStack_64 == '\x02') goto code_r0x00031615;
            if (cStack_64 == '\x15') {
              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;
              *(char *)(param_3 + 1) = '\x01';
              goto code_r0x0003135b;
            }
            pcStack_6c = acStack_40;
            puStack_70 = (uint *)0x3;
            uVar14 = 1;
            iVar16 = FUN_0002fec0(uVar6,param_4,1);
            if (iVar16 == 0) {
              uStack_c0 = FUN_00025ab0();
              puVar7 = puVar5;
              if (*(int *)(iVar3 + 0x5c) < 2) {
                puVar7 = (uint *)0x0;
              }
              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {
code_r0x00031b91:
                *param_6 = 0xb;
              }
              else {
                uVar13 = 0xffffffff;
                pcVar10 = acStack_60;
                do {
                  if (uVar13 == 0) break;
                  uVar13 = uVar13 - 1;
                  cVar2 = *pcVar10;
                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;
                } while (cVar2 != '\0');
                if (~uVar13 - 1 < 2) {
                  if (puStack_70 == (uint *)0x3) {
                    uVar13 = 0xffffffff;
                    pcVar10 = pcStack_6c;
                    do {
                      if (uVar13 == 0) break;
                      uVar13 = uVar13 - 1;
                      cVar2 = *pcVar10;
                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;
                    } while (cVar2 != '\0');
                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;
                  }
                  pcVar10 = (char *)FUN_00026170();
                  if ((puStack_70 == (uint *)0x0) ||
                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {
                    pcStack_8c = (char *)FUN_00026170();
                  }
                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))
                  goto code_r0x00031b44;
                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;
                  if (puVar7 != (uint *)0x0) {
                    uVar13 = puVar7[8];
                    __ptr_00 = (void *)puVar7[1];
                    if (uVar13 == uStack_90) {
                      uStack_90 = uStack_90 * 2 + 1;
                      uVar14 = uStack_90;
                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);
                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);
                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {
                        free(__ptr_00);
                        free(__ptr_01);
                        *param_6 = 0xc;
                        goto code_r0x000314ef;
                      }
                      puVar7[2] = (uint)__ptr_01;
                      uVar13 = puVar7[8];
                      puVar7[1] = (uint)__ptr_00;
                    }
                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;
                    puVar7[8] = uVar13 + 1;
                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;
                  }
                  pcVar11 = (char *)0x0;
                  do {
                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {
                      __ptr[(int)pcVar11 >> 5] =
                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);
                    }
                    pcVar11 = pcVar11 + 1;
                  } while (pcVar11 != (char *)0x100);
                  *param_6 = 0;
                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;
                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;
                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;
                  if (bVar1) {
                    puVar7 = __ptr;
                    do {
                      *puVar7 = ~*puVar7;
                      puVar7 = puVar7 + 1;
                    } while (__ptr + 8 != puVar7);
                  }
                  iVar16 = *(int *)(iVar3 + 0x5c);
                  if (1 < iVar16) {
                    iVar4 = *(int *)(iVar3 + 0x3c);
                    iVar12 = 0;
                    do {
                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);
                      iVar12 = iVar12 + 1;
                    } while (iVar12 != 8);
                  }
                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||
                      (puVar5[8] != 0)) ||
                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {
                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;
                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);
                    puStack_70 = puVar5;
                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);
                    puVar5 = __ptr;
                    if (local_b0 != 0) {
                      while (*puVar5 == 0) {
                        puVar5 = puVar5 + 1;
                        if (__ptr + 8 == puVar5) {
                          free(__ptr);
                          goto code_r0x0003093e;
                        }
                      }
                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);
                      puStack_70 = __ptr;
                      iVar3 = FUN_00028330(0,&puStack_70);
                      if (iVar3 != 0) {
                        cStack_64 = '\n';
                        ppuVar18 = &puStack_68;
                        goto code_r0x000319aa;
                      }
                    }
code_r0x000319be:
                    *param_6 = 0xc;
                    goto code_r0x000314ef;
                  }
                  FUN_00026c30();
                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);
                  ppuVar18 = &puStack_70;
                  local_b0 = 0;
                  uVar14 = 0;
                  puStack_70 = __ptr;
code_r0x000319aa:
                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);
                  if (local_b0 == 0) goto code_r0x000319be;
                  goto code_r0x0003093e;
                }
code_r0x00031b44:
                *param_6 = 3;
              }
            }
            else {
              *param_6 = iVar16;
            }
          }
        }
        else {
          *param_6 = iVar16;
        }
        goto code_r0x000314ef;
      }
      *(byte *)(puVar5 + 4) = (byte)puVar5[4] | 1;
      if ((param_4 & 0x100) != 0) {
        *__ptr = *__ptr | 0x400;
      }
      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;
      uStack_c0 = FUN_00025ab0();
      cVar2 = (char)param_3[1];
      if (cVar2 != '\x02') {
        bVar1 = true;
        goto code_r0x000312a6;
      }
    }
    *param_6 = 2;
code_r0x000314ef:
    free(__ptr);
    FUN_00026c30();
    if (*param_6 == 0) {
      local_b0 = 0;
      goto code_r0x0003093e;
    }
LAB_00030e58:
    local_b0 = 0;
    goto LAB_00030965;
  case '\x17':
    if ((param_4 & 0x1000000) == 0) goto code_r0x000308ec;
code_r0x00030b48:
    local_b0 = 0;
    *param_6 = 0xd;
    goto LAB_00030965;
  case ' ':
  case '!':
    local_b0 = FUN_0002b9b0(&UNK_000370bb,cVar2 == '!',param_6);
    iVar3 = *param_6;
    goto joined_r0x00030f59;
  case '\"':
  case '#':
    local_b0 = FUN_0002b9b0("",cVar2 == '#',param_6);
    iVar3 = *param_6;
joined_r0x00030f59:
    if ((iVar3 != 0) && (local_b0 == 0)) goto LAB_00030e58;
    goto code_r0x0003093e;
  case '$':
    local_b0 = 0;
    *param_6 = 5;
    goto LAB_00030965;
  }
  local_b0 = 0;
  *param_6 = 0xc;
LAB_00030965:
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_00036030();
  }
  return local_b0;
code_r0x000314d1:
  uVar6 = 0;
  goto code_r0x000312e4;
}


PUSH EBP
MOV EBP,EAX
PUSH EDI
PUSH ESI
CALL 0x0003394a
ADD ESI,0x15776
PUSH EBX
SUB ESP,0xbc
MOV EAX,dword ptr [ESP + 0xd8]
MOV dword ptr [ESP + 0x8],ECX
MOV dword ptr [ESP + 0x30],ESI
MOV dword ptr [ESP + 0x24],EAX
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0xac],EAX
XOR EAX,EAX
MOV EAX,dword ptr [EDX]
MOV dword ptr [ESP + 0x18],EAX
MOVZX EAX,byte ptr [ECX + 0x4]
CMP AL,0x24
JA 0x00030e58
MOV EBX,EDX
MOVZX EDX,AL
MOV ECX,dword ptr [ESI + EDX*0x4 + 0xffff4ca4]
ADD ECX,ESI
JMP ECX
MOV EDI,dword ptr [ESP + 0xac]
XOR EDI,dword ptr GS:[0x14]
MOV EAX,dword ptr [ESP + 0x1c]
JNZ 0x00031cf5
ADD ESP,0xbc
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV dword ptr [ESP + 0x1c],0x0
JMP 0x00030965
CALL 0x00036030
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */\n/* WARNING: Removing unreachable block (ram,0x00031bc6) */\n/* WARNING: Removing unreachable block (ram,0x0003178a) */\n/* WARNING: Removing unreachable block (ram,0x00031775) */\n/* WARNING: Removing unreachable block (ram,0x00031ba0) */\n/* WARNING: Removing unreachable block (ram,0x00031bab) */\n/* WARNING: Removing unreachable block (ram,0x00031bad) */\n/* WARNING: Removing unreachable block (ram,0x00031bb9) */\n/* WARNING: Removing unreachable block (ram,0x0003177e) */\n/* WARNING: Removing unreachable block (ram,0x00031b7b) */\n/* WARNING: Removing unreachable block (ram,0x00031c16) */\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n\nint __regparm3\nFUN_00030880(int param_1,int *param_2,uint *param_3,uint param_4,int param_5,int *param_6)\n\n{\n  bool bVar1;\n  char cVar2;\n  int iVar3;\n  int iVar4;\n  uint *__ptr;\n  uint *puVar5;\n  undefined4 uVar6;\n  uint *puVar7;\n  ushort **ppuVar8;\n  ushort *puVar9;\n  char *pcVar10;\n  void *__ptr_00;\n  void *__ptr_01;\n  char *pcVar11;\n  int iVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  int iVar16;\n  int in_GS_OFFSET;\n  byte bVar17;\n  uint **ppuVar18;\n  uint uStack_c0;\n  int local_b0;\n  int iStack_a4;\n  uint uStack_90;\n  char *pcStack_8c;\n  uint *puStack_70;\n  char *pcStack_6c;\n  uint *puStack_68;\n  char cStack_64;\n  char acStack_60 [32];\n  char acStack_40 [32];\n  int local_20;\n  \n  bVar17 = 0;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar3 = *param_2;\n  cVar2 = (char)param_3[1];\n  switch(cVar2) {\n  default:\n    goto LAB_00030e58;\n  case '\x01':\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\n      if (*(int *)(iVar3 + 0x5c) < 2) goto code_r0x0003093e;\n      do {\n        iVar3 = *(int *)(param_1 + 0x28);\n        if (((*(int *)(param_1 + 0x38) <= iVar3) || (iVar3 == *(int *)(param_1 + 0x1c))) ||\n           (*(int *)(*(int *)(param_1 + 8) + iVar3 * 4) != -1)) goto code_r0x0003093e;\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        iVar3 = FUN_00028330(0,param_3);\n        cStack_64 = '\x10';\n        local_b0 = FUN_00028330(iVar3,&puStack_68);\n      } while (iVar3 != 0 && local_b0 != 0);\n    }\n    break;\n  case '\x04':\n    uVar14 = 1 << ((byte)*param_3 & 0x1f);\n    if ((*(uint *)(iVar3 + 0x54) & uVar14) == 0) {\n      local_b0 = 0;\n      *param_6 = 6;\n      goto LAB_00030965;\n    }\n    *(uint *)(iVar3 + 0x50) = *(uint *)(iVar3 + 0x50) | uVar14;\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\n      *(int *)(iVar3 + 0x4c) = *(int *)(iVar3 + 0x4c) + 1;\n      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n      goto code_r0x0003093e;\n    }\n    break;\n  case '\x05':\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 == 0) break;\n    if (1 < *(int *)(iVar3 + 0x5c)) {\n      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n    }\n    goto code_r0x0003093e;\n  case '\b':\n    uVar14 = param_2[6];\n    param_2[6] = uVar14 + 1;\n    iVar16 = FUN_000300e0();\n    *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n    if ((char)param_3[1] == '\t') {\ncode_r0x00030fd0:\n      if (uVar14 < 9) {\n        *(uint *)(iVar3 + 0x54) = *(uint *)(iVar3 + 0x54) | 1 << ((byte)uVar14 & 0x1f);\n      }\n      cStack_64 = '\x11';\n      local_b0 = FUN_00028330(0,&puStack_68);\n      if (local_b0 != 0) {\n        *(uint *)(local_b0 + 0x14) = uVar14;\n        goto code_r0x0003093e;\n      }\n      break;\n    }\n    iVar16 = FUN_00031e70(param_4,param_5 + 1,param_6);\n    if (*param_6 == 0) {\n      if ((char)param_3[1] == '\t') goto code_r0x00030fd0;\n      if (iVar16 != 0) {\n        FUN_00025a40();\n      }\n      *param_6 = 8;\n    }\n    goto LAB_00030e58;\n  case '\t':\ncode_r0x000313dd:\n    if ((param_4 & 0x20000) == 0) {\n      local_b0 = 0;\n      *param_6 = 0x10;\n      goto LAB_00030965;\n    }\n  case '\x18':\ncode_r0x00030910:\n    *(char *)(param_3 + 1) = '\x01';\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\ncode_r0x0003093e:\n      iVar3 = FUN_000300e0();\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n      uVar14 = (uint)(byte)param_3[1];\n      do {\n        bVar17 = (byte)uVar14;\n        if ((0x17 < bVar17) || ((0x8c0800U >> (uVar14 & 0x1f) & 1) == 0)) goto LAB_00030965;\n        uVar6 = *(undefined4 *)(param_1 + 0x28);\n        uVar14 = *param_3;\n        uVar13 = param_3[1];\n        iStack_a4 = local_b0;\n        if (bVar17 == 0x17) {\n          uVar15 = FUN_000307e0();\n          if (uVar15 == 0xffffffff) {\n            if (((char)param_3[1] == '\x01') && ((char)*param_3 == ',')) {\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\ncode_r0x00030e40:\n            *param_6 = 10;\n          }\n          else {\n            if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }\ncode_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }\ncode_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;\n            *param_3 = uVar14;\n            param_3[1] = uVar13;\n            *(char *)(param_3 + 1) = '\x01';\n            iVar3 = local_b0;\ncode_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;\n          }\ncode_r0x00030e4a:\n          if (local_b0 == 0) goto LAB_00030e58;\ncode_r0x00030bea:\n          FUN_00025a40();\n          local_b0 = 0;\n          goto LAB_00030965;\n        }\n        uVar15 = (uint)(bVar17 == 0x12);\n        if (bVar17 == 0x13) {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 == 0) goto code_r0x00030d10;\n          if (*(char *)(local_b0 + 0x18) == '\x11') {\n            uStack_c0 = 1;\n            iStack_a4 = 0;\n            goto code_r0x00030c76;\n          }\n          uStack_c0 = 1;\n          cStack_64 = '\n';\n          iStack_a4 = 0;\ncode_r0x00030a18:\n          iVar3 = FUN_00028330(0,&puStack_68);\n          if (iVar3 == 0) {\ncode_r0x00030be0:\n            *param_6 = 0xc;\n            goto code_r0x00030bea;\n          }\n          for (iVar16 = uVar15 + 2; iVar16 <= (int)uStack_c0; iVar16 = iVar16 + 1) {\n            iVar3 = FUN_00028410();\n            cStack_64 = '\x10';\n            iVar4 = FUN_00028330(iVar3,&puStack_68);\n            if ((iVar3 == 0) || (iVar4 == 0)) goto code_r0x00030be0;\n            cStack_64 = '\n';\n            iVar3 = FUN_00028330(0,&puStack_68);\n            if (iVar3 == 0) goto code_r0x00030be0;\n          }\n          if (iStack_a4 != 0) {\n            cStack_64 = '\x10';\n            iVar3 = FUN_00028330(iVar3,&puStack_68);\n            goto code_r0x00030af2;\n          }\n        }\n        else {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 != 0) {\n            if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }\n            uStack_c0 = 0xffffffff;\n            uVar15 = 1;\ncode_r0x00030e9c:\n            iVar3 = FUN_00028410();\n            if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }\n            goto code_r0x00030be0;\n          }\ncode_r0x00030d10:\n          if (*param_6 != 0) goto LAB_00030e58;\ncode_r0x00030d1e:\n          local_b0 = 0;\n          iVar3 = local_b0;\n        }\ncode_r0x00030b08:\n        local_b0 = iVar3;\n        bVar17 = (byte)param_3[1];\n        uVar14 = (uint)bVar17;\n      } while (((param_4 & 0x1000000) == 0) || ((bVar17 != 0xb && (bVar17 != 0x17))));\n      if (local_b0 != 0) {\n        FUN_00025a40();\n      }\n      goto code_r0x00030b48;\n    }\n    break;\n  case '\v':\n  case '\x12':\n  case '\x13':\ncode_r0x000308ec:\n    if ((param_4 & 0x20) == 0) {\n      if ((param_4 & 0x10) != 0) {\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        local_b0 = FUN_00030880(param_4,param_5,param_6);\n        goto LAB_00030965;\n      }\n      if (cVar2 == '\t') goto code_r0x000313dd;\n      goto code_r0x00030910;\n    }\n    goto code_r0x00030b48;\n  case '\f':\n    uStack_c0 = *param_3;\n    if (((uStack_c0 & 0x30f) != 0) && (bVar17 = *(byte *)(iVar3 + 0x58), (bVar17 & 0x10) == 0)) {\n      *(byte *)(iVar3 + 0x58) = bVar17 | 0x10;\n      if ((bVar17 & 8) == 0) {\n        *(undefined4 *)(iVar3 + 0x60) = 0;\n        *(undefined4 *)(iVar3 + 100) = 0x3ff0000;\n        *(undefined4 *)(iVar3 + 0x68) = 0x87fffffe;\n        *(undefined4 *)(iVar3 + 0x6c) = 0x7fffffe;\n        if ((bVar17 & 4) != 0) {\n          *(undefined4 *)(iVar3 + 0x70) = 0;\n          *(undefined4 *)(iVar3 + 0x74) = 0;\n          *(undefined4 *)(iVar3 + 0x78) = 0;\n          *(undefined4 *)(iVar3 + 0x7c) = 0;\n          uStack_c0 = *param_3;\n          goto code_r0x00031089;\n        }\n        iVar4 = 0x80;\n        iVar16 = 4;\n      }\n      else {\n        iVar4 = 0;\n        iVar16 = 0;\n      }\n      ppuVar8 = __ctype_b_loc();\n      iVar16 = iVar3 + iVar16 * 4;\n      puVar9 = *ppuVar8 + iVar4;\n      do {\n        iVar12 = 0;\n        do {\n          if (((puVar9[iVar12] & 8) != 0) || (iVar4 + iVar12 == 0x5f)) {\n            *(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f);\n          }\n          iVar12 = iVar12 + 1;\n        } while (iVar12 != 0x20);\n        iVar4 = iVar4 + 0x20;\n        iVar16 = iVar16 + 4;\n        puVar9 = puVar9 + 0x20;\n      } while (iVar3 + 0x20 != iVar16);\n    }\ncode_r0x00031089:\n    if ((uStack_c0 - 0x100 & 0xfffffeff) == 0) {\n      if (uStack_c0 == 0x100) {\n        *param_3 = 6;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 9;\n      }\n      else {\n        *param_3 = 5;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 10;\n      }\n      iVar3 = FUN_00028330(0,param_3);\n      cStack_64 = '\n';\n      local_b0 = FUN_00028330(iVar3,&puStack_68);\n      if (uStack_c0 == 0 || iVar3 == 0) break;\n    }\n    else {\n      local_b0 = FUN_00028330(0,param_3);\n    }\n    if (local_b0 != 0) {\n      iVar3 = FUN_000300e0();\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n      goto LAB_00030965;\n    }\n    break;\n  case '\x14':\n    __ptr = (uint *)calloc(0x20,1);\n    puVar5 = (uint *)calloc(0x28,1);\n    if (__ptr == (uint *)0x0 || puVar5 == (uint *)0x0) {\n      free(__ptr);\n      free(puVar5);\n      *param_6 = 0xc;\n      local_b0 = 0;\n      goto LAB_00030965;\n    }\n    uStack_c0 = FUN_00025ab0();\n    cVar2 = (char)param_3[1];\n    if (cVar2 != '\x02') {\n      bVar1 = false;\n      if (cVar2 != '\x19') {\ncode_r0x000312a6:\n        if (cVar2 == '\x15') {\n          *(char *)(param_3 + 1) = '\x01';\n        }\n        uStack_90 = 0;\n        uVar6 = 1;\ncode_r0x000312e4:\n        iVar16 = FUN_0002fec0(uStack_c0,param_4,uVar6);\n        if (iVar16 == 0) {\n          iVar16 = FUN_00025ab0();\n          if ((char)param_3[1] == '\x02') {\ncode_r0x00031615:\n            *param_6 = 7;\n          }\n          else {\n            if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    /* WARNING: Could not recover jumptable at 0x00031371. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }\n            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n            uVar6 = FUN_00025ab0();\n            if (cStack_64 == '\x02') goto code_r0x00031615;\n            if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }\n            pcStack_6c = acStack_40;\n            puStack_70 = (uint *)0x3;\n            uVar14 = 1;\n            iVar16 = FUN_0002fec0(uVar6,param_4,1);\n            if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }\n          }\n        }\n        else {\n          *param_6 = iVar16;\n        }\n        goto code_r0x000314ef;\n      }\n      *(byte *)(puVar5 + 4) = (byte)puVar5[4] | 1;\n      if ((param_4 & 0x100) != 0) {\n        *__ptr = *__ptr | 0x400;\n      }\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n      uStack_c0 = FUN_00025ab0();\n      cVar2 = (char)param_3[1];\n      if (cVar2 != '\x02') {\n        bVar1 = true;\n        goto code_r0x000312a6;\n      }\n    }\n    *param_6 = 2;\ncode_r0x000314ef:\n    free(__ptr);\n    FUN_00026c30();\n    if (*param_6 == 0) {\n      local_b0 = 0;\n      goto code_r0x0003093e;\n    }\nLAB_00030e58:\n    local_b0 = 0;\n    goto LAB_00030965;\n  case '\x17':\n    if ((param_4 & 0x1000000) == 0) goto code_r0x000308ec;\ncode_r0x00030b48:\n    local_b0 = 0;\n    *param_6 = 0xd;\n    goto LAB_00030965;\n  case ' ':\n  case '!':\n    local_b0 = FUN_0002b9b0(&UNK_000370bb,cVar2 == '!',param_6);\n    iVar3 = *param_6;\n    goto joined_r0x00030f59;\n  case '\"':\n  case '#':\n    local_b0 = FUN_0002b9b0("",cVar2 == '#',param_6);\n    iVar3 = *param_6;\njoined_r0x00030f59:\n    if ((iVar3 != 0) && (local_b0 == 0)) goto LAB_00030e58;\n    goto code_r0x0003093e;\n  case '$':\n    local_b0 = 0;\n    *param_6 = 5;\n    goto LAB_00030965;\n  }\n  local_b0 = 0;\n  *param_6 = 0xc;\nLAB_00030965:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00036030();\n  }\n  return local_b0;\ncode_r0x000314d1:\n  uVar6 = 0;\n  goto code_r0x000312e4;\n}\n\n" comment comment comment comment comment comment comment comment comment comment comment comment (function_definition "int __regparm3\nFUN_00030880(int param_1,int *param_2,uint *param_3,uint param_4,int param_5,int *param_6)\n\n{\n  bool bVar1;\n  char cVar2;\n  int iVar3;\n  int iVar4;\n  uint *__ptr;\n  uint *puVar5;\n  undefined4 uVar6;\n  uint *puVar7;\n  ushort **ppuVar8;\n  ushort *puVar9;\n  char *pcVar10;\n  void *__ptr_00;\n  void *__ptr_01;\n  char *pcVar11;\n  int iVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  int iVar16;\n  int in_GS_OFFSET;\n  byte bVar17;\n  uint **ppuVar18;\n  uint uStack_c0;\n  int local_b0;\n  int iStack_a4;\n  uint uStack_90;\n  char *pcStack_8c;\n  uint *puStack_70;\n  char *pcStack_6c;\n  uint *puStack_68;\n  char cStack_64;\n  char acStack_60 [32];\n  char acStack_40 [32];\n  int local_20;\n  \n  bVar17 = 0;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar3 = *param_2;\n  cVar2 = (char)param_3[1];\n  switch(cVar2) {\n  default:\n    goto LAB_00030e58;\n  case '\x01':\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\n      if (*(int *)(iVar3 + 0x5c) < 2) goto code_r0x0003093e;\n      do {\n        iVar3 = *(int *)(param_1 + 0x28);\n        if (((*(int *)(param_1 + 0x38) <= iVar3) || (iVar3 == *(int *)(param_1 + 0x1c))) ||\n           (*(int *)(*(int *)(param_1 + 8) + iVar3 * 4) != -1)) goto code_r0x0003093e;\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        iVar3 = FUN_00028330(0,param_3);\n        cStack_64 = '\x10';\n        local_b0 = FUN_00028330(iVar3,&puStack_68);\n      } while (iVar3 != 0 && local_b0 != 0);\n    }\n    break;\n  case '\x04':\n    uVar14 = 1 << ((byte)*param_3 & 0x1f);\n    if ((*(uint *)(iVar3 + 0x54) & uVar14) == 0) {\n      local_b0 = 0;\n      *param_6 = 6;\n      goto LAB_00030965;\n    }\n    *(uint *)(iVar3 + 0x50) = *(uint *)(iVar3 + 0x50) | uVar14;\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\n      *(int *)(iVar3 + 0x4c) = *(int *)(iVar3 + 0x4c) + 1;\n      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n      goto code_r0x0003093e;\n    }\n    break;\n  case '\x05':\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 == 0) break;\n    if (1 < *(int *)(iVar3 + 0x5c)) {\n      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n    }\n    goto code_r0x0003093e;\n  case '\b':\n    uVar14 = param_2[6];\n    param_2[6] = uVar14 + 1;\n    iVar16 = FUN_000300e0();\n    *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n    if ((char)param_3[1] == '\t') {\ncode_r0x00030fd0:\n      if (uVar14 < 9) {\n        *(uint *)(iVar3 + 0x54) = *(uint *)(iVar3 + 0x54) | 1 << ((byte)uVar14 & 0x1f);\n      }\n      cStack_64 = '\x11';\n      local_b0 = FUN_00028330(0,&puStack_68);\n      if (local_b0 != 0) {\n        *(uint *)(local_b0 + 0x14) = uVar14;\n        goto code_r0x0003093e;\n      }\n      break;\n    }\n    iVar16 = FUN_00031e70(param_4,param_5 + 1,param_6);\n    if (*param_6 == 0) {\n      if ((char)param_3[1] == '\t') goto code_r0x00030fd0;\n      if (iVar16 != 0) {\n        FUN_00025a40();\n      }\n      *param_6 = 8;\n    }\n    goto LAB_00030e58;\n  case '\t':\ncode_r0x000313dd:\n    if ((param_4 & 0x20000) == 0) {\n      local_b0 = 0;\n      *param_6 = 0x10;\n      goto LAB_00030965;\n    }\n  case '\x18':\ncode_r0x00030910:\n    *(char *)(param_3 + 1) = '\x01';\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\ncode_r0x0003093e:\n      iVar3 = FUN_000300e0();\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n      uVar14 = (uint)(byte)param_3[1];\n      do {\n        bVar17 = (byte)uVar14;\n        if ((0x17 < bVar17) || ((0x8c0800U >> (uVar14 & 0x1f) & 1) == 0)) goto LAB_00030965;\n        uVar6 = *(undefined4 *)(param_1 + 0x28);\n        uVar14 = *param_3;\n        uVar13 = param_3[1];\n        iStack_a4 = local_b0;\n        if (bVar17 == 0x17) {\n          uVar15 = FUN_000307e0();\n          if (uVar15 == 0xffffffff) {\n            if (((char)param_3[1] == '\x01') && ((char)*param_3 == ',')) {\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\ncode_r0x00030e40:\n            *param_6 = 10;\n          }\n          else {\n            if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }\ncode_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }\ncode_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;\n            *param_3 = uVar14;\n            param_3[1] = uVar13;\n            *(char *)(param_3 + 1) = '\x01';\n            iVar3 = local_b0;\ncode_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;\n          }\ncode_r0x00030e4a:\n          if (local_b0 == 0) goto LAB_00030e58;\ncode_r0x00030bea:\n          FUN_00025a40();\n          local_b0 = 0;\n          goto LAB_00030965;\n        }\n        uVar15 = (uint)(bVar17 == 0x12);\n        if (bVar17 == 0x13) {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 == 0) goto code_r0x00030d10;\n          if (*(char *)(local_b0 + 0x18) == '\x11') {\n            uStack_c0 = 1;\n            iStack_a4 = 0;\n            goto code_r0x00030c76;\n          }\n          uStack_c0 = 1;\n          cStack_64 = '\n';\n          iStack_a4 = 0;\ncode_r0x00030a18:\n          iVar3 = FUN_00028330(0,&puStack_68);\n          if (iVar3 == 0) {\ncode_r0x00030be0:\n            *param_6 = 0xc;\n            goto code_r0x00030bea;\n          }\n          for (iVar16 = uVar15 + 2; iVar16 <= (int)uStack_c0; iVar16 = iVar16 + 1) {\n            iVar3 = FUN_00028410();\n            cStack_64 = '\x10';\n            iVar4 = FUN_00028330(iVar3,&puStack_68);\n            if ((iVar3 == 0) || (iVar4 == 0)) goto code_r0x00030be0;\n            cStack_64 = '\n';\n            iVar3 = FUN_00028330(0,&puStack_68);\n            if (iVar3 == 0) goto code_r0x00030be0;\n          }\n          if (iStack_a4 != 0) {\n            cStack_64 = '\x10';\n            iVar3 = FUN_00028330(iVar3,&puStack_68);\n            goto code_r0x00030af2;\n          }\n        }\n        else {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 != 0) {\n            if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }\n            uStack_c0 = 0xffffffff;\n            uVar15 = 1;\ncode_r0x00030e9c:\n            iVar3 = FUN_00028410();\n            if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }\n            goto code_r0x00030be0;\n          }\ncode_r0x00030d10:\n          if (*param_6 != 0) goto LAB_00030e58;\ncode_r0x00030d1e:\n          local_b0 = 0;\n          iVar3 = local_b0;\n        }\ncode_r0x00030b08:\n        local_b0 = iVar3;\n        bVar17 = (byte)param_3[1];\n        uVar14 = (uint)bVar17;\n      } while (((param_4 & 0x1000000) == 0) || ((bVar17 != 0xb && (bVar17 != 0x17))));\n      if (local_b0 != 0) {\n        FUN_00025a40();\n      }\n      goto code_r0x00030b48;\n    }\n    break;\n  case '\v':\n  case '\x12':\n  case '\x13':\ncode_r0x000308ec:\n    if ((param_4 & 0x20) == 0) {\n      if ((param_4 & 0x10) != 0) {\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        local_b0 = FUN_00030880(param_4,param_5,param_6);\n        goto LAB_00030965;\n      }\n      if (cVar2 == '\t') goto code_r0x000313dd;\n      goto code_r0x00030910;\n    }\n    goto code_r0x00030b48;\n  case '\f':\n    uStack_c0 = *param_3;\n    if (((uStack_c0 & 0x30f) != 0) && (bVar17 = *(byte *)(iVar3 + 0x58), (bVar17 & 0x10) == 0)) {\n      *(byte *)(iVar3 + 0x58) = bVar17 | 0x10;\n      if ((bVar17 & 8) == 0) {\n        *(undefined4 *)(iVar3 + 0x60) = 0;\n        *(undefined4 *)(iVar3 + 100) = 0x3ff0000;\n        *(undefined4 *)(iVar3 + 0x68) = 0x87fffffe;\n        *(undefined4 *)(iVar3 + 0x6c) = 0x7fffffe;\n        if ((bVar17 & 4) != 0) {\n          *(undefined4 *)(iVar3 + 0x70) = 0;\n          *(undefined4 *)(iVar3 + 0x74) = 0;\n          *(undefined4 *)(iVar3 + 0x78) = 0;\n          *(undefined4 *)(iVar3 + 0x7c) = 0;\n          uStack_c0 = *param_3;\n          goto code_r0x00031089;\n        }\n        iVar4 = 0x80;\n        iVar16 = 4;\n      }\n      else {\n        iVar4 = 0;\n        iVar16 = 0;\n      }\n      ppuVar8 = __ctype_b_loc();\n      iVar16 = iVar3 + iVar16 * 4;\n      puVar9 = *ppuVar8 + iVar4;\n      do {\n        iVar12 = 0;\n        do {\n          if (((puVar9[iVar12] & 8) != 0) || (iVar4 + iVar12 == 0x5f)) {\n            *(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f);\n          }\n          iVar12 = iVar12 + 1;\n        } while (iVar12 != 0x20);\n        iVar4 = iVar4 + 0x20;\n        iVar16 = iVar16 + 4;\n        puVar9 = puVar9 + 0x20;\n      } while (iVar3 + 0x20 != iVar16);\n    }\ncode_r0x00031089:\n    if ((uStack_c0 - 0x100 & 0xfffffeff) == 0) {\n      if (uStack_c0 == 0x100) {\n        *param_3 = 6;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 9;\n      }\n      else {\n        *param_3 = 5;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 10;\n      }\n      iVar3 = FUN_00028330(0,param_3);\n      cStack_64 = '\n';\n      local_b0 = FUN_00028330(iVar3,&puStack_68);\n      if (uStack_c0 == 0 || iVar3 == 0) break;\n    }\n    else {\n      local_b0 = FUN_00028330(0,param_3);\n    }\n    if (local_b0 != 0) {\n      iVar3 = FUN_000300e0();\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n      goto LAB_00030965;\n    }\n    break;\n  case '\x14':\n    __ptr = (uint *)calloc(0x20,1);\n    puVar5 = (uint *)calloc(0x28,1);\n    if (__ptr == (uint *)0x0 || puVar5 == (uint *)0x0) {\n      free(__ptr);\n      free(puVar5);\n      *param_6 = 0xc;\n      local_b0 = 0;\n      goto LAB_00030965;\n    }\n    uStack_c0 = FUN_00025ab0();\n    cVar2 = (char)param_3[1];\n    if (cVar2 != '\x02') {\n      bVar1 = false;\n      if (cVar2 != '\x19') {\ncode_r0x000312a6:\n        if (cVar2 == '\x15') {\n          *(char *)(param_3 + 1) = '\x01';\n        }\n        uStack_90 = 0;\n        uVar6 = 1;\ncode_r0x000312e4:\n        iVar16 = FUN_0002fec0(uStack_c0,param_4,uVar6);\n        if (iVar16 == 0) {\n          iVar16 = FUN_00025ab0();\n          if ((char)param_3[1] == '\x02') {\ncode_r0x00031615:\n            *param_6 = 7;\n          }\n          else {\n            if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    /* WARNING: Could not recover jumptable at 0x00031371. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }\n            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n            uVar6 = FUN_00025ab0();\n            if (cStack_64 == '\x02') goto code_r0x00031615;\n            if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }\n            pcStack_6c = acStack_40;\n            puStack_70 = (uint *)0x3;\n            uVar14 = 1;\n            iVar16 = FUN_0002fec0(uVar6,param_4,1);\n            if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }\n          }\n        }\n        else {\n          *param_6 = iVar16;\n        }\n        goto code_r0x000314ef;\n      }\n      *(byte *)(puVar5 + 4) = (byte)puVar5[4] | 1;\n      if ((param_4 & 0x100) != 0) {\n        *__ptr = *__ptr | 0x400;\n      }\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n      uStack_c0 = FUN_00025ab0();\n      cVar2 = (char)param_3[1];\n      if (cVar2 != '\x02') {\n        bVar1 = true;\n        goto code_r0x000312a6;\n      }\n    }\n    *param_6 = 2;\ncode_r0x000314ef:\n    free(__ptr);\n    FUN_00026c30();\n    if (*param_6 == 0) {\n      local_b0 = 0;\n      goto code_r0x0003093e;\n    }\nLAB_00030e58:\n    local_b0 = 0;\n    goto LAB_00030965;\n  case '\x17':\n    if ((param_4 & 0x1000000) == 0) goto code_r0x000308ec;\ncode_r0x00030b48:\n    local_b0 = 0;\n    *param_6 = 0xd;\n    goto LAB_00030965;\n  case ' ':\n  case '!':\n    local_b0 = FUN_0002b9b0(&UNK_000370bb,cVar2 == '!',param_6);\n    iVar3 = *param_6;\n    goto joined_r0x00030f59;\n  case '\"':\n  case '#':\n    local_b0 = FUN_0002b9b0("",cVar2 == '#',param_6);\n    iVar3 = *param_6;\njoined_r0x00030f59:\n    if ((iVar3 != 0) && (local_b0 == 0)) goto LAB_00030e58;\n    goto code_r0x0003093e;\n  case '$':\n    local_b0 = 0;\n    *param_6 = 5;\n    goto LAB_00030965;\n  }\n  local_b0 = 0;\n  *param_6 = 0xc;\nLAB_00030965:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00036030();\n  }\n  return local_b0;\ncode_r0x000314d1:\n  uVar6 = 0;\n  goto code_r0x000312e4;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00030880(int param_1,int *param_2,uint *param_3,uint param_4,int param_5,int *param_6)" identifier (parameter_list "(int param_1,int *param_2,uint *param_3,uint param_4,int param_5,int *param_6)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "uint param_4" type_identifier identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "int *param_6" primitive_type (pointer_declarator "*param_6" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  char cVar2;\n  int iVar3;\n  int iVar4;\n  uint *__ptr;\n  uint *puVar5;\n  undefined4 uVar6;\n  uint *puVar7;\n  ushort **ppuVar8;\n  ushort *puVar9;\n  char *pcVar10;\n  void *__ptr_00;\n  void *__ptr_01;\n  char *pcVar11;\n  int iVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  int iVar16;\n  int in_GS_OFFSET;\n  byte bVar17;\n  uint **ppuVar18;\n  uint uStack_c0;\n  int local_b0;\n  int iStack_a4;\n  uint uStack_90;\n  char *pcStack_8c;\n  uint *puStack_70;\n  char *pcStack_6c;\n  uint *puStack_68;\n  char cStack_64;\n  char acStack_60 [32];\n  char acStack_40 [32];\n  int local_20;\n  \n  bVar17 = 0;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar3 = *param_2;\n  cVar2 = (char)param_3[1];\n  switch(cVar2) {\n  default:\n    goto LAB_00030e58;\n  case '\x01':\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\n      if (*(int *)(iVar3 + 0x5c) < 2) goto code_r0x0003093e;\n      do {\n        iVar3 = *(int *)(param_1 + 0x28);\n        if (((*(int *)(param_1 + 0x38) <= iVar3) || (iVar3 == *(int *)(param_1 + 0x1c))) ||\n           (*(int *)(*(int *)(param_1 + 8) + iVar3 * 4) != -1)) goto code_r0x0003093e;\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        iVar3 = FUN_00028330(0,param_3);\n        cStack_64 = '\x10';\n        local_b0 = FUN_00028330(iVar3,&puStack_68);\n      } while (iVar3 != 0 && local_b0 != 0);\n    }\n    break;\n  case '\x04':\n    uVar14 = 1 << ((byte)*param_3 & 0x1f);\n    if ((*(uint *)(iVar3 + 0x54) & uVar14) == 0) {\n      local_b0 = 0;\n      *param_6 = 6;\n      goto LAB_00030965;\n    }\n    *(uint *)(iVar3 + 0x50) = *(uint *)(iVar3 + 0x50) | uVar14;\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\n      *(int *)(iVar3 + 0x4c) = *(int *)(iVar3 + 0x4c) + 1;\n      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n      goto code_r0x0003093e;\n    }\n    break;\n  case '\x05':\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 == 0) break;\n    if (1 < *(int *)(iVar3 + 0x5c)) {\n      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n    }\n    goto code_r0x0003093e;\n  case '\b':\n    uVar14 = param_2[6];\n    param_2[6] = uVar14 + 1;\n    iVar16 = FUN_000300e0();\n    *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n    if ((char)param_3[1] == '\t') {\ncode_r0x00030fd0:\n      if (uVar14 < 9) {\n        *(uint *)(iVar3 + 0x54) = *(uint *)(iVar3 + 0x54) | 1 << ((byte)uVar14 & 0x1f);\n      }\n      cStack_64 = '\x11';\n      local_b0 = FUN_00028330(0,&puStack_68);\n      if (local_b0 != 0) {\n        *(uint *)(local_b0 + 0x14) = uVar14;\n        goto code_r0x0003093e;\n      }\n      break;\n    }\n    iVar16 = FUN_00031e70(param_4,param_5 + 1,param_6);\n    if (*param_6 == 0) {\n      if ((char)param_3[1] == '\t') goto code_r0x00030fd0;\n      if (iVar16 != 0) {\n        FUN_00025a40();\n      }\n      *param_6 = 8;\n    }\n    goto LAB_00030e58;\n  case '\t':\ncode_r0x000313dd:\n    if ((param_4 & 0x20000) == 0) {\n      local_b0 = 0;\n      *param_6 = 0x10;\n      goto LAB_00030965;\n    }\n  case '\x18':\ncode_r0x00030910:\n    *(char *)(param_3 + 1) = '\x01';\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\ncode_r0x0003093e:\n      iVar3 = FUN_000300e0();\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n      uVar14 = (uint)(byte)param_3[1];\n      do {\n        bVar17 = (byte)uVar14;\n        if ((0x17 < bVar17) || ((0x8c0800U >> (uVar14 & 0x1f) & 1) == 0)) goto LAB_00030965;\n        uVar6 = *(undefined4 *)(param_1 + 0x28);\n        uVar14 = *param_3;\n        uVar13 = param_3[1];\n        iStack_a4 = local_b0;\n        if (bVar17 == 0x17) {\n          uVar15 = FUN_000307e0();\n          if (uVar15 == 0xffffffff) {\n            if (((char)param_3[1] == '\x01') && ((char)*param_3 == ',')) {\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\ncode_r0x00030e40:\n            *param_6 = 10;\n          }\n          else {\n            if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }\ncode_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }\ncode_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;\n            *param_3 = uVar14;\n            param_3[1] = uVar13;\n            *(char *)(param_3 + 1) = '\x01';\n            iVar3 = local_b0;\ncode_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;\n          }\ncode_r0x00030e4a:\n          if (local_b0 == 0) goto LAB_00030e58;\ncode_r0x00030bea:\n          FUN_00025a40();\n          local_b0 = 0;\n          goto LAB_00030965;\n        }\n        uVar15 = (uint)(bVar17 == 0x12);\n        if (bVar17 == 0x13) {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 == 0) goto code_r0x00030d10;\n          if (*(char *)(local_b0 + 0x18) == '\x11') {\n            uStack_c0 = 1;\n            iStack_a4 = 0;\n            goto code_r0x00030c76;\n          }\n          uStack_c0 = 1;\n          cStack_64 = '\n';\n          iStack_a4 = 0;\ncode_r0x00030a18:\n          iVar3 = FUN_00028330(0,&puStack_68);\n          if (iVar3 == 0) {\ncode_r0x00030be0:\n            *param_6 = 0xc;\n            goto code_r0x00030bea;\n          }\n          for (iVar16 = uVar15 + 2; iVar16 <= (int)uStack_c0; iVar16 = iVar16 + 1) {\n            iVar3 = FUN_00028410();\n            cStack_64 = '\x10';\n            iVar4 = FUN_00028330(iVar3,&puStack_68);\n            if ((iVar3 == 0) || (iVar4 == 0)) goto code_r0x00030be0;\n            cStack_64 = '\n';\n            iVar3 = FUN_00028330(0,&puStack_68);\n            if (iVar3 == 0) goto code_r0x00030be0;\n          }\n          if (iStack_a4 != 0) {\n            cStack_64 = '\x10';\n            iVar3 = FUN_00028330(iVar3,&puStack_68);\n            goto code_r0x00030af2;\n          }\n        }\n        else {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 != 0) {\n            if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }\n            uStack_c0 = 0xffffffff;\n            uVar15 = 1;\ncode_r0x00030e9c:\n            iVar3 = FUN_00028410();\n            if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }\n            goto code_r0x00030be0;\n          }\ncode_r0x00030d10:\n          if (*param_6 != 0) goto LAB_00030e58;\ncode_r0x00030d1e:\n          local_b0 = 0;\n          iVar3 = local_b0;\n        }\ncode_r0x00030b08:\n        local_b0 = iVar3;\n        bVar17 = (byte)param_3[1];\n        uVar14 = (uint)bVar17;\n      } while (((param_4 & 0x1000000) == 0) || ((bVar17 != 0xb && (bVar17 != 0x17))));\n      if (local_b0 != 0) {\n        FUN_00025a40();\n      }\n      goto code_r0x00030b48;\n    }\n    break;\n  case '\v':\n  case '\x12':\n  case '\x13':\ncode_r0x000308ec:\n    if ((param_4 & 0x20) == 0) {\n      if ((param_4 & 0x10) != 0) {\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        local_b0 = FUN_00030880(param_4,param_5,param_6);\n        goto LAB_00030965;\n      }\n      if (cVar2 == '\t') goto code_r0x000313dd;\n      goto code_r0x00030910;\n    }\n    goto code_r0x00030b48;\n  case '\f':\n    uStack_c0 = *param_3;\n    if (((uStack_c0 & 0x30f) != 0) && (bVar17 = *(byte *)(iVar3 + 0x58), (bVar17 & 0x10) == 0)) {\n      *(byte *)(iVar3 + 0x58) = bVar17 | 0x10;\n      if ((bVar17 & 8) == 0) {\n        *(undefined4 *)(iVar3 + 0x60) = 0;\n        *(undefined4 *)(iVar3 + 100) = 0x3ff0000;\n        *(undefined4 *)(iVar3 + 0x68) = 0x87fffffe;\n        *(undefined4 *)(iVar3 + 0x6c) = 0x7fffffe;\n        if ((bVar17 & 4) != 0) {\n          *(undefined4 *)(iVar3 + 0x70) = 0;\n          *(undefined4 *)(iVar3 + 0x74) = 0;\n          *(undefined4 *)(iVar3 + 0x78) = 0;\n          *(undefined4 *)(iVar3 + 0x7c) = 0;\n          uStack_c0 = *param_3;\n          goto code_r0x00031089;\n        }\n        iVar4 = 0x80;\n        iVar16 = 4;\n      }\n      else {\n        iVar4 = 0;\n        iVar16 = 0;\n      }\n      ppuVar8 = __ctype_b_loc();\n      iVar16 = iVar3 + iVar16 * 4;\n      puVar9 = *ppuVar8 + iVar4;\n      do {\n        iVar12 = 0;\n        do {\n          if (((puVar9[iVar12] & 8) != 0) || (iVar4 + iVar12 == 0x5f)) {\n            *(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f);\n          }\n          iVar12 = iVar12 + 1;\n        } while (iVar12 != 0x20);\n        iVar4 = iVar4 + 0x20;\n        iVar16 = iVar16 + 4;\n        puVar9 = puVar9 + 0x20;\n      } while (iVar3 + 0x20 != iVar16);\n    }\ncode_r0x00031089:\n    if ((uStack_c0 - 0x100 & 0xfffffeff) == 0) {\n      if (uStack_c0 == 0x100) {\n        *param_3 = 6;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 9;\n      }\n      else {\n        *param_3 = 5;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 10;\n      }\n      iVar3 = FUN_00028330(0,param_3);\n      cStack_64 = '\n';\n      local_b0 = FUN_00028330(iVar3,&puStack_68);\n      if (uStack_c0 == 0 || iVar3 == 0) break;\n    }\n    else {\n      local_b0 = FUN_00028330(0,param_3);\n    }\n    if (local_b0 != 0) {\n      iVar3 = FUN_000300e0();\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n      goto LAB_00030965;\n    }\n    break;\n  case '\x14':\n    __ptr = (uint *)calloc(0x20,1);\n    puVar5 = (uint *)calloc(0x28,1);\n    if (__ptr == (uint *)0x0 || puVar5 == (uint *)0x0) {\n      free(__ptr);\n      free(puVar5);\n      *param_6 = 0xc;\n      local_b0 = 0;\n      goto LAB_00030965;\n    }\n    uStack_c0 = FUN_00025ab0();\n    cVar2 = (char)param_3[1];\n    if (cVar2 != '\x02') {\n      bVar1 = false;\n      if (cVar2 != '\x19') {\ncode_r0x000312a6:\n        if (cVar2 == '\x15') {\n          *(char *)(param_3 + 1) = '\x01';\n        }\n        uStack_90 = 0;\n        uVar6 = 1;\ncode_r0x000312e4:\n        iVar16 = FUN_0002fec0(uStack_c0,param_4,uVar6);\n        if (iVar16 == 0) {\n          iVar16 = FUN_00025ab0();\n          if ((char)param_3[1] == '\x02') {\ncode_r0x00031615:\n            *param_6 = 7;\n          }\n          else {\n            if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    /* WARNING: Could not recover jumptable at 0x00031371. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }\n            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n            uVar6 = FUN_00025ab0();\n            if (cStack_64 == '\x02') goto code_r0x00031615;\n            if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }\n            pcStack_6c = acStack_40;\n            puStack_70 = (uint *)0x3;\n            uVar14 = 1;\n            iVar16 = FUN_0002fec0(uVar6,param_4,1);\n            if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }\n          }\n        }\n        else {\n          *param_6 = iVar16;\n        }\n        goto code_r0x000314ef;\n      }\n      *(byte *)(puVar5 + 4) = (byte)puVar5[4] | 1;\n      if ((param_4 & 0x100) != 0) {\n        *__ptr = *__ptr | 0x400;\n      }\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n      uStack_c0 = FUN_00025ab0();\n      cVar2 = (char)param_3[1];\n      if (cVar2 != '\x02') {\n        bVar1 = true;\n        goto code_r0x000312a6;\n      }\n    }\n    *param_6 = 2;\ncode_r0x000314ef:\n    free(__ptr);\n    FUN_00026c30();\n    if (*param_6 == 0) {\n      local_b0 = 0;\n      goto code_r0x0003093e;\n    }\nLAB_00030e58:\n    local_b0 = 0;\n    goto LAB_00030965;\n  case '\x17':\n    if ((param_4 & 0x1000000) == 0) goto code_r0x000308ec;\ncode_r0x00030b48:\n    local_b0 = 0;\n    *param_6 = 0xd;\n    goto LAB_00030965;\n  case ' ':\n  case '!':\n    local_b0 = FUN_0002b9b0(&UNK_000370bb,cVar2 == '!',param_6);\n    iVar3 = *param_6;\n    goto joined_r0x00030f59;\n  case '\"':\n  case '#':\n    local_b0 = FUN_0002b9b0("",cVar2 == '#',param_6);\n    iVar3 = *param_6;\njoined_r0x00030f59:\n    if ((iVar3 != 0) && (local_b0 == 0)) goto LAB_00030e58;\n    goto code_r0x0003093e;\n  case '$':\n    local_b0 = 0;\n    *param_6 = 5;\n    goto LAB_00030965;\n  }\n  local_b0 = 0;\n  *param_6 = 0xc;\nLAB_00030965:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00036030();\n  }\n  return local_b0;\ncode_r0x000314d1:\n  uVar6 = 0;\n  goto code_r0x000312e4;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint *__ptr;" type_identifier (pointer_declarator "*__ptr" * identifier) ;) (declaration "uint *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "ushort **ppuVar8;" type_identifier (pointer_declarator "**ppuVar8" * (pointer_declarator "*ppuVar8" * identifier)) ;) (declaration "ushort *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "void *__ptr_00;" primitive_type (pointer_declarator "*__ptr_00" * identifier) ;) (declaration "void *__ptr_01;" primitive_type (pointer_declarator "*__ptr_01" * identifier) ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "byte bVar17;" type_identifier identifier ;) (declaration "uint **ppuVar18;" type_identifier (pointer_declarator "**ppuVar18" * (pointer_declarator "*ppuVar18" * identifier)) ;) (declaration "uint uStack_c0;" type_identifier identifier ;) (declaration "int local_b0;" primitive_type identifier ;) (declaration "int iStack_a4;" primitive_type identifier ;) (declaration "uint uStack_90;" type_identifier identifier ;) (declaration "char *pcStack_8c;" primitive_type (pointer_declarator "*pcStack_8c" * identifier) ;) (declaration "uint *puStack_70;" type_identifier (pointer_declarator "*puStack_70" * identifier) ;) (declaration "char *pcStack_6c;" primitive_type (pointer_declarator "*pcStack_6c" * identifier) ;) (declaration "uint *puStack_68;" type_identifier (pointer_declarator "*puStack_68" * identifier) ;) (declaration "char cStack_64;" primitive_type identifier ;) (declaration "char acStack_60 [32];" primitive_type (array_declarator "acStack_60 [32]" identifier [ number_literal ]) ;) (declaration "char acStack_40 [32];" primitive_type (array_declarator "acStack_40 [32]" identifier [ number_literal ]) ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(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) ))))) ;) (expression_statement "iVar3 = *param_2;" (assignment_expression "iVar3 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "cVar2 = (char)param_3[1];" (assignment_expression "cVar2 = (char)param_3[1]" identifier = (cast_expression "(char)param_3[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_3[1]" identifier [ number_literal ]))) ;) (switch_statement "switch(cVar2) {\n  default:\n    goto LAB_00030e58;\n  case '\x01':\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\n      if (*(int *)(iVar3 + 0x5c) < 2) goto code_r0x0003093e;\n      do {\n        iVar3 = *(int *)(param_1 + 0x28);\n        if (((*(int *)(param_1 + 0x38) <= iVar3) || (iVar3 == *(int *)(param_1 + 0x1c))) ||\n           (*(int *)(*(int *)(param_1 + 8) + iVar3 * 4) != -1)) goto code_r0x0003093e;\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        iVar3 = FUN_00028330(0,param_3);\n        cStack_64 = '\x10';\n        local_b0 = FUN_00028330(iVar3,&puStack_68);\n      } while (iVar3 != 0 && local_b0 != 0);\n    }\n    break;\n  case '\x04':\n    uVar14 = 1 << ((byte)*param_3 & 0x1f);\n    if ((*(uint *)(iVar3 + 0x54) & uVar14) == 0) {\n      local_b0 = 0;\n      *param_6 = 6;\n      goto LAB_00030965;\n    }\n    *(uint *)(iVar3 + 0x50) = *(uint *)(iVar3 + 0x50) | uVar14;\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\n      *(int *)(iVar3 + 0x4c) = *(int *)(iVar3 + 0x4c) + 1;\n      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n      goto code_r0x0003093e;\n    }\n    break;\n  case '\x05':\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 == 0) break;\n    if (1 < *(int *)(iVar3 + 0x5c)) {\n      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n    }\n    goto code_r0x0003093e;\n  case '\b':\n    uVar14 = param_2[6];\n    param_2[6] = uVar14 + 1;\n    iVar16 = FUN_000300e0();\n    *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n    if ((char)param_3[1] == '\t') {\ncode_r0x00030fd0:\n      if (uVar14 < 9) {\n        *(uint *)(iVar3 + 0x54) = *(uint *)(iVar3 + 0x54) | 1 << ((byte)uVar14 & 0x1f);\n      }\n      cStack_64 = '\x11';\n      local_b0 = FUN_00028330(0,&puStack_68);\n      if (local_b0 != 0) {\n        *(uint *)(local_b0 + 0x14) = uVar14;\n        goto code_r0x0003093e;\n      }\n      break;\n    }\n    iVar16 = FUN_00031e70(param_4,param_5 + 1,param_6);\n    if (*param_6 == 0) {\n      if ((char)param_3[1] == '\t') goto code_r0x00030fd0;\n      if (iVar16 != 0) {\n        FUN_00025a40();\n      }\n      *param_6 = 8;\n    }\n    goto LAB_00030e58;\n  case '\t':\ncode_r0x000313dd:\n    if ((param_4 & 0x20000) == 0) {\n      local_b0 = 0;\n      *param_6 = 0x10;\n      goto LAB_00030965;\n    }\n  case '\x18':\ncode_r0x00030910:\n    *(char *)(param_3 + 1) = '\x01';\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\ncode_r0x0003093e:\n      iVar3 = FUN_000300e0();\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n      uVar14 = (uint)(byte)param_3[1];\n      do {\n        bVar17 = (byte)uVar14;\n        if ((0x17 < bVar17) || ((0x8c0800U >> (uVar14 & 0x1f) & 1) == 0)) goto LAB_00030965;\n        uVar6 = *(undefined4 *)(param_1 + 0x28);\n        uVar14 = *param_3;\n        uVar13 = param_3[1];\n        iStack_a4 = local_b0;\n        if (bVar17 == 0x17) {\n          uVar15 = FUN_000307e0();\n          if (uVar15 == 0xffffffff) {\n            if (((char)param_3[1] == '\x01') && ((char)*param_3 == ',')) {\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\ncode_r0x00030e40:\n            *param_6 = 10;\n          }\n          else {\n            if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }\ncode_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }\ncode_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;\n            *param_3 = uVar14;\n            param_3[1] = uVar13;\n            *(char *)(param_3 + 1) = '\x01';\n            iVar3 = local_b0;\ncode_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;\n          }\ncode_r0x00030e4a:\n          if (local_b0 == 0) goto LAB_00030e58;\ncode_r0x00030bea:\n          FUN_00025a40();\n          local_b0 = 0;\n          goto LAB_00030965;\n        }\n        uVar15 = (uint)(bVar17 == 0x12);\n        if (bVar17 == 0x13) {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 == 0) goto code_r0x00030d10;\n          if (*(char *)(local_b0 + 0x18) == '\x11') {\n            uStack_c0 = 1;\n            iStack_a4 = 0;\n            goto code_r0x00030c76;\n          }\n          uStack_c0 = 1;\n          cStack_64 = '\n';\n          iStack_a4 = 0;\ncode_r0x00030a18:\n          iVar3 = FUN_00028330(0,&puStack_68);\n          if (iVar3 == 0) {\ncode_r0x00030be0:\n            *param_6 = 0xc;\n            goto code_r0x00030bea;\n          }\n          for (iVar16 = uVar15 + 2; iVar16 <= (int)uStack_c0; iVar16 = iVar16 + 1) {\n            iVar3 = FUN_00028410();\n            cStack_64 = '\x10';\n            iVar4 = FUN_00028330(iVar3,&puStack_68);\n            if ((iVar3 == 0) || (iVar4 == 0)) goto code_r0x00030be0;\n            cStack_64 = '\n';\n            iVar3 = FUN_00028330(0,&puStack_68);\n            if (iVar3 == 0) goto code_r0x00030be0;\n          }\n          if (iStack_a4 != 0) {\n            cStack_64 = '\x10';\n            iVar3 = FUN_00028330(iVar3,&puStack_68);\n            goto code_r0x00030af2;\n          }\n        }\n        else {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 != 0) {\n            if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }\n            uStack_c0 = 0xffffffff;\n            uVar15 = 1;\ncode_r0x00030e9c:\n            iVar3 = FUN_00028410();\n            if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }\n            goto code_r0x00030be0;\n          }\ncode_r0x00030d10:\n          if (*param_6 != 0) goto LAB_00030e58;\ncode_r0x00030d1e:\n          local_b0 = 0;\n          iVar3 = local_b0;\n        }\ncode_r0x00030b08:\n        local_b0 = iVar3;\n        bVar17 = (byte)param_3[1];\n        uVar14 = (uint)bVar17;\n      } while (((param_4 & 0x1000000) == 0) || ((bVar17 != 0xb && (bVar17 != 0x17))));\n      if (local_b0 != 0) {\n        FUN_00025a40();\n      }\n      goto code_r0x00030b48;\n    }\n    break;\n  case '\v':\n  case '\x12':\n  case '\x13':\ncode_r0x000308ec:\n    if ((param_4 & 0x20) == 0) {\n      if ((param_4 & 0x10) != 0) {\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        local_b0 = FUN_00030880(param_4,param_5,param_6);\n        goto LAB_00030965;\n      }\n      if (cVar2 == '\t') goto code_r0x000313dd;\n      goto code_r0x00030910;\n    }\n    goto code_r0x00030b48;\n  case '\f':\n    uStack_c0 = *param_3;\n    if (((uStack_c0 & 0x30f) != 0) && (bVar17 = *(byte *)(iVar3 + 0x58), (bVar17 & 0x10) == 0)) {\n      *(byte *)(iVar3 + 0x58) = bVar17 | 0x10;\n      if ((bVar17 & 8) == 0) {\n        *(undefined4 *)(iVar3 + 0x60) = 0;\n        *(undefined4 *)(iVar3 + 100) = 0x3ff0000;\n        *(undefined4 *)(iVar3 + 0x68) = 0x87fffffe;\n        *(undefined4 *)(iVar3 + 0x6c) = 0x7fffffe;\n        if ((bVar17 & 4) != 0) {\n          *(undefined4 *)(iVar3 + 0x70) = 0;\n          *(undefined4 *)(iVar3 + 0x74) = 0;\n          *(undefined4 *)(iVar3 + 0x78) = 0;\n          *(undefined4 *)(iVar3 + 0x7c) = 0;\n          uStack_c0 = *param_3;\n          goto code_r0x00031089;\n        }\n        iVar4 = 0x80;\n        iVar16 = 4;\n      }\n      else {\n        iVar4 = 0;\n        iVar16 = 0;\n      }\n      ppuVar8 = __ctype_b_loc();\n      iVar16 = iVar3 + iVar16 * 4;\n      puVar9 = *ppuVar8 + iVar4;\n      do {\n        iVar12 = 0;\n        do {\n          if (((puVar9[iVar12] & 8) != 0) || (iVar4 + iVar12 == 0x5f)) {\n            *(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f);\n          }\n          iVar12 = iVar12 + 1;\n        } while (iVar12 != 0x20);\n        iVar4 = iVar4 + 0x20;\n        iVar16 = iVar16 + 4;\n        puVar9 = puVar9 + 0x20;\n      } while (iVar3 + 0x20 != iVar16);\n    }\ncode_r0x00031089:\n    if ((uStack_c0 - 0x100 & 0xfffffeff) == 0) {\n      if (uStack_c0 == 0x100) {\n        *param_3 = 6;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 9;\n      }\n      else {\n        *param_3 = 5;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 10;\n      }\n      iVar3 = FUN_00028330(0,param_3);\n      cStack_64 = '\n';\n      local_b0 = FUN_00028330(iVar3,&puStack_68);\n      if (uStack_c0 == 0 || iVar3 == 0) break;\n    }\n    else {\n      local_b0 = FUN_00028330(0,param_3);\n    }\n    if (local_b0 != 0) {\n      iVar3 = FUN_000300e0();\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n      goto LAB_00030965;\n    }\n    break;\n  case '\x14':\n    __ptr = (uint *)calloc(0x20,1);\n    puVar5 = (uint *)calloc(0x28,1);\n    if (__ptr == (uint *)0x0 || puVar5 == (uint *)0x0) {\n      free(__ptr);\n      free(puVar5);\n      *param_6 = 0xc;\n      local_b0 = 0;\n      goto LAB_00030965;\n    }\n    uStack_c0 = FUN_00025ab0();\n    cVar2 = (char)param_3[1];\n    if (cVar2 != '\x02') {\n      bVar1 = false;\n      if (cVar2 != '\x19') {\ncode_r0x000312a6:\n        if (cVar2 == '\x15') {\n          *(char *)(param_3 + 1) = '\x01';\n        }\n        uStack_90 = 0;\n        uVar6 = 1;\ncode_r0x000312e4:\n        iVar16 = FUN_0002fec0(uStack_c0,param_4,uVar6);\n        if (iVar16 == 0) {\n          iVar16 = FUN_00025ab0();\n          if ((char)param_3[1] == '\x02') {\ncode_r0x00031615:\n            *param_6 = 7;\n          }\n          else {\n            if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    /* WARNING: Could not recover jumptable at 0x00031371. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }\n            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n            uVar6 = FUN_00025ab0();\n            if (cStack_64 == '\x02') goto code_r0x00031615;\n            if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }\n            pcStack_6c = acStack_40;\n            puStack_70 = (uint *)0x3;\n            uVar14 = 1;\n            iVar16 = FUN_0002fec0(uVar6,param_4,1);\n            if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }\n          }\n        }\n        else {\n          *param_6 = iVar16;\n        }\n        goto code_r0x000314ef;\n      }\n      *(byte *)(puVar5 + 4) = (byte)puVar5[4] | 1;\n      if ((param_4 & 0x100) != 0) {\n        *__ptr = *__ptr | 0x400;\n      }\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n      uStack_c0 = FUN_00025ab0();\n      cVar2 = (char)param_3[1];\n      if (cVar2 != '\x02') {\n        bVar1 = true;\n        goto code_r0x000312a6;\n      }\n    }\n    *param_6 = 2;\ncode_r0x000314ef:\n    free(__ptr);\n    FUN_00026c30();\n    if (*param_6 == 0) {\n      local_b0 = 0;\n      goto code_r0x0003093e;\n    }\nLAB_00030e58:\n    local_b0 = 0;\n    goto LAB_00030965;\n  case '\x17':\n    if ((param_4 & 0x1000000) == 0) goto code_r0x000308ec;\ncode_r0x00030b48:\n    local_b0 = 0;\n    *param_6 = 0xd;\n    goto LAB_00030965;\n  case ' ':\n  case '!':\n    local_b0 = FUN_0002b9b0(&UNK_000370bb,cVar2 == '!',param_6);\n    iVar3 = *param_6;\n    goto joined_r0x00030f59;\n  case '\"':\n  case '#':\n    local_b0 = FUN_0002b9b0("",cVar2 == '#',param_6);\n    iVar3 = *param_6;\njoined_r0x00030f59:\n    if ((iVar3 != 0) && (local_b0 == 0)) goto LAB_00030e58;\n    goto code_r0x0003093e;\n  case '$':\n    local_b0 = 0;\n    *param_6 = 5;\n    goto LAB_00030965;\n  }" switch (parenthesized_expression "(cVar2)" ( identifier )) (compound_statement "{\n  default:\n    goto LAB_00030e58;\n  case '\x01':\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\n      if (*(int *)(iVar3 + 0x5c) < 2) goto code_r0x0003093e;\n      do {\n        iVar3 = *(int *)(param_1 + 0x28);\n        if (((*(int *)(param_1 + 0x38) <= iVar3) || (iVar3 == *(int *)(param_1 + 0x1c))) ||\n           (*(int *)(*(int *)(param_1 + 8) + iVar3 * 4) != -1)) goto code_r0x0003093e;\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        iVar3 = FUN_00028330(0,param_3);\n        cStack_64 = '\x10';\n        local_b0 = FUN_00028330(iVar3,&puStack_68);\n      } while (iVar3 != 0 && local_b0 != 0);\n    }\n    break;\n  case '\x04':\n    uVar14 = 1 << ((byte)*param_3 & 0x1f);\n    if ((*(uint *)(iVar3 + 0x54) & uVar14) == 0) {\n      local_b0 = 0;\n      *param_6 = 6;\n      goto LAB_00030965;\n    }\n    *(uint *)(iVar3 + 0x50) = *(uint *)(iVar3 + 0x50) | uVar14;\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\n      *(int *)(iVar3 + 0x4c) = *(int *)(iVar3 + 0x4c) + 1;\n      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n      goto code_r0x0003093e;\n    }\n    break;\n  case '\x05':\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 == 0) break;\n    if (1 < *(int *)(iVar3 + 0x5c)) {\n      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n    }\n    goto code_r0x0003093e;\n  case '\b':\n    uVar14 = param_2[6];\n    param_2[6] = uVar14 + 1;\n    iVar16 = FUN_000300e0();\n    *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n    if ((char)param_3[1] == '\t') {\ncode_r0x00030fd0:\n      if (uVar14 < 9) {\n        *(uint *)(iVar3 + 0x54) = *(uint *)(iVar3 + 0x54) | 1 << ((byte)uVar14 & 0x1f);\n      }\n      cStack_64 = '\x11';\n      local_b0 = FUN_00028330(0,&puStack_68);\n      if (local_b0 != 0) {\n        *(uint *)(local_b0 + 0x14) = uVar14;\n        goto code_r0x0003093e;\n      }\n      break;\n    }\n    iVar16 = FUN_00031e70(param_4,param_5 + 1,param_6);\n    if (*param_6 == 0) {\n      if ((char)param_3[1] == '\t') goto code_r0x00030fd0;\n      if (iVar16 != 0) {\n        FUN_00025a40();\n      }\n      *param_6 = 8;\n    }\n    goto LAB_00030e58;\n  case '\t':\ncode_r0x000313dd:\n    if ((param_4 & 0x20000) == 0) {\n      local_b0 = 0;\n      *param_6 = 0x10;\n      goto LAB_00030965;\n    }\n  case '\x18':\ncode_r0x00030910:\n    *(char *)(param_3 + 1) = '\x01';\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\ncode_r0x0003093e:\n      iVar3 = FUN_000300e0();\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n      uVar14 = (uint)(byte)param_3[1];\n      do {\n        bVar17 = (byte)uVar14;\n        if ((0x17 < bVar17) || ((0x8c0800U >> (uVar14 & 0x1f) & 1) == 0)) goto LAB_00030965;\n        uVar6 = *(undefined4 *)(param_1 + 0x28);\n        uVar14 = *param_3;\n        uVar13 = param_3[1];\n        iStack_a4 = local_b0;\n        if (bVar17 == 0x17) {\n          uVar15 = FUN_000307e0();\n          if (uVar15 == 0xffffffff) {\n            if (((char)param_3[1] == '\x01') && ((char)*param_3 == ',')) {\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\ncode_r0x00030e40:\n            *param_6 = 10;\n          }\n          else {\n            if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }\ncode_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }\ncode_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;\n            *param_3 = uVar14;\n            param_3[1] = uVar13;\n            *(char *)(param_3 + 1) = '\x01';\n            iVar3 = local_b0;\ncode_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;\n          }\ncode_r0x00030e4a:\n          if (local_b0 == 0) goto LAB_00030e58;\ncode_r0x00030bea:\n          FUN_00025a40();\n          local_b0 = 0;\n          goto LAB_00030965;\n        }\n        uVar15 = (uint)(bVar17 == 0x12);\n        if (bVar17 == 0x13) {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 == 0) goto code_r0x00030d10;\n          if (*(char *)(local_b0 + 0x18) == '\x11') {\n            uStack_c0 = 1;\n            iStack_a4 = 0;\n            goto code_r0x00030c76;\n          }\n          uStack_c0 = 1;\n          cStack_64 = '\n';\n          iStack_a4 = 0;\ncode_r0x00030a18:\n          iVar3 = FUN_00028330(0,&puStack_68);\n          if (iVar3 == 0) {\ncode_r0x00030be0:\n            *param_6 = 0xc;\n            goto code_r0x00030bea;\n          }\n          for (iVar16 = uVar15 + 2; iVar16 <= (int)uStack_c0; iVar16 = iVar16 + 1) {\n            iVar3 = FUN_00028410();\n            cStack_64 = '\x10';\n            iVar4 = FUN_00028330(iVar3,&puStack_68);\n            if ((iVar3 == 0) || (iVar4 == 0)) goto code_r0x00030be0;\n            cStack_64 = '\n';\n            iVar3 = FUN_00028330(0,&puStack_68);\n            if (iVar3 == 0) goto code_r0x00030be0;\n          }\n          if (iStack_a4 != 0) {\n            cStack_64 = '\x10';\n            iVar3 = FUN_00028330(iVar3,&puStack_68);\n            goto code_r0x00030af2;\n          }\n        }\n        else {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 != 0) {\n            if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }\n            uStack_c0 = 0xffffffff;\n            uVar15 = 1;\ncode_r0x00030e9c:\n            iVar3 = FUN_00028410();\n            if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }\n            goto code_r0x00030be0;\n          }\ncode_r0x00030d10:\n          if (*param_6 != 0) goto LAB_00030e58;\ncode_r0x00030d1e:\n          local_b0 = 0;\n          iVar3 = local_b0;\n        }\ncode_r0x00030b08:\n        local_b0 = iVar3;\n        bVar17 = (byte)param_3[1];\n        uVar14 = (uint)bVar17;\n      } while (((param_4 & 0x1000000) == 0) || ((bVar17 != 0xb && (bVar17 != 0x17))));\n      if (local_b0 != 0) {\n        FUN_00025a40();\n      }\n      goto code_r0x00030b48;\n    }\n    break;\n  case '\v':\n  case '\x12':\n  case '\x13':\ncode_r0x000308ec:\n    if ((param_4 & 0x20) == 0) {\n      if ((param_4 & 0x10) != 0) {\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        local_b0 = FUN_00030880(param_4,param_5,param_6);\n        goto LAB_00030965;\n      }\n      if (cVar2 == '\t') goto code_r0x000313dd;\n      goto code_r0x00030910;\n    }\n    goto code_r0x00030b48;\n  case '\f':\n    uStack_c0 = *param_3;\n    if (((uStack_c0 & 0x30f) != 0) && (bVar17 = *(byte *)(iVar3 + 0x58), (bVar17 & 0x10) == 0)) {\n      *(byte *)(iVar3 + 0x58) = bVar17 | 0x10;\n      if ((bVar17 & 8) == 0) {\n        *(undefined4 *)(iVar3 + 0x60) = 0;\n        *(undefined4 *)(iVar3 + 100) = 0x3ff0000;\n        *(undefined4 *)(iVar3 + 0x68) = 0x87fffffe;\n        *(undefined4 *)(iVar3 + 0x6c) = 0x7fffffe;\n        if ((bVar17 & 4) != 0) {\n          *(undefined4 *)(iVar3 + 0x70) = 0;\n          *(undefined4 *)(iVar3 + 0x74) = 0;\n          *(undefined4 *)(iVar3 + 0x78) = 0;\n          *(undefined4 *)(iVar3 + 0x7c) = 0;\n          uStack_c0 = *param_3;\n          goto code_r0x00031089;\n        }\n        iVar4 = 0x80;\n        iVar16 = 4;\n      }\n      else {\n        iVar4 = 0;\n        iVar16 = 0;\n      }\n      ppuVar8 = __ctype_b_loc();\n      iVar16 = iVar3 + iVar16 * 4;\n      puVar9 = *ppuVar8 + iVar4;\n      do {\n        iVar12 = 0;\n        do {\n          if (((puVar9[iVar12] & 8) != 0) || (iVar4 + iVar12 == 0x5f)) {\n            *(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f);\n          }\n          iVar12 = iVar12 + 1;\n        } while (iVar12 != 0x20);\n        iVar4 = iVar4 + 0x20;\n        iVar16 = iVar16 + 4;\n        puVar9 = puVar9 + 0x20;\n      } while (iVar3 + 0x20 != iVar16);\n    }\ncode_r0x00031089:\n    if ((uStack_c0 - 0x100 & 0xfffffeff) == 0) {\n      if (uStack_c0 == 0x100) {\n        *param_3 = 6;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 9;\n      }\n      else {\n        *param_3 = 5;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 10;\n      }\n      iVar3 = FUN_00028330(0,param_3);\n      cStack_64 = '\n';\n      local_b0 = FUN_00028330(iVar3,&puStack_68);\n      if (uStack_c0 == 0 || iVar3 == 0) break;\n    }\n    else {\n      local_b0 = FUN_00028330(0,param_3);\n    }\n    if (local_b0 != 0) {\n      iVar3 = FUN_000300e0();\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n      goto LAB_00030965;\n    }\n    break;\n  case '\x14':\n    __ptr = (uint *)calloc(0x20,1);\n    puVar5 = (uint *)calloc(0x28,1);\n    if (__ptr == (uint *)0x0 || puVar5 == (uint *)0x0) {\n      free(__ptr);\n      free(puVar5);\n      *param_6 = 0xc;\n      local_b0 = 0;\n      goto LAB_00030965;\n    }\n    uStack_c0 = FUN_00025ab0();\n    cVar2 = (char)param_3[1];\n    if (cVar2 != '\x02') {\n      bVar1 = false;\n      if (cVar2 != '\x19') {\ncode_r0x000312a6:\n        if (cVar2 == '\x15') {\n          *(char *)(param_3 + 1) = '\x01';\n        }\n        uStack_90 = 0;\n        uVar6 = 1;\ncode_r0x000312e4:\n        iVar16 = FUN_0002fec0(uStack_c0,param_4,uVar6);\n        if (iVar16 == 0) {\n          iVar16 = FUN_00025ab0();\n          if ((char)param_3[1] == '\x02') {\ncode_r0x00031615:\n            *param_6 = 7;\n          }\n          else {\n            if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    /* WARNING: Could not recover jumptable at 0x00031371. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }\n            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n            uVar6 = FUN_00025ab0();\n            if (cStack_64 == '\x02') goto code_r0x00031615;\n            if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }\n            pcStack_6c = acStack_40;\n            puStack_70 = (uint *)0x3;\n            uVar14 = 1;\n            iVar16 = FUN_0002fec0(uVar6,param_4,1);\n            if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }\n          }\n        }\n        else {\n          *param_6 = iVar16;\n        }\n        goto code_r0x000314ef;\n      }\n      *(byte *)(puVar5 + 4) = (byte)puVar5[4] | 1;\n      if ((param_4 & 0x100) != 0) {\n        *__ptr = *__ptr | 0x400;\n      }\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n      uStack_c0 = FUN_00025ab0();\n      cVar2 = (char)param_3[1];\n      if (cVar2 != '\x02') {\n        bVar1 = true;\n        goto code_r0x000312a6;\n      }\n    }\n    *param_6 = 2;\ncode_r0x000314ef:\n    free(__ptr);\n    FUN_00026c30();\n    if (*param_6 == 0) {\n      local_b0 = 0;\n      goto code_r0x0003093e;\n    }\nLAB_00030e58:\n    local_b0 = 0;\n    goto LAB_00030965;\n  case '\x17':\n    if ((param_4 & 0x1000000) == 0) goto code_r0x000308ec;\ncode_r0x00030b48:\n    local_b0 = 0;\n    *param_6 = 0xd;\n    goto LAB_00030965;\n  case ' ':\n  case '!':\n    local_b0 = FUN_0002b9b0(&UNK_000370bb,cVar2 == '!',param_6);\n    iVar3 = *param_6;\n    goto joined_r0x00030f59;\n  case '\"':\n  case '#':\n    local_b0 = FUN_0002b9b0("",cVar2 == '#',param_6);\n    iVar3 = *param_6;\njoined_r0x00030f59:\n    if ((iVar3 != 0) && (local_b0 == 0)) goto LAB_00030e58;\n    goto code_r0x0003093e;\n  case '$':\n    local_b0 = 0;\n    *param_6 = 5;\n    goto LAB_00030965;\n  }" { (case_statement "default:\n    goto LAB_00030e58;" default : (goto_statement "goto LAB_00030e58;" goto statement_identifier ;)) (case_statement "case '\x01':\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\n      if (*(int *)(iVar3 + 0x5c) < 2) goto code_r0x0003093e;\n      do {\n        iVar3 = *(int *)(param_1 + 0x28);\n        if (((*(int *)(param_1 + 0x38) <= iVar3) || (iVar3 == *(int *)(param_1 + 0x1c))) ||\n           (*(int *)(*(int *)(param_1 + 8) + iVar3 * 4) != -1)) goto code_r0x0003093e;\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        iVar3 = FUN_00028330(0,param_3);\n        cStack_64 = '\x10';\n        local_b0 = FUN_00028330(iVar3,&puStack_68);\n      } while (iVar3 != 0 && local_b0 != 0);\n    }\n    break;" case (char_literal "'\x01'" ' escape_sequence ') : (expression_statement "local_b0 = FUN_00028330(0,param_3);" (assignment_expression "local_b0 = FUN_00028330(0,param_3)" identifier = (call_expression "FUN_00028330(0,param_3)" identifier (argument_list "(0,param_3)" ( number_literal , identifier )))) ;) (if_statement "if (local_b0 != 0) {\n      if (*(int *)(iVar3 + 0x5c) < 2) goto code_r0x0003093e;\n      do {\n        iVar3 = *(int *)(param_1 + 0x28);\n        if (((*(int *)(param_1 + 0x38) <= iVar3) || (iVar3 == *(int *)(param_1 + 0x1c))) ||\n           (*(int *)(*(int *)(param_1 + 8) + iVar3 * 4) != -1)) goto code_r0x0003093e;\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        iVar3 = FUN_00028330(0,param_3);\n        cStack_64 = '\x10';\n        local_b0 = FUN_00028330(iVar3,&puStack_68);\n      } while (iVar3 != 0 && local_b0 != 0);\n    }" if (parenthesized_expression "(local_b0 != 0)" ( (binary_expression "local_b0 != 0" identifier != number_literal) )) (compound_statement "{\n      if (*(int *)(iVar3 + 0x5c) < 2) goto code_r0x0003093e;\n      do {\n        iVar3 = *(int *)(param_1 + 0x28);\n        if (((*(int *)(param_1 + 0x38) <= iVar3) || (iVar3 == *(int *)(param_1 + 0x1c))) ||\n           (*(int *)(*(int *)(param_1 + 8) + iVar3 * 4) != -1)) goto code_r0x0003093e;\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        iVar3 = FUN_00028330(0,param_3);\n        cStack_64 = '\x10';\n        local_b0 = FUN_00028330(iVar3,&puStack_68);\n      } while (iVar3 != 0 && local_b0 != 0);\n    }" { (if_statement "if (*(int *)(iVar3 + 0x5c) < 2) goto code_r0x0003093e;" if (parenthesized_expression "(*(int *)(iVar3 + 0x5c) < 2)" ( (binary_expression "*(int *)(iVar3 + 0x5c) < 2" (pointer_expression "*(int *)(iVar3 + 0x5c)" * (cast_expression "(int *)(iVar3 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x5c)" ( (binary_expression "iVar3 + 0x5c" identifier + number_literal) )))) < number_literal) )) (goto_statement "goto code_r0x0003093e;" goto statement_identifier ;)) (do_statement "do {\n        iVar3 = *(int *)(param_1 + 0x28);\n        if (((*(int *)(param_1 + 0x38) <= iVar3) || (iVar3 == *(int *)(param_1 + 0x1c))) ||\n           (*(int *)(*(int *)(param_1 + 8) + iVar3 * 4) != -1)) goto code_r0x0003093e;\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        iVar3 = FUN_00028330(0,param_3);\n        cStack_64 = '\x10';\n        local_b0 = FUN_00028330(iVar3,&puStack_68);\n      } while (iVar3 != 0 && local_b0 != 0);" do (compound_statement "{\n        iVar3 = *(int *)(param_1 + 0x28);\n        if (((*(int *)(param_1 + 0x38) <= iVar3) || (iVar3 == *(int *)(param_1 + 0x1c))) ||\n           (*(int *)(*(int *)(param_1 + 8) + iVar3 * 4) != -1)) goto code_r0x0003093e;\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        iVar3 = FUN_00028330(0,param_3);\n        cStack_64 = '\x10';\n        local_b0 = FUN_00028330(iVar3,&puStack_68);\n      }" { (expression_statement "iVar3 = *(int *)(param_1 + 0x28);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x28)" identifier = (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (((*(int *)(param_1 + 0x38) <= iVar3) || (iVar3 == *(int *)(param_1 + 0x1c))) ||\n           (*(int *)(*(int *)(param_1 + 8) + iVar3 * 4) != -1)) goto code_r0x0003093e;" if (parenthesized_expression "(((*(int *)(param_1 + 0x38) <= iVar3) || (iVar3 == *(int *)(param_1 + 0x1c))) ||\n           (*(int *)(*(int *)(param_1 + 8) + iVar3 * 4) != -1))" ( (binary_expression "((*(int *)(param_1 + 0x38) <= iVar3) || (iVar3 == *(int *)(param_1 + 0x1c))) ||\n           (*(int *)(*(int *)(param_1 + 8) + iVar3 * 4) != -1)" (parenthesized_expression "((*(int *)(param_1 + 0x38) <= iVar3) || (iVar3 == *(int *)(param_1 + 0x1c)))" ( (binary_expression "(*(int *)(param_1 + 0x38) <= iVar3) || (iVar3 == *(int *)(param_1 + 0x1c))" (parenthesized_expression "(*(int *)(param_1 + 0x38) <= iVar3)" ( (binary_expression "*(int *)(param_1 + 0x38) <= iVar3" (pointer_expression "*(int *)(param_1 + 0x38)" * (cast_expression "(int *)(param_1 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) <= identifier) )) || (parenthesized_expression "(iVar3 == *(int *)(param_1 + 0x1c))" ( (binary_expression "iVar3 == *(int *)(param_1 + 0x1c)" identifier == (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ))) )) || (parenthesized_expression "(*(int *)(*(int *)(param_1 + 8) + iVar3 * 4) != -1)" ( (binary_expression "*(int *)(*(int *)(param_1 + 8) + iVar3 * 4) != -1" (pointer_expression "*(int *)(*(int *)(param_1 + 8) + iVar3 * 4)" * (cast_expression "(int *)(*(int *)(param_1 + 8) + iVar3 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 8) + iVar3 * 4)" ( (binary_expression "*(int *)(param_1 + 8) + iVar3 * 4" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + (binary_expression "iVar3 * 4" identifier * number_literal)) )))) != number_literal) ))) )) (goto_statement "goto code_r0x0003093e;" goto statement_identifier ;)) (expression_statement "iVar3 = FUN_000300e0();" (assignment_expression "iVar3 = FUN_000300e0()" identifier = (call_expression "FUN_000300e0()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;" (assignment_expression "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x28) + iVar3" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) + identifier)) ;) (expression_statement "iVar3 = FUN_00028330(0,param_3);" (assignment_expression "iVar3 = FUN_00028330(0,param_3)" identifier = (call_expression "FUN_00028330(0,param_3)" identifier (argument_list "(0,param_3)" ( number_literal , identifier )))) ;) (expression_statement "cStack_64 = '\x10';" (assignment_expression "cStack_64 = '\x10'" identifier = (char_literal "'\x10'" ' escape_sequence ')) ;) (expression_statement "local_b0 = FUN_00028330(iVar3,&puStack_68);" (assignment_expression "local_b0 = FUN_00028330(iVar3,&puStack_68)" identifier = (call_expression "FUN_00028330(iVar3,&puStack_68)" identifier (argument_list "(iVar3,&puStack_68)" ( identifier , (pointer_expression "&puStack_68" & identifier) )))) ;) }) while (parenthesized_expression "(iVar3 != 0 && local_b0 != 0)" ( (binary_expression "iVar3 != 0 && local_b0 != 0" (binary_expression "iVar3 != 0" identifier != number_literal) && (binary_expression "local_b0 != 0" identifier != number_literal)) )) ;) })) (break_statement "break;" break ;)) (case_statement "case '\x04':\n    uVar14 = 1 << ((byte)*param_3 & 0x1f);\n    if ((*(uint *)(iVar3 + 0x54) & uVar14) == 0) {\n      local_b0 = 0;\n      *param_6 = 6;\n      goto LAB_00030965;\n    }\n    *(uint *)(iVar3 + 0x50) = *(uint *)(iVar3 + 0x50) | uVar14;\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\n      *(int *)(iVar3 + 0x4c) = *(int *)(iVar3 + 0x4c) + 1;\n      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n      goto code_r0x0003093e;\n    }\n    break;" case (char_literal "'\x04'" ' escape_sequence ') : (expression_statement "uVar14 = 1 << ((byte)*param_3 & 0x1f);" (assignment_expression "uVar14 = 1 << ((byte)*param_3 & 0x1f)" identifier = (binary_expression "1 << ((byte)*param_3 & 0x1f)" number_literal << (parenthesized_expression "((byte)*param_3 & 0x1f)" ( (binary_expression "(byte)*param_3 & 0x1f" (binary_expression "(byte)*param_3" (parenthesized_expression "(byte)" ( identifier )) * identifier) & number_literal) )))) ;) (if_statement "if ((*(uint *)(iVar3 + 0x54) & uVar14) == 0) {\n      local_b0 = 0;\n      *param_6 = 6;\n      goto LAB_00030965;\n    }" if (parenthesized_expression "((*(uint *)(iVar3 + 0x54) & uVar14) == 0)" ( (binary_expression "(*(uint *)(iVar3 + 0x54) & uVar14) == 0" (parenthesized_expression "(*(uint *)(iVar3 + 0x54) & uVar14)" ( (binary_expression "*(uint *)(iVar3 + 0x54) & uVar14" (pointer_expression "*(uint *)(iVar3 + 0x54)" * (cast_expression "(uint *)(iVar3 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x54)" ( (binary_expression "iVar3 + 0x54" identifier + number_literal) )))) & identifier) )) == number_literal) )) (compound_statement "{\n      local_b0 = 0;\n      *param_6 = 6;\n      goto LAB_00030965;\n    }" { (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" identifier = number_literal) ;) (expression_statement "*param_6 = 6;" (assignment_expression "*param_6 = 6" (pointer_expression "*param_6" * identifier) = number_literal) ;) (goto_statement "goto LAB_00030965;" goto statement_identifier ;) })) (expression_statement "*(uint *)(iVar3 + 0x50) = *(uint *)(iVar3 + 0x50) | uVar14;" (assignment_expression "*(uint *)(iVar3 + 0x50) = *(uint *)(iVar3 + 0x50) | uVar14" (pointer_expression "*(uint *)(iVar3 + 0x50)" * (cast_expression "(uint *)(iVar3 + 0x50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x50)" ( (binary_expression "iVar3 + 0x50" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar3 + 0x50) | uVar14" (pointer_expression "*(uint *)(iVar3 + 0x50)" * (cast_expression "(uint *)(iVar3 + 0x50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x50)" ( (binary_expression "iVar3 + 0x50" identifier + number_literal) )))) | identifier)) ;) (expression_statement "local_b0 = FUN_00028330(0,param_3);" (assignment_expression "local_b0 = FUN_00028330(0,param_3)" identifier = (call_expression "FUN_00028330(0,param_3)" identifier (argument_list "(0,param_3)" ( number_literal , identifier )))) ;) (if_statement "if (local_b0 != 0) {\n      *(int *)(iVar3 + 0x4c) = *(int *)(iVar3 + 0x4c) + 1;\n      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n      goto code_r0x0003093e;\n    }" if (parenthesized_expression "(local_b0 != 0)" ( (binary_expression "local_b0 != 0" identifier != number_literal) )) (compound_statement "{\n      *(int *)(iVar3 + 0x4c) = *(int *)(iVar3 + 0x4c) + 1;\n      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n      goto code_r0x0003093e;\n    }" { (expression_statement "*(int *)(iVar3 + 0x4c) = *(int *)(iVar3 + 0x4c) + 1;" (assignment_expression "*(int *)(iVar3 + 0x4c) = *(int *)(iVar3 + 0x4c) + 1" (pointer_expression "*(int *)(iVar3 + 0x4c)" * (cast_expression "(int *)(iVar3 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x4c)" ( (binary_expression "iVar3 + 0x4c" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar3 + 0x4c) + 1" (pointer_expression "*(int *)(iVar3 + 0x4c)" * (cast_expression "(int *)(iVar3 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x4c)" ( (binary_expression "iVar3 + 0x4c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;" (assignment_expression "*(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2" (pointer_expression "*(byte *)(iVar3 + 0x58)" * (cast_expression "(byte *)(iVar3 + 0x58)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x58)" ( (binary_expression "iVar3 + 0x58" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar3 + 0x58) | 2" (pointer_expression "*(byte *)(iVar3 + 0x58)" * (cast_expression "(byte *)(iVar3 + 0x58)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x58)" ( (binary_expression "iVar3 + 0x58" identifier + number_literal) )))) | number_literal)) ;) (goto_statement "goto code_r0x0003093e;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case '\x05':\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 == 0) break;\n    if (1 < *(int *)(iVar3 + 0x5c)) {\n      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n    }\n    goto code_r0x0003093e;" case (char_literal "'\x05'" ' escape_sequence ') : (expression_statement "local_b0 = FUN_00028330(0,param_3);" (assignment_expression "local_b0 = FUN_00028330(0,param_3)" identifier = (call_expression "FUN_00028330(0,param_3)" identifier (argument_list "(0,param_3)" ( number_literal , identifier )))) ;) (if_statement "if (local_b0 == 0) break;" if (parenthesized_expression "(local_b0 == 0)" ( (binary_expression "local_b0 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (if_statement "if (1 < *(int *)(iVar3 + 0x5c)) {\n      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n    }" if (parenthesized_expression "(1 < *(int *)(iVar3 + 0x5c))" ( (binary_expression "1 < *(int *)(iVar3 + 0x5c)" number_literal < (pointer_expression "*(int *)(iVar3 + 0x5c)" * (cast_expression "(int *)(iVar3 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x5c)" ( (binary_expression "iVar3 + 0x5c" identifier + number_literal) ))))) )) (compound_statement "{\n      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n    }" { (expression_statement "*(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;" (assignment_expression "*(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2" (pointer_expression "*(byte *)(iVar3 + 0x58)" * (cast_expression "(byte *)(iVar3 + 0x58)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x58)" ( (binary_expression "iVar3 + 0x58" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar3 + 0x58) | 2" (pointer_expression "*(byte *)(iVar3 + 0x58)" * (cast_expression "(byte *)(iVar3 + 0x58)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x58)" ( (binary_expression "iVar3 + 0x58" identifier + number_literal) )))) | number_literal)) ;) })) (goto_statement "goto code_r0x0003093e;" goto statement_identifier ;)) (case_statement "case '\b':\n    uVar14 = param_2[6];\n    param_2[6] = uVar14 + 1;\n    iVar16 = FUN_000300e0();\n    *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n    if ((char)param_3[1] == '\t') {\ncode_r0x00030fd0:\n      if (uVar14 < 9) {\n        *(uint *)(iVar3 + 0x54) = *(uint *)(iVar3 + 0x54) | 1 << ((byte)uVar14 & 0x1f);\n      }\n      cStack_64 = '\x11';\n      local_b0 = FUN_00028330(0,&puStack_68);\n      if (local_b0 != 0) {\n        *(uint *)(local_b0 + 0x14) = uVar14;\n        goto code_r0x0003093e;\n      }\n      break;\n    }\n    iVar16 = FUN_00031e70(param_4,param_5 + 1,param_6);\n    if (*param_6 == 0) {\n      if ((char)param_3[1] == '\t') goto code_r0x00030fd0;\n      if (iVar16 != 0) {\n        FUN_00025a40();\n      }\n      *param_6 = 8;\n    }\n    goto LAB_00030e58;" case (char_literal "'\b'" ' escape_sequence ') : (expression_statement "uVar14 = param_2[6];" (assignment_expression "uVar14 = param_2[6]" identifier = (subscript_expression "param_2[6]" identifier [ number_literal ])) ;) (expression_statement "param_2[6] = uVar14 + 1;" (assignment_expression "param_2[6] = uVar14 + 1" (subscript_expression "param_2[6]" identifier [ number_literal ]) = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) (expression_statement "iVar16 = FUN_000300e0();" (assignment_expression "iVar16 = FUN_000300e0()" identifier = (call_expression "FUN_000300e0()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;" (assignment_expression "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x28) + iVar16" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) + identifier)) ;) (if_statement "if ((char)param_3[1] == '\t') {\ncode_r0x00030fd0:\n      if (uVar14 < 9) {\n        *(uint *)(iVar3 + 0x54) = *(uint *)(iVar3 + 0x54) | 1 << ((byte)uVar14 & 0x1f);\n      }\n      cStack_64 = '\x11';\n      local_b0 = FUN_00028330(0,&puStack_68);\n      if (local_b0 != 0) {\n        *(uint *)(local_b0 + 0x14) = uVar14;\n        goto code_r0x0003093e;\n      }\n      break;\n    }" if (parenthesized_expression "((char)param_3[1] == '\t')" ( (binary_expression "(char)param_3[1] == '\t'" (cast_expression "(char)param_3[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_3[1]" identifier [ number_literal ])) == (char_literal "'\t'" ' escape_sequence ')) )) (compound_statement "{\ncode_r0x00030fd0:\n      if (uVar14 < 9) {\n        *(uint *)(iVar3 + 0x54) = *(uint *)(iVar3 + 0x54) | 1 << ((byte)uVar14 & 0x1f);\n      }\n      cStack_64 = '\x11';\n      local_b0 = FUN_00028330(0,&puStack_68);\n      if (local_b0 != 0) {\n        *(uint *)(local_b0 + 0x14) = uVar14;\n        goto code_r0x0003093e;\n      }\n      break;\n    }" { (labeled_statement "code_r0x00030fd0:\n      if (uVar14 < 9) {\n        *(uint *)(iVar3 + 0x54) = *(uint *)(iVar3 + 0x54) | 1 << ((byte)uVar14 & 0x1f);\n      }" statement_identifier : (if_statement "if (uVar14 < 9) {\n        *(uint *)(iVar3 + 0x54) = *(uint *)(iVar3 + 0x54) | 1 << ((byte)uVar14 & 0x1f);\n      }" if (parenthesized_expression "(uVar14 < 9)" ( (binary_expression "uVar14 < 9" identifier < number_literal) )) (compound_statement "{\n        *(uint *)(iVar3 + 0x54) = *(uint *)(iVar3 + 0x54) | 1 << ((byte)uVar14 & 0x1f);\n      }" { (expression_statement "*(uint *)(iVar3 + 0x54) = *(uint *)(iVar3 + 0x54) | 1 << ((byte)uVar14 & 0x1f);" (assignment_expression "*(uint *)(iVar3 + 0x54) = *(uint *)(iVar3 + 0x54) | 1 << ((byte)uVar14 & 0x1f)" (pointer_expression "*(uint *)(iVar3 + 0x54)" * (cast_expression "(uint *)(iVar3 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x54)" ( (binary_expression "iVar3 + 0x54" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar3 + 0x54) | 1 << ((byte)uVar14 & 0x1f)" (pointer_expression "*(uint *)(iVar3 + 0x54)" * (cast_expression "(uint *)(iVar3 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x54)" ( (binary_expression "iVar3 + 0x54" identifier + number_literal) )))) | (binary_expression "1 << ((byte)uVar14 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar14 & 0x1f)" ( (binary_expression "(byte)uVar14 & 0x1f" (cast_expression "(byte)uVar14" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))))) ;) }))) (expression_statement "cStack_64 = '\x11';" (assignment_expression "cStack_64 = '\x11'" identifier = (char_literal "'\x11'" ' escape_sequence ')) ;) (expression_statement "local_b0 = FUN_00028330(0,&puStack_68);" (assignment_expression "local_b0 = FUN_00028330(0,&puStack_68)" identifier = (call_expression "FUN_00028330(0,&puStack_68)" identifier (argument_list "(0,&puStack_68)" ( number_literal , (pointer_expression "&puStack_68" & identifier) )))) ;) (if_statement "if (local_b0 != 0) {\n        *(uint *)(local_b0 + 0x14) = uVar14;\n        goto code_r0x0003093e;\n      }" if (parenthesized_expression "(local_b0 != 0)" ( (binary_expression "local_b0 != 0" identifier != number_literal) )) (compound_statement "{\n        *(uint *)(local_b0 + 0x14) = uVar14;\n        goto code_r0x0003093e;\n      }" { (expression_statement "*(uint *)(local_b0 + 0x14) = uVar14;" (assignment_expression "*(uint *)(local_b0 + 0x14) = uVar14" (pointer_expression "*(uint *)(local_b0 + 0x14)" * (cast_expression "(uint *)(local_b0 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_b0 + 0x14)" ( (binary_expression "local_b0 + 0x14" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto code_r0x0003093e;" goto statement_identifier ;) })) (break_statement "break;" break ;) })) (expression_statement "iVar16 = FUN_00031e70(param_4,param_5 + 1,param_6);" (assignment_expression "iVar16 = FUN_00031e70(param_4,param_5 + 1,param_6)" identifier = (call_expression "FUN_00031e70(param_4,param_5 + 1,param_6)" identifier (argument_list "(param_4,param_5 + 1,param_6)" ( identifier , (binary_expression "param_5 + 1" identifier + number_literal) , identifier )))) ;) (if_statement "if (*param_6 == 0) {\n      if ((char)param_3[1] == '\t') goto code_r0x00030fd0;\n      if (iVar16 != 0) {\n        FUN_00025a40();\n      }\n      *param_6 = 8;\n    }" if (parenthesized_expression "(*param_6 == 0)" ( (binary_expression "*param_6 == 0" (pointer_expression "*param_6" * identifier) == number_literal) )) (compound_statement "{\n      if ((char)param_3[1] == '\t') goto code_r0x00030fd0;\n      if (iVar16 != 0) {\n        FUN_00025a40();\n      }\n      *param_6 = 8;\n    }" { (if_statement "if ((char)param_3[1] == '\t') goto code_r0x00030fd0;" if (parenthesized_expression "((char)param_3[1] == '\t')" ( (binary_expression "(char)param_3[1] == '\t'" (cast_expression "(char)param_3[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_3[1]" identifier [ number_literal ])) == (char_literal "'\t'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00030fd0;" goto statement_identifier ;)) (if_statement "if (iVar16 != 0) {\n        FUN_00025a40();\n      }" if (parenthesized_expression "(iVar16 != 0)" ( (binary_expression "iVar16 != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_00025a40();\n      }" { (expression_statement "FUN_00025a40();" (call_expression "FUN_00025a40()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*param_6 = 8;" (assignment_expression "*param_6 = 8" (pointer_expression "*param_6" * identifier) = number_literal) ;) })) (goto_statement "goto LAB_00030e58;" goto statement_identifier ;)) (case_statement "case '\t':\ncode_r0x000313dd:\n    if ((param_4 & 0x20000) == 0) {\n      local_b0 = 0;\n      *param_6 = 0x10;\n      goto LAB_00030965;\n    }" case (char_literal "'\t'" ' escape_sequence ') : (labeled_statement "code_r0x000313dd:\n    if ((param_4 & 0x20000) == 0) {\n      local_b0 = 0;\n      *param_6 = 0x10;\n      goto LAB_00030965;\n    }" statement_identifier : (if_statement "if ((param_4 & 0x20000) == 0) {\n      local_b0 = 0;\n      *param_6 = 0x10;\n      goto LAB_00030965;\n    }" if (parenthesized_expression "((param_4 & 0x20000) == 0)" ( (binary_expression "(param_4 & 0x20000) == 0" (parenthesized_expression "(param_4 & 0x20000)" ( (binary_expression "param_4 & 0x20000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      local_b0 = 0;\n      *param_6 = 0x10;\n      goto LAB_00030965;\n    }" { (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" identifier = number_literal) ;) (expression_statement "*param_6 = 0x10;" (assignment_expression "*param_6 = 0x10" (pointer_expression "*param_6" * identifier) = number_literal) ;) (goto_statement "goto LAB_00030965;" goto statement_identifier ;) })))) (case_statement "case '\x18':\ncode_r0x00030910:\n    *(char *)(param_3 + 1) = '\x01';\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\ncode_r0x0003093e:\n      iVar3 = FUN_000300e0();\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n      uVar14 = (uint)(byte)param_3[1];\n      do {\n        bVar17 = (byte)uVar14;\n        if ((0x17 < bVar17) || ((0x8c0800U >> (uVar14 & 0x1f) & 1) == 0)) goto LAB_00030965;\n        uVar6 = *(undefined4 *)(param_1 + 0x28);\n        uVar14 = *param_3;\n        uVar13 = param_3[1];\n        iStack_a4 = local_b0;\n        if (bVar17 == 0x17) {\n          uVar15 = FUN_000307e0();\n          if (uVar15 == 0xffffffff) {\n            if (((char)param_3[1] == '\x01') && ((char)*param_3 == ',')) {\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\ncode_r0x00030e40:\n            *param_6 = 10;\n          }\n          else {\n            if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }\ncode_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }\ncode_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;\n            *param_3 = uVar14;\n            param_3[1] = uVar13;\n            *(char *)(param_3 + 1) = '\x01';\n            iVar3 = local_b0;\ncode_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;\n          }\ncode_r0x00030e4a:\n          if (local_b0 == 0) goto LAB_00030e58;\ncode_r0x00030bea:\n          FUN_00025a40();\n          local_b0 = 0;\n          goto LAB_00030965;\n        }\n        uVar15 = (uint)(bVar17 == 0x12);\n        if (bVar17 == 0x13) {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 == 0) goto code_r0x00030d10;\n          if (*(char *)(local_b0 + 0x18) == '\x11') {\n            uStack_c0 = 1;\n            iStack_a4 = 0;\n            goto code_r0x00030c76;\n          }\n          uStack_c0 = 1;\n          cStack_64 = '\n';\n          iStack_a4 = 0;\ncode_r0x00030a18:\n          iVar3 = FUN_00028330(0,&puStack_68);\n          if (iVar3 == 0) {\ncode_r0x00030be0:\n            *param_6 = 0xc;\n            goto code_r0x00030bea;\n          }\n          for (iVar16 = uVar15 + 2; iVar16 <= (int)uStack_c0; iVar16 = iVar16 + 1) {\n            iVar3 = FUN_00028410();\n            cStack_64 = '\x10';\n            iVar4 = FUN_00028330(iVar3,&puStack_68);\n            if ((iVar3 == 0) || (iVar4 == 0)) goto code_r0x00030be0;\n            cStack_64 = '\n';\n            iVar3 = FUN_00028330(0,&puStack_68);\n            if (iVar3 == 0) goto code_r0x00030be0;\n          }\n          if (iStack_a4 != 0) {\n            cStack_64 = '\x10';\n            iVar3 = FUN_00028330(iVar3,&puStack_68);\n            goto code_r0x00030af2;\n          }\n        }\n        else {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 != 0) {\n            if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }\n            uStack_c0 = 0xffffffff;\n            uVar15 = 1;\ncode_r0x00030e9c:\n            iVar3 = FUN_00028410();\n            if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }\n            goto code_r0x00030be0;\n          }\ncode_r0x00030d10:\n          if (*param_6 != 0) goto LAB_00030e58;\ncode_r0x00030d1e:\n          local_b0 = 0;\n          iVar3 = local_b0;\n        }\ncode_r0x00030b08:\n        local_b0 = iVar3;\n        bVar17 = (byte)param_3[1];\n        uVar14 = (uint)bVar17;\n      } while (((param_4 & 0x1000000) == 0) || ((bVar17 != 0xb && (bVar17 != 0x17))));\n      if (local_b0 != 0) {\n        FUN_00025a40();\n      }\n      goto code_r0x00030b48;\n    }\n    break;" case (char_literal "'\x18'" ' escape_sequence ') : (labeled_statement "code_r0x00030910:\n    *(char *)(param_3 + 1) = '\x01';" statement_identifier : (expression_statement "*(char *)(param_3 + 1) = '\x01';" (assignment_expression "*(char *)(param_3 + 1) = '\x01'" (pointer_expression "*(char *)(param_3 + 1)" * (cast_expression "(char *)(param_3 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 1)" ( (binary_expression "param_3 + 1" identifier + number_literal) )))) = (char_literal "'\x01'" ' escape_sequence ')) ;)) (expression_statement "local_b0 = FUN_00028330(0,param_3);" (assignment_expression "local_b0 = FUN_00028330(0,param_3)" identifier = (call_expression "FUN_00028330(0,param_3)" identifier (argument_list "(0,param_3)" ( number_literal , identifier )))) ;) (if_statement "if (local_b0 != 0) {\ncode_r0x0003093e:\n      iVar3 = FUN_000300e0();\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n      uVar14 = (uint)(byte)param_3[1];\n      do {\n        bVar17 = (byte)uVar14;\n        if ((0x17 < bVar17) || ((0x8c0800U >> (uVar14 & 0x1f) & 1) == 0)) goto LAB_00030965;\n        uVar6 = *(undefined4 *)(param_1 + 0x28);\n        uVar14 = *param_3;\n        uVar13 = param_3[1];\n        iStack_a4 = local_b0;\n        if (bVar17 == 0x17) {\n          uVar15 = FUN_000307e0();\n          if (uVar15 == 0xffffffff) {\n            if (((char)param_3[1] == '\x01') && ((char)*param_3 == ',')) {\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\ncode_r0x00030e40:\n            *param_6 = 10;\n          }\n          else {\n            if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }\ncode_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }\ncode_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;\n            *param_3 = uVar14;\n            param_3[1] = uVar13;\n            *(char *)(param_3 + 1) = '\x01';\n            iVar3 = local_b0;\ncode_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;\n          }\ncode_r0x00030e4a:\n          if (local_b0 == 0) goto LAB_00030e58;\ncode_r0x00030bea:\n          FUN_00025a40();\n          local_b0 = 0;\n          goto LAB_00030965;\n        }\n        uVar15 = (uint)(bVar17 == 0x12);\n        if (bVar17 == 0x13) {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 == 0) goto code_r0x00030d10;\n          if (*(char *)(local_b0 + 0x18) == '\x11') {\n            uStack_c0 = 1;\n            iStack_a4 = 0;\n            goto code_r0x00030c76;\n          }\n          uStack_c0 = 1;\n          cStack_64 = '\n';\n          iStack_a4 = 0;\ncode_r0x00030a18:\n          iVar3 = FUN_00028330(0,&puStack_68);\n          if (iVar3 == 0) {\ncode_r0x00030be0:\n            *param_6 = 0xc;\n            goto code_r0x00030bea;\n          }\n          for (iVar16 = uVar15 + 2; iVar16 <= (int)uStack_c0; iVar16 = iVar16 + 1) {\n            iVar3 = FUN_00028410();\n            cStack_64 = '\x10';\n            iVar4 = FUN_00028330(iVar3,&puStack_68);\n            if ((iVar3 == 0) || (iVar4 == 0)) goto code_r0x00030be0;\n            cStack_64 = '\n';\n            iVar3 = FUN_00028330(0,&puStack_68);\n            if (iVar3 == 0) goto code_r0x00030be0;\n          }\n          if (iStack_a4 != 0) {\n            cStack_64 = '\x10';\n            iVar3 = FUN_00028330(iVar3,&puStack_68);\n            goto code_r0x00030af2;\n          }\n        }\n        else {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 != 0) {\n            if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }\n            uStack_c0 = 0xffffffff;\n            uVar15 = 1;\ncode_r0x00030e9c:\n            iVar3 = FUN_00028410();\n            if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }\n            goto code_r0x00030be0;\n          }\ncode_r0x00030d10:\n          if (*param_6 != 0) goto LAB_00030e58;\ncode_r0x00030d1e:\n          local_b0 = 0;\n          iVar3 = local_b0;\n        }\ncode_r0x00030b08:\n        local_b0 = iVar3;\n        bVar17 = (byte)param_3[1];\n        uVar14 = (uint)bVar17;\n      } while (((param_4 & 0x1000000) == 0) || ((bVar17 != 0xb && (bVar17 != 0x17))));\n      if (local_b0 != 0) {\n        FUN_00025a40();\n      }\n      goto code_r0x00030b48;\n    }" if (parenthesized_expression "(local_b0 != 0)" ( (binary_expression "local_b0 != 0" identifier != number_literal) )) (compound_statement "{\ncode_r0x0003093e:\n      iVar3 = FUN_000300e0();\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n      uVar14 = (uint)(byte)param_3[1];\n      do {\n        bVar17 = (byte)uVar14;\n        if ((0x17 < bVar17) || ((0x8c0800U >> (uVar14 & 0x1f) & 1) == 0)) goto LAB_00030965;\n        uVar6 = *(undefined4 *)(param_1 + 0x28);\n        uVar14 = *param_3;\n        uVar13 = param_3[1];\n        iStack_a4 = local_b0;\n        if (bVar17 == 0x17) {\n          uVar15 = FUN_000307e0();\n          if (uVar15 == 0xffffffff) {\n            if (((char)param_3[1] == '\x01') && ((char)*param_3 == ',')) {\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\ncode_r0x00030e40:\n            *param_6 = 10;\n          }\n          else {\n            if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }\ncode_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }\ncode_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;\n            *param_3 = uVar14;\n            param_3[1] = uVar13;\n            *(char *)(param_3 + 1) = '\x01';\n            iVar3 = local_b0;\ncode_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;\n          }\ncode_r0x00030e4a:\n          if (local_b0 == 0) goto LAB_00030e58;\ncode_r0x00030bea:\n          FUN_00025a40();\n          local_b0 = 0;\n          goto LAB_00030965;\n        }\n        uVar15 = (uint)(bVar17 == 0x12);\n        if (bVar17 == 0x13) {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 == 0) goto code_r0x00030d10;\n          if (*(char *)(local_b0 + 0x18) == '\x11') {\n            uStack_c0 = 1;\n            iStack_a4 = 0;\n            goto code_r0x00030c76;\n          }\n          uStack_c0 = 1;\n          cStack_64 = '\n';\n          iStack_a4 = 0;\ncode_r0x00030a18:\n          iVar3 = FUN_00028330(0,&puStack_68);\n          if (iVar3 == 0) {\ncode_r0x00030be0:\n            *param_6 = 0xc;\n            goto code_r0x00030bea;\n          }\n          for (iVar16 = uVar15 + 2; iVar16 <= (int)uStack_c0; iVar16 = iVar16 + 1) {\n            iVar3 = FUN_00028410();\n            cStack_64 = '\x10';\n            iVar4 = FUN_00028330(iVar3,&puStack_68);\n            if ((iVar3 == 0) || (iVar4 == 0)) goto code_r0x00030be0;\n            cStack_64 = '\n';\n            iVar3 = FUN_00028330(0,&puStack_68);\n            if (iVar3 == 0) goto code_r0x00030be0;\n          }\n          if (iStack_a4 != 0) {\n            cStack_64 = '\x10';\n            iVar3 = FUN_00028330(iVar3,&puStack_68);\n            goto code_r0x00030af2;\n          }\n        }\n        else {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 != 0) {\n            if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }\n            uStack_c0 = 0xffffffff;\n            uVar15 = 1;\ncode_r0x00030e9c:\n            iVar3 = FUN_00028410();\n            if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }\n            goto code_r0x00030be0;\n          }\ncode_r0x00030d10:\n          if (*param_6 != 0) goto LAB_00030e58;\ncode_r0x00030d1e:\n          local_b0 = 0;\n          iVar3 = local_b0;\n        }\ncode_r0x00030b08:\n        local_b0 = iVar3;\n        bVar17 = (byte)param_3[1];\n        uVar14 = (uint)bVar17;\n      } while (((param_4 & 0x1000000) == 0) || ((bVar17 != 0xb && (bVar17 != 0x17))));\n      if (local_b0 != 0) {\n        FUN_00025a40();\n      }\n      goto code_r0x00030b48;\n    }" { (labeled_statement "code_r0x0003093e:\n      iVar3 = FUN_000300e0();" statement_identifier : (expression_statement "iVar3 = FUN_000300e0();" (assignment_expression "iVar3 = FUN_000300e0()" identifier = (call_expression "FUN_000300e0()" identifier (argument_list "()" ( )))) ;)) (expression_statement "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;" (assignment_expression "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x28) + iVar3" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) + identifier)) ;) (expression_statement "uVar14 = (uint)(byte)param_3[1];" (assignment_expression "uVar14 = (uint)(byte)param_3[1]" identifier = (cast_expression "(uint)(byte)param_3[1]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)param_3[1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_3[1]" identifier [ number_literal ])))) ;) (do_statement "do {\n        bVar17 = (byte)uVar14;\n        if ((0x17 < bVar17) || ((0x8c0800U >> (uVar14 & 0x1f) & 1) == 0)) goto LAB_00030965;\n        uVar6 = *(undefined4 *)(param_1 + 0x28);\n        uVar14 = *param_3;\n        uVar13 = param_3[1];\n        iStack_a4 = local_b0;\n        if (bVar17 == 0x17) {\n          uVar15 = FUN_000307e0();\n          if (uVar15 == 0xffffffff) {\n            if (((char)param_3[1] == '\x01') && ((char)*param_3 == ',')) {\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\ncode_r0x00030e40:\n            *param_6 = 10;\n          }\n          else {\n            if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }\ncode_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }\ncode_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;\n            *param_3 = uVar14;\n            param_3[1] = uVar13;\n            *(char *)(param_3 + 1) = '\x01';\n            iVar3 = local_b0;\ncode_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;\n          }\ncode_r0x00030e4a:\n          if (local_b0 == 0) goto LAB_00030e58;\ncode_r0x00030bea:\n          FUN_00025a40();\n          local_b0 = 0;\n          goto LAB_00030965;\n        }\n        uVar15 = (uint)(bVar17 == 0x12);\n        if (bVar17 == 0x13) {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 == 0) goto code_r0x00030d10;\n          if (*(char *)(local_b0 + 0x18) == '\x11') {\n            uStack_c0 = 1;\n            iStack_a4 = 0;\n            goto code_r0x00030c76;\n          }\n          uStack_c0 = 1;\n          cStack_64 = '\n';\n          iStack_a4 = 0;\ncode_r0x00030a18:\n          iVar3 = FUN_00028330(0,&puStack_68);\n          if (iVar3 == 0) {\ncode_r0x00030be0:\n            *param_6 = 0xc;\n            goto code_r0x00030bea;\n          }\n          for (iVar16 = uVar15 + 2; iVar16 <= (int)uStack_c0; iVar16 = iVar16 + 1) {\n            iVar3 = FUN_00028410();\n            cStack_64 = '\x10';\n            iVar4 = FUN_00028330(iVar3,&puStack_68);\n            if ((iVar3 == 0) || (iVar4 == 0)) goto code_r0x00030be0;\n            cStack_64 = '\n';\n            iVar3 = FUN_00028330(0,&puStack_68);\n            if (iVar3 == 0) goto code_r0x00030be0;\n          }\n          if (iStack_a4 != 0) {\n            cStack_64 = '\x10';\n            iVar3 = FUN_00028330(iVar3,&puStack_68);\n            goto code_r0x00030af2;\n          }\n        }\n        else {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 != 0) {\n            if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }\n            uStack_c0 = 0xffffffff;\n            uVar15 = 1;\ncode_r0x00030e9c:\n            iVar3 = FUN_00028410();\n            if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }\n            goto code_r0x00030be0;\n          }\ncode_r0x00030d10:\n          if (*param_6 != 0) goto LAB_00030e58;\ncode_r0x00030d1e:\n          local_b0 = 0;\n          iVar3 = local_b0;\n        }\ncode_r0x00030b08:\n        local_b0 = iVar3;\n        bVar17 = (byte)param_3[1];\n        uVar14 = (uint)bVar17;\n      } while (((param_4 & 0x1000000) == 0) || ((bVar17 != 0xb && (bVar17 != 0x17))));" do (compound_statement "{\n        bVar17 = (byte)uVar14;\n        if ((0x17 < bVar17) || ((0x8c0800U >> (uVar14 & 0x1f) & 1) == 0)) goto LAB_00030965;\n        uVar6 = *(undefined4 *)(param_1 + 0x28);\n        uVar14 = *param_3;\n        uVar13 = param_3[1];\n        iStack_a4 = local_b0;\n        if (bVar17 == 0x17) {\n          uVar15 = FUN_000307e0();\n          if (uVar15 == 0xffffffff) {\n            if (((char)param_3[1] == '\x01') && ((char)*param_3 == ',')) {\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\ncode_r0x00030e40:\n            *param_6 = 10;\n          }\n          else {\n            if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }\ncode_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }\ncode_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;\n            *param_3 = uVar14;\n            param_3[1] = uVar13;\n            *(char *)(param_3 + 1) = '\x01';\n            iVar3 = local_b0;\ncode_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;\n          }\ncode_r0x00030e4a:\n          if (local_b0 == 0) goto LAB_00030e58;\ncode_r0x00030bea:\n          FUN_00025a40();\n          local_b0 = 0;\n          goto LAB_00030965;\n        }\n        uVar15 = (uint)(bVar17 == 0x12);\n        if (bVar17 == 0x13) {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 == 0) goto code_r0x00030d10;\n          if (*(char *)(local_b0 + 0x18) == '\x11') {\n            uStack_c0 = 1;\n            iStack_a4 = 0;\n            goto code_r0x00030c76;\n          }\n          uStack_c0 = 1;\n          cStack_64 = '\n';\n          iStack_a4 = 0;\ncode_r0x00030a18:\n          iVar3 = FUN_00028330(0,&puStack_68);\n          if (iVar3 == 0) {\ncode_r0x00030be0:\n            *param_6 = 0xc;\n            goto code_r0x00030bea;\n          }\n          for (iVar16 = uVar15 + 2; iVar16 <= (int)uStack_c0; iVar16 = iVar16 + 1) {\n            iVar3 = FUN_00028410();\n            cStack_64 = '\x10';\n            iVar4 = FUN_00028330(iVar3,&puStack_68);\n            if ((iVar3 == 0) || (iVar4 == 0)) goto code_r0x00030be0;\n            cStack_64 = '\n';\n            iVar3 = FUN_00028330(0,&puStack_68);\n            if (iVar3 == 0) goto code_r0x00030be0;\n          }\n          if (iStack_a4 != 0) {\n            cStack_64 = '\x10';\n            iVar3 = FUN_00028330(iVar3,&puStack_68);\n            goto code_r0x00030af2;\n          }\n        }\n        else {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 != 0) {\n            if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }\n            uStack_c0 = 0xffffffff;\n            uVar15 = 1;\ncode_r0x00030e9c:\n            iVar3 = FUN_00028410();\n            if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }\n            goto code_r0x00030be0;\n          }\ncode_r0x00030d10:\n          if (*param_6 != 0) goto LAB_00030e58;\ncode_r0x00030d1e:\n          local_b0 = 0;\n          iVar3 = local_b0;\n        }\ncode_r0x00030b08:\n        local_b0 = iVar3;\n        bVar17 = (byte)param_3[1];\n        uVar14 = (uint)bVar17;\n      }" { (expression_statement "bVar17 = (byte)uVar14;" (assignment_expression "bVar17 = (byte)uVar14" identifier = (cast_expression "(byte)uVar14" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (if_statement "if ((0x17 < bVar17) || ((0x8c0800U >> (uVar14 & 0x1f) & 1) == 0)) goto LAB_00030965;" if (parenthesized_expression "((0x17 < bVar17) || ((0x8c0800U >> (uVar14 & 0x1f) & 1) == 0))" ( (binary_expression "(0x17 < bVar17) || ((0x8c0800U >> (uVar14 & 0x1f) & 1) == 0)" (parenthesized_expression "(0x17 < bVar17)" ( (binary_expression "0x17 < bVar17" number_literal < identifier) )) || (parenthesized_expression "((0x8c0800U >> (uVar14 & 0x1f) & 1) == 0)" ( (binary_expression "(0x8c0800U >> (uVar14 & 0x1f) & 1) == 0" (parenthesized_expression "(0x8c0800U >> (uVar14 & 0x1f) & 1)" ( (binary_expression "0x8c0800U >> (uVar14 & 0x1f) & 1" (binary_expression "0x8c0800U >> (uVar14 & 0x1f)" number_literal >> (parenthesized_expression "(uVar14 & 0x1f)" ( (binary_expression "uVar14 & 0x1f" identifier & number_literal) ))) & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_00030965;" goto statement_identifier ;)) (expression_statement "uVar6 = *(undefined4 *)(param_1 + 0x28);" (assignment_expression "uVar6 = *(undefined4 *)(param_1 + 0x28)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x28)" * (cast_expression "(undefined4 *)(param_1 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = *param_3;" (assignment_expression "uVar14 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "uVar13 = param_3[1];" (assignment_expression "uVar13 = param_3[1]" identifier = (subscript_expression "param_3[1]" identifier [ number_literal ])) ;) (expression_statement "iStack_a4 = local_b0;" (assignment_expression "iStack_a4 = local_b0" identifier = identifier) ;) (if_statement "if (bVar17 == 0x17) {\n          uVar15 = FUN_000307e0();\n          if (uVar15 == 0xffffffff) {\n            if (((char)param_3[1] == '\x01') && ((char)*param_3 == ',')) {\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\ncode_r0x00030e40:\n            *param_6 = 10;\n          }\n          else {\n            if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }\ncode_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }\ncode_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;\n            *param_3 = uVar14;\n            param_3[1] = uVar13;\n            *(char *)(param_3 + 1) = '\x01';\n            iVar3 = local_b0;\ncode_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;\n          }\ncode_r0x00030e4a:\n          if (local_b0 == 0) goto LAB_00030e58;\ncode_r0x00030bea:\n          FUN_00025a40();\n          local_b0 = 0;\n          goto LAB_00030965;\n        }" if (parenthesized_expression "(bVar17 == 0x17)" ( (binary_expression "bVar17 == 0x17" identifier == number_literal) )) (compound_statement "{\n          uVar15 = FUN_000307e0();\n          if (uVar15 == 0xffffffff) {\n            if (((char)param_3[1] == '\x01') && ((char)*param_3 == ',')) {\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\ncode_r0x00030e40:\n            *param_6 = 10;\n          }\n          else {\n            if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }\ncode_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }\ncode_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;\n            *param_3 = uVar14;\n            param_3[1] = uVar13;\n            *(char *)(param_3 + 1) = '\x01';\n            iVar3 = local_b0;\ncode_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;\n          }\ncode_r0x00030e4a:\n          if (local_b0 == 0) goto LAB_00030e58;\ncode_r0x00030bea:\n          FUN_00025a40();\n          local_b0 = 0;\n          goto LAB_00030965;\n        }" { (expression_statement "uVar15 = FUN_000307e0();" (assignment_expression "uVar15 = FUN_000307e0()" identifier = (call_expression "FUN_000307e0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (uVar15 == 0xffffffff) {\n            if (((char)param_3[1] == '\x01') && ((char)*param_3 == ',')) {\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\ncode_r0x00030e40:\n            *param_6 = 10;\n          }\n          else {\n            if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }\ncode_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }\ncode_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;\n            *param_3 = uVar14;\n            param_3[1] = uVar13;\n            *(char *)(param_3 + 1) = '\x01';\n            iVar3 = local_b0;\ncode_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;\n          }" if (parenthesized_expression "(uVar15 == 0xffffffff)" ( (binary_expression "uVar15 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n            if (((char)param_3[1] == '\x01') && ((char)*param_3 == ',')) {\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\ncode_r0x00030e40:\n            *param_6 = 10;\n          }" { (if_statement "if (((char)param_3[1] == '\x01') && ((char)*param_3 == ',')) {\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }" if (parenthesized_expression "(((char)param_3[1] == '\x01') && ((char)*param_3 == ','))" ( (binary_expression "((char)param_3[1] == '\x01') && ((char)*param_3 == ',')" (parenthesized_expression "((char)param_3[1] == '\x01')" ( (binary_expression "(char)param_3[1] == '\x01'" (cast_expression "(char)param_3[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_3[1]" identifier [ number_literal ])) == (char_literal "'\x01'" ' escape_sequence ')) )) && (parenthesized_expression "((char)*param_3 == ',')" ( (binary_expression "(char)*param_3 == ','" (cast_expression "(char)*param_3" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*param_3" * identifier)) == (char_literal "','" ' character ')) ))) )) (compound_statement "{\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }" { (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) (labeled_statement "code_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();" statement_identifier : (expression_statement "uStack_c0 = FUN_000307e0();" (assignment_expression "uStack_c0 = FUN_000307e0()" identifier = (call_expression "FUN_000307e0()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;" if (parenthesized_expression "(uStack_c0 == 0xfffffffe)" ( (binary_expression "uStack_c0 == 0xfffffffe" identifier == number_literal) )) (goto_statement "goto code_r0x00030cd8;" goto statement_identifier ;)) (if_statement "if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }" if (parenthesized_expression "(((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18'))" ( (binary_expression "((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')" (parenthesized_expression "((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0))" ( (binary_expression "(uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)" (parenthesized_expression "(uStack_c0 == 0xffffffff)" ( (binary_expression "uStack_c0 == 0xffffffff" identifier == number_literal) )) || (parenthesized_expression "((int)uVar15 <= (int)uStack_c0)" ( (binary_expression "(int)uVar15 <= (int)uStack_c0" (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)uStack_c0" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) && (parenthesized_expression "((char)param_3[1] == '\x18')" ( (binary_expression "(char)param_3[1] == '\x18'" (cast_expression "(char)param_3[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_3[1]" identifier [ number_literal ])) == (char_literal "'\x18'" ' escape_sequence ')) ))) )) (compound_statement "{\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }" { (expression_statement "uVar14 = uVar15;" (assignment_expression "uVar14 = uVar15" identifier = identifier) ;) (if_statement "if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;" if (parenthesized_expression "(uStack_c0 != 0xffffffff)" ( (binary_expression "uStack_c0 != 0xffffffff" identifier != number_literal) )) (goto_statement "goto code_r0x00030dfc;" goto statement_identifier ;)) (goto_statement "goto joined_r0x00030e0b;" goto statement_identifier ;) })) })) (labeled_statement "code_r0x00030e40:\n            *param_6 = 10;" statement_identifier : (expression_statement "*param_6 = 10;" (assignment_expression "*param_6 = 10" (pointer_expression "*param_6" * identifier) = number_literal) ;)) }) (else_clause "else {\n            if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }\ncode_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }\ncode_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;\n            *param_3 = uVar14;\n            param_3[1] = uVar13;\n            *(char *)(param_3 + 1) = '\x01';\n            iVar3 = local_b0;\ncode_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;\n          }" else (compound_statement "{\n            if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }\ncode_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }\ncode_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;\n            *param_3 = uVar14;\n            param_3[1] = uVar13;\n            *(char *)(param_3 + 1) = '\x01';\n            iVar3 = local_b0;\ncode_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;\n          }" { (if_statement "if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }" if (parenthesized_expression "(uVar15 != 0xfffffffe)" ( (binary_expression "uVar15 != 0xfffffffe" identifier != number_literal) )) (compound_statement "{\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }" { (expression_statement "uStack_c0 = uVar15;" (assignment_expression "uStack_c0 = uVar15" identifier = identifier) ;) (if_statement "if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }" if (parenthesized_expression "((char)param_3[1] != '\x18')" ( (binary_expression "(char)param_3[1] != '\x18'" (cast_expression "(char)param_3[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_3[1]" identifier [ number_literal ])) != (char_literal "'\x18'" ' escape_sequence ')) )) (compound_statement "{\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }" { (if_statement "if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;" if (parenthesized_expression "((char)param_3[1] != '\x01')" ( (binary_expression "(char)param_3[1] != '\x01'" (cast_expression "(char)param_3[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_3[1]" identifier [ number_literal ])) != (char_literal "'\x01'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00030cd8;" goto statement_identifier ;)) (if_statement "if ((char)*param_3 == ',') goto code_r0x00030d4d;" if (parenthesized_expression "((char)*param_3 == ',')" ( (binary_expression "(char)*param_3 == ','" (cast_expression "(char)*param_3" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*param_3" * identifier)) == (char_literal "','" ' character ')) )) (goto_statement "goto code_r0x00030d4d;" goto statement_identifier ;)) (if_statement "if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;" if (parenthesized_expression "((param_4 & 0x200000) == 0)" ( (binary_expression "(param_4 & 0x200000) == 0" (parenthesized_expression "(param_4 & 0x200000)" ( (binary_expression "param_4 & 0x200000" identifier & number_literal) )) == number_literal) )) (goto_statement "goto code_r0x00030e40;" goto statement_identifier ;)) (goto_statement "goto code_r0x00030ce9;" goto statement_identifier ;) })) (labeled_statement "code_r0x00030dfc:\n              uVar14 = uStack_c0;" statement_identifier : (expression_statement "uVar14 = uStack_c0;" (assignment_expression "uVar14 = uStack_c0" identifier = identifier) ;)) (labeled_statement "joined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }" statement_identifier : (if_statement "if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }" if (parenthesized_expression "(0x7fff < (int)uVar14)" ( (binary_expression "0x7fff < (int)uVar14" number_literal < (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }" { (expression_statement "*param_6 = 0xf;" (assignment_expression "*param_6 = 0xf" (pointer_expression "*param_6" * identifier) = number_literal) ;) (goto_statement "goto code_r0x00030e4a;" goto statement_identifier ;) }))) (expression_statement "iVar3 = FUN_000300e0();" (assignment_expression "iVar3 = FUN_000300e0()" identifier = (call_expression "FUN_000300e0()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;" (assignment_expression "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x28) + iVar3" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) + identifier)) ;) (if_statement "if (local_b0 == 0) goto code_r0x00030d10;" if (parenthesized_expression "(local_b0 == 0)" ( (binary_expression "local_b0 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x00030d10;" goto statement_identifier ;)) (if_statement "if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }" if (parenthesized_expression "(uStack_c0 != 0 || uVar15 != 0)" ( (binary_expression "uStack_c0 != 0 || uVar15 != 0" (binary_expression "uStack_c0 != 0" identifier != number_literal) || (binary_expression "uVar15 != 0" identifier != number_literal)) )) (compound_statement "{\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }" { (if_statement "if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }" if (parenthesized_expression "((int)uVar15 < 1)" ( (binary_expression "(int)uVar15 < 1" (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }" { (expression_statement "iStack_a4 = 0;" (assignment_expression "iStack_a4 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = local_b0;" (assignment_expression "iVar3 = local_b0" identifier = identifier) ;) (goto_statement "goto code_r0x00030eb9;" goto statement_identifier ;) })) (if_statement "if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }" if (parenthesized_expression "(uVar15 != 1)" ( (binary_expression "uVar15 != 1" identifier != number_literal) )) (compound_statement "{\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }" { (expression_statement "iVar3 = 2;" (assignment_expression "iVar3 = 2" identifier = number_literal) ;) (do_statement "do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);" do (compound_statement "{\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  }" { (expression_statement "iVar16 = FUN_00028410();" (assignment_expression "iVar16 = FUN_00028410()" identifier = (call_expression "FUN_00028410()" identifier (argument_list "()" ( )))) ;) (expression_statement "cStack_64 = '\x10';" (assignment_expression "cStack_64 = '\x10'" identifier = (char_literal "'\x10'" ' escape_sequence ')) ;) (expression_statement "iStack_a4 = FUN_00028330(iVar16,&puStack_68);" (assignment_expression "iStack_a4 = FUN_00028330(iVar16,&puStack_68)" identifier = (call_expression "FUN_00028330(iVar16,&puStack_68)" identifier (argument_list "(iVar16,&puStack_68)" ( identifier , (pointer_expression "&puStack_68" & identifier) )))) ;) (if_statement "if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;" if (parenthesized_expression "((iVar16 == 0) || (iStack_a4 == 0))" ( (binary_expression "(iVar16 == 0) || (iStack_a4 == 0)" (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) || (parenthesized_expression "(iStack_a4 == 0)" ( (binary_expression "iStack_a4 == 0" identifier == number_literal) ))) )) (goto_statement "goto code_r0x00030be0;" goto statement_identifier ;)) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar3 <= (int)uVar15)" ( (binary_expression "iVar3 <= (int)uVar15" identifier <= (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "iVar3 = iStack_a4;" (assignment_expression "iVar3 = iStack_a4" identifier = identifier) ;) (if_statement "if (uStack_c0 != uVar15) goto code_r0x00030e9c;" if (parenthesized_expression "(uStack_c0 != uVar15)" ( (binary_expression "uStack_c0 != uVar15" identifier != identifier) )) (goto_statement "goto code_r0x00030e9c;" goto statement_identifier ;)) (goto_statement "goto code_r0x00030b08;" goto statement_identifier ;) })) (expression_statement "FUN_00025a40();" (call_expression "FUN_00025a40()" identifier (argument_list "()" ( ))) ;) (if_statement "if (*param_6 == 0) goto code_r0x00030d1e;" if (parenthesized_expression "(*param_6 == 0)" ( (binary_expression "*param_6 == 0" (pointer_expression "*param_6" * identifier) == number_literal) )) (goto_statement "goto code_r0x00030d1e;" goto statement_identifier ;)) (goto_statement "goto code_r0x00030bea;" goto statement_identifier ;) })) (labeled_statement "code_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }" statement_identifier : (if_statement "if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }" if (parenthesized_expression "((param_4 & 0x200000) == 0)" ( (binary_expression "(param_4 & 0x200000) == 0" (parenthesized_expression "(param_4 & 0x200000)" ( (binary_expression "param_4 & 0x200000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }" { (if_statement "if ((char)param_3[1] != '\x02') goto code_r0x00030e40;" if (parenthesized_expression "((char)param_3[1] != '\x02')" ( (binary_expression "(char)param_3[1] != '\x02'" (cast_expression "(char)param_3[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_3[1]" identifier [ number_literal ])) != (char_literal "'\x02'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00030e40;" goto statement_identifier ;)) (expression_statement "*param_6 = 9;" (assignment_expression "*param_6 = 9" (pointer_expression "*param_6" * identifier) = number_literal) ;) (goto_statement "goto code_r0x00030e4a;" goto statement_identifier ;) }))) (labeled_statement "code_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;" statement_identifier : (expression_statement "*(undefined4 *)(param_1 + 0x28) = uVar6;" (assignment_expression "*(undefined4 *)(param_1 + 0x28) = uVar6" (pointer_expression "*(undefined4 *)(param_1 + 0x28)" * (cast_expression "(undefined4 *)(param_1 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*param_3 = uVar14;" (assignment_expression "*param_3 = uVar14" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "param_3[1] = uVar13;" (assignment_expression "param_3[1] = uVar13" (subscript_expression "param_3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(char *)(param_3 + 1) = '\x01';" (assignment_expression "*(char *)(param_3 + 1) = '\x01'" (pointer_expression "*(char *)(param_3 + 1)" * (cast_expression "(char *)(param_3 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 1)" ( (binary_expression "param_3 + 1" identifier + number_literal) )))) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "iVar3 = local_b0;" (assignment_expression "iVar3 = local_b0" identifier = identifier) ;) (labeled_statement "code_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;" statement_identifier : (if_statement "if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;" if (parenthesized_expression "((*param_6 == 0) || (iVar3 != 0))" ( (binary_expression "(*param_6 == 0) || (iVar3 != 0)" (parenthesized_expression "(*param_6 == 0)" ( (binary_expression "*param_6 == 0" (pointer_expression "*param_6" * identifier) == number_literal) )) || (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) ))) )) (goto_statement "goto code_r0x00030b08;" goto statement_identifier ;))) }))) (labeled_statement "code_r0x00030e4a:\n          if (local_b0 == 0) goto LAB_00030e58;" statement_identifier : (if_statement "if (local_b0 == 0) goto LAB_00030e58;" if (parenthesized_expression "(local_b0 == 0)" ( (binary_expression "local_b0 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00030e58;" goto statement_identifier ;))) (labeled_statement "code_r0x00030bea:\n          FUN_00025a40();" statement_identifier : (expression_statement "FUN_00025a40();" (call_expression "FUN_00025a40()" identifier (argument_list "()" ( ))) ;)) (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00030965;" goto statement_identifier ;) })) (expression_statement "uVar15 = (uint)(bVar17 == 0x12);" (assignment_expression "uVar15 = (uint)(bVar17 == 0x12)" identifier = (call_expression "(uint)(bVar17 == 0x12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(bVar17 == 0x12)" ( (binary_expression "bVar17 == 0x12" identifier == number_literal) )))) ;) (if_statement "if (bVar17 == 0x13) {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 == 0) goto code_r0x00030d10;\n          if (*(char *)(local_b0 + 0x18) == '\x11') {\n            uStack_c0 = 1;\n            iStack_a4 = 0;\n            goto code_r0x00030c76;\n          }\n          uStack_c0 = 1;\n          cStack_64 = '\n';\n          iStack_a4 = 0;\ncode_r0x00030a18:\n          iVar3 = FUN_00028330(0,&puStack_68);\n          if (iVar3 == 0) {\ncode_r0x00030be0:\n            *param_6 = 0xc;\n            goto code_r0x00030bea;\n          }\n          for (iVar16 = uVar15 + 2; iVar16 <= (int)uStack_c0; iVar16 = iVar16 + 1) {\n            iVar3 = FUN_00028410();\n            cStack_64 = '\x10';\n            iVar4 = FUN_00028330(iVar3,&puStack_68);\n            if ((iVar3 == 0) || (iVar4 == 0)) goto code_r0x00030be0;\n            cStack_64 = '\n';\n            iVar3 = FUN_00028330(0,&puStack_68);\n            if (iVar3 == 0) goto code_r0x00030be0;\n          }\n          if (iStack_a4 != 0) {\n            cStack_64 = '\x10';\n            iVar3 = FUN_00028330(iVar3,&puStack_68);\n            goto code_r0x00030af2;\n          }\n        }\n        else {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 != 0) {\n            if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }\n            uStack_c0 = 0xffffffff;\n            uVar15 = 1;\ncode_r0x00030e9c:\n            iVar3 = FUN_00028410();\n            if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }\n            goto code_r0x00030be0;\n          }\ncode_r0x00030d10:\n          if (*param_6 != 0) goto LAB_00030e58;\ncode_r0x00030d1e:\n          local_b0 = 0;\n          iVar3 = local_b0;\n        }" if (parenthesized_expression "(bVar17 == 0x13)" ( (binary_expression "bVar17 == 0x13" identifier == number_literal) )) (compound_statement "{\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 == 0) goto code_r0x00030d10;\n          if (*(char *)(local_b0 + 0x18) == '\x11') {\n            uStack_c0 = 1;\n            iStack_a4 = 0;\n            goto code_r0x00030c76;\n          }\n          uStack_c0 = 1;\n          cStack_64 = '\n';\n          iStack_a4 = 0;\ncode_r0x00030a18:\n          iVar3 = FUN_00028330(0,&puStack_68);\n          if (iVar3 == 0) {\ncode_r0x00030be0:\n            *param_6 = 0xc;\n            goto code_r0x00030bea;\n          }\n          for (iVar16 = uVar15 + 2; iVar16 <= (int)uStack_c0; iVar16 = iVar16 + 1) {\n            iVar3 = FUN_00028410();\n            cStack_64 = '\x10';\n            iVar4 = FUN_00028330(iVar3,&puStack_68);\n            if ((iVar3 == 0) || (iVar4 == 0)) goto code_r0x00030be0;\n            cStack_64 = '\n';\n            iVar3 = FUN_00028330(0,&puStack_68);\n            if (iVar3 == 0) goto code_r0x00030be0;\n          }\n          if (iStack_a4 != 0) {\n            cStack_64 = '\x10';\n            iVar3 = FUN_00028330(iVar3,&puStack_68);\n            goto code_r0x00030af2;\n          }\n        }" { (expression_statement "iVar3 = FUN_000300e0();" (assignment_expression "iVar3 = FUN_000300e0()" identifier = (call_expression "FUN_000300e0()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;" (assignment_expression "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x28) + iVar3" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) + identifier)) ;) (if_statement "if (local_b0 == 0) goto code_r0x00030d10;" if (parenthesized_expression "(local_b0 == 0)" ( (binary_expression "local_b0 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x00030d10;" goto statement_identifier ;)) (if_statement "if (*(char *)(local_b0 + 0x18) == '\x11') {\n            uStack_c0 = 1;\n            iStack_a4 = 0;\n            goto code_r0x00030c76;\n          }" if (parenthesized_expression "(*(char *)(local_b0 + 0x18) == '\x11')" ( (binary_expression "*(char *)(local_b0 + 0x18) == '\x11'" (pointer_expression "*(char *)(local_b0 + 0x18)" * (cast_expression "(char *)(local_b0 + 0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_b0 + 0x18)" ( (binary_expression "local_b0 + 0x18" identifier + number_literal) )))) == (char_literal "'\x11'" ' escape_sequence ')) )) (compound_statement "{\n            uStack_c0 = 1;\n            iStack_a4 = 0;\n            goto code_r0x00030c76;\n          }" { (expression_statement "uStack_c0 = 1;" (assignment_expression "uStack_c0 = 1" identifier = number_literal) ;) (expression_statement "iStack_a4 = 0;" (assignment_expression "iStack_a4 = 0" identifier = number_literal) ;) (goto_statement "goto code_r0x00030c76;" goto statement_identifier ;) })) (expression_statement "uStack_c0 = 1;" (assignment_expression "uStack_c0 = 1" identifier = number_literal) ;) (expression_statement "cStack_64 = '\n';" (assignment_expression "cStack_64 = '\n'" identifier = (char_literal "'\n'" ' escape_sequence ')) ;) (expression_statement "iStack_a4 = 0;" (assignment_expression "iStack_a4 = 0" identifier = number_literal) ;) (labeled_statement "code_r0x00030a18:\n          iVar3 = FUN_00028330(0,&puStack_68);" statement_identifier : (expression_statement "iVar3 = FUN_00028330(0,&puStack_68);" (assignment_expression "iVar3 = FUN_00028330(0,&puStack_68)" identifier = (call_expression "FUN_00028330(0,&puStack_68)" identifier (argument_list "(0,&puStack_68)" ( number_literal , (pointer_expression "&puStack_68" & identifier) )))) ;)) (if_statement "if (iVar3 == 0) {\ncode_r0x00030be0:\n            *param_6 = 0xc;\n            goto code_r0x00030bea;\n          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\ncode_r0x00030be0:\n            *param_6 = 0xc;\n            goto code_r0x00030bea;\n          }" { (labeled_statement "code_r0x00030be0:\n            *param_6 = 0xc;" statement_identifier : (expression_statement "*param_6 = 0xc;" (assignment_expression "*param_6 = 0xc" (pointer_expression "*param_6" * identifier) = number_literal) ;)) (goto_statement "goto code_r0x00030bea;" goto statement_identifier ;) })) (for_statement "for (iVar16 = uVar15 + 2; iVar16 <= (int)uStack_c0; iVar16 = iVar16 + 1) {\n            iVar3 = FUN_00028410();\n            cStack_64 = '\x10';\n            iVar4 = FUN_00028330(iVar3,&puStack_68);\n            if ((iVar3 == 0) || (iVar4 == 0)) goto code_r0x00030be0;\n            cStack_64 = '\n';\n            iVar3 = FUN_00028330(0,&puStack_68);\n            if (iVar3 == 0) goto code_r0x00030be0;\n          }" for ( (assignment_expression "iVar16 = uVar15 + 2" identifier = (binary_expression "uVar15 + 2" identifier + number_literal)) ; (binary_expression "iVar16 <= (int)uStack_c0" identifier <= (cast_expression "(int)uStack_c0" ( (type_descriptor "int" primitive_type) ) identifier)) ; (assignment_expression "iVar16 = iVar16 + 1" identifier = (binary_expression "iVar16 + 1" identifier + number_literal)) ) (compound_statement "{\n            iVar3 = FUN_00028410();\n            cStack_64 = '\x10';\n            iVar4 = FUN_00028330(iVar3,&puStack_68);\n            if ((iVar3 == 0) || (iVar4 == 0)) goto code_r0x00030be0;\n            cStack_64 = '\n';\n            iVar3 = FUN_00028330(0,&puStack_68);\n            if (iVar3 == 0) goto code_r0x00030be0;\n          }" { (expression_statement "iVar3 = FUN_00028410();" (assignment_expression "iVar3 = FUN_00028410()" identifier = (call_expression "FUN_00028410()" identifier (argument_list "()" ( )))) ;) (expression_statement "cStack_64 = '\x10';" (assignment_expression "cStack_64 = '\x10'" identifier = (char_literal "'\x10'" ' escape_sequence ')) ;) (expression_statement "iVar4 = FUN_00028330(iVar3,&puStack_68);" (assignment_expression "iVar4 = FUN_00028330(iVar3,&puStack_68)" identifier = (call_expression "FUN_00028330(iVar3,&puStack_68)" identifier (argument_list "(iVar3,&puStack_68)" ( identifier , (pointer_expression "&puStack_68" & identifier) )))) ;) (if_statement "if ((iVar3 == 0) || (iVar4 == 0)) goto code_r0x00030be0;" if (parenthesized_expression "((iVar3 == 0) || (iVar4 == 0))" ( (binary_expression "(iVar3 == 0) || (iVar4 == 0)" (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) ))) )) (goto_statement "goto code_r0x00030be0;" goto statement_identifier ;)) (expression_statement "cStack_64 = '\n';" (assignment_expression "cStack_64 = '\n'" identifier = (char_literal "'\n'" ' escape_sequence ')) ;) (expression_statement "iVar3 = FUN_00028330(0,&puStack_68);" (assignment_expression "iVar3 = FUN_00028330(0,&puStack_68)" identifier = (call_expression "FUN_00028330(0,&puStack_68)" identifier (argument_list "(0,&puStack_68)" ( number_literal , (pointer_expression "&puStack_68" & identifier) )))) ;) (if_statement "if (iVar3 == 0) goto code_r0x00030be0;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x00030be0;" goto statement_identifier ;)) })) (if_statement "if (iStack_a4 != 0) {\n            cStack_64 = '\x10';\n            iVar3 = FUN_00028330(iVar3,&puStack_68);\n            goto code_r0x00030af2;\n          }" if (parenthesized_expression "(iStack_a4 != 0)" ( (binary_expression "iStack_a4 != 0" identifier != number_literal) )) (compound_statement "{\n            cStack_64 = '\x10';\n            iVar3 = FUN_00028330(iVar3,&puStack_68);\n            goto code_r0x00030af2;\n          }" { (expression_statement "cStack_64 = '\x10';" (assignment_expression "cStack_64 = '\x10'" identifier = (char_literal "'\x10'" ' escape_sequence ')) ;) (expression_statement "iVar3 = FUN_00028330(iVar3,&puStack_68);" (assignment_expression "iVar3 = FUN_00028330(iVar3,&puStack_68)" identifier = (call_expression "FUN_00028330(iVar3,&puStack_68)" identifier (argument_list "(iVar3,&puStack_68)" ( identifier , (pointer_expression "&puStack_68" & identifier) )))) ;) (goto_statement "goto code_r0x00030af2;" goto statement_identifier ;) })) }) (else_clause "else {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 != 0) {\n            if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }\n            uStack_c0 = 0xffffffff;\n            uVar15 = 1;\ncode_r0x00030e9c:\n            iVar3 = FUN_00028410();\n            if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }\n            goto code_r0x00030be0;\n          }\ncode_r0x00030d10:\n          if (*param_6 != 0) goto LAB_00030e58;\ncode_r0x00030d1e:\n          local_b0 = 0;\n          iVar3 = local_b0;\n        }" else (compound_statement "{\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 != 0) {\n            if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }\n            uStack_c0 = 0xffffffff;\n            uVar15 = 1;\ncode_r0x00030e9c:\n            iVar3 = FUN_00028410();\n            if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }\n            goto code_r0x00030be0;\n          }\ncode_r0x00030d10:\n          if (*param_6 != 0) goto LAB_00030e58;\ncode_r0x00030d1e:\n          local_b0 = 0;\n          iVar3 = local_b0;\n        }" { (expression_statement "iVar3 = FUN_000300e0();" (assignment_expression "iVar3 = FUN_000300e0()" identifier = (call_expression "FUN_000300e0()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;" (assignment_expression "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x28) + iVar3" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) + identifier)) ;) (if_statement "if (local_b0 != 0) {\n            if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }\n            uStack_c0 = 0xffffffff;\n            uVar15 = 1;\ncode_r0x00030e9c:\n            iVar3 = FUN_00028410();\n            if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }\n            goto code_r0x00030be0;\n          }" if (parenthesized_expression "(local_b0 != 0)" ( (binary_expression "local_b0 != 0" identifier != number_literal) )) (compound_statement "{\n            if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }\n            uStack_c0 = 0xffffffff;\n            uVar15 = 1;\ncode_r0x00030e9c:\n            iVar3 = FUN_00028410();\n            if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }\n            goto code_r0x00030be0;\n          }" { (if_statement "if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }" if (parenthesized_expression "(bVar17 != 0x12)" ( (binary_expression "bVar17 != 0x12" identifier != number_literal) )) (compound_statement "{\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }" { (if_statement "if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }" if (parenthesized_expression "(*(char *)(local_b0 + 0x18) == '\x11')" ( (binary_expression "*(char *)(local_b0 + 0x18) == '\x11'" (pointer_expression "*(char *)(local_b0 + 0x18)" * (cast_expression "(char *)(local_b0 + 0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_b0 + 0x18)" ( (binary_expression "local_b0 + 0x18" identifier + number_literal) )))) == (char_literal "'\x11'" ' escape_sequence ')) )) (compound_statement "{\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }" { (expression_statement "uStack_c0 = 0xffffffff;" (assignment_expression "uStack_c0 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) (expression_statement "iStack_a4 = 0;" (assignment_expression "iStack_a4 = 0" identifier = number_literal) ;) (labeled_statement "code_r0x00030c76:\n                FUN_00025a40();" statement_identifier : (expression_statement "FUN_00025a40();" (call_expression "FUN_00025a40()" identifier (argument_list "()" ( ))) ;)) (goto_statement "goto code_r0x00030c8a;" goto statement_identifier ;) })) (expression_statement "uStack_c0 = 0xffffffff;" (assignment_expression "uStack_c0 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) (expression_statement "iStack_a4 = 0;" (assignment_expression "iStack_a4 = 0" identifier = number_literal) ;) (labeled_statement "code_r0x00030a13:\n              cStack_64 = '\v';" statement_identifier : (expression_statement "cStack_64 = '\v';" (assignment_expression "cStack_64 = '\v'" identifier = (char_literal "'\v'" ' escape_sequence ')) ;)) (goto_statement "goto code_r0x00030a18;" goto statement_identifier ;) })) (expression_statement "uStack_c0 = 0xffffffff;" (assignment_expression "uStack_c0 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar15 = 1;" (assignment_expression "uVar15 = 1" identifier = number_literal) ;) (labeled_statement "code_r0x00030e9c:\n            iVar3 = FUN_00028410();" statement_identifier : (expression_statement "iVar3 = FUN_00028410();" (assignment_expression "iVar3 = FUN_00028410()" identifier = (call_expression "FUN_00028410()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }" { (labeled_statement "code_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;" statement_identifier : (if_statement "if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;" if (parenthesized_expression "(*(char *)(iVar3 + 0x18) == '\x11')" ( (binary_expression "*(char *)(iVar3 + 0x18) == '\x11'" (pointer_expression "*(char *)(iVar3 + 0x18)" * (cast_expression "(char *)(iVar3 + 0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x18)" ( (binary_expression "iVar3 + 0x18" identifier + number_literal) )))) == (char_literal "'\x11'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00030c76;" goto statement_identifier ;))) (labeled_statement "code_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }" statement_identifier : (if_statement "if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }" if (parenthesized_expression "(uStack_c0 != 0xffffffff)" ( (binary_expression "uStack_c0 != 0xffffffff" identifier != number_literal) )) (compound_statement "{\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }" { (expression_statement "cStack_64 = '\n';" (assignment_expression "cStack_64 = '\n'" identifier = (char_literal "'\n'" ' escape_sequence ')) ;) (goto_statement "goto code_r0x00030a18;" goto statement_identifier ;) }))) (goto_statement "goto code_r0x00030a13;" goto statement_identifier ;) })) (goto_statement "goto code_r0x00030be0;" goto statement_identifier ;) })) (labeled_statement "code_r0x00030d10:\n          if (*param_6 != 0) goto LAB_00030e58;" statement_identifier : (if_statement "if (*param_6 != 0) goto LAB_00030e58;" if (parenthesized_expression "(*param_6 != 0)" ( (binary_expression "*param_6 != 0" (pointer_expression "*param_6" * identifier) != number_literal) )) (goto_statement "goto LAB_00030e58;" goto statement_identifier ;))) (labeled_statement "code_r0x00030d1e:\n          local_b0 = 0;" statement_identifier : (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" identifier = number_literal) ;)) (expression_statement "iVar3 = local_b0;" (assignment_expression "iVar3 = local_b0" identifier = identifier) ;) }))) (labeled_statement "code_r0x00030b08:\n        local_b0 = iVar3;" statement_identifier : (expression_statement "local_b0 = iVar3;" (assignment_expression "local_b0 = iVar3" identifier = identifier) ;)) (expression_statement "bVar17 = (byte)param_3[1];" (assignment_expression "bVar17 = (byte)param_3[1]" identifier = (cast_expression "(byte)param_3[1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_3[1]" identifier [ number_literal ]))) ;) (expression_statement "uVar14 = (uint)bVar17;" (assignment_expression "uVar14 = (uint)bVar17" identifier = (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) while (parenthesized_expression "(((param_4 & 0x1000000) == 0) || ((bVar17 != 0xb && (bVar17 != 0x17))))" ( (binary_expression "((param_4 & 0x1000000) == 0) || ((bVar17 != 0xb && (bVar17 != 0x17)))" (parenthesized_expression "((param_4 & 0x1000000) == 0)" ( (binary_expression "(param_4 & 0x1000000) == 0" (parenthesized_expression "(param_4 & 0x1000000)" ( (binary_expression "param_4 & 0x1000000" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "((bVar17 != 0xb && (bVar17 != 0x17)))" ( (parenthesized_expression "(bVar17 != 0xb && (bVar17 != 0x17))" ( (binary_expression "bVar17 != 0xb && (bVar17 != 0x17)" (binary_expression "bVar17 != 0xb" identifier != number_literal) && (parenthesized_expression "(bVar17 != 0x17)" ( (binary_expression "bVar17 != 0x17" identifier != number_literal) ))) )) ))) )) ;) (if_statement "if (local_b0 != 0) {\n        FUN_00025a40();\n      }" if (parenthesized_expression "(local_b0 != 0)" ( (binary_expression "local_b0 != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_00025a40();\n      }" { (expression_statement "FUN_00025a40();" (call_expression "FUN_00025a40()" identifier (argument_list "()" ( ))) ;) })) (goto_statement "goto code_r0x00030b48;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case '\v':" case (char_literal "'\v'" ' escape_sequence ') :) (case_statement "case '\x12':" case (char_literal "'\x12'" ' escape_sequence ') :) (case_statement "case '\x13':\ncode_r0x000308ec:\n    if ((param_4 & 0x20) == 0) {\n      if ((param_4 & 0x10) != 0) {\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        local_b0 = FUN_00030880(param_4,param_5,param_6);\n        goto LAB_00030965;\n      }\n      if (cVar2 == '\t') goto code_r0x000313dd;\n      goto code_r0x00030910;\n    }\n    goto code_r0x00030b48;" case (char_literal "'\x13'" ' escape_sequence ') : (labeled_statement "code_r0x000308ec:\n    if ((param_4 & 0x20) == 0) {\n      if ((param_4 & 0x10) != 0) {\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        local_b0 = FUN_00030880(param_4,param_5,param_6);\n        goto LAB_00030965;\n      }\n      if (cVar2 == '\t') goto code_r0x000313dd;\n      goto code_r0x00030910;\n    }" statement_identifier : (if_statement "if ((param_4 & 0x20) == 0) {\n      if ((param_4 & 0x10) != 0) {\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        local_b0 = FUN_00030880(param_4,param_5,param_6);\n        goto LAB_00030965;\n      }\n      if (cVar2 == '\t') goto code_r0x000313dd;\n      goto code_r0x00030910;\n    }" if (parenthesized_expression "((param_4 & 0x20) == 0)" ( (binary_expression "(param_4 & 0x20) == 0" (parenthesized_expression "(param_4 & 0x20)" ( (binary_expression "param_4 & 0x20" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      if ((param_4 & 0x10) != 0) {\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        local_b0 = FUN_00030880(param_4,param_5,param_6);\n        goto LAB_00030965;\n      }\n      if (cVar2 == '\t') goto code_r0x000313dd;\n      goto code_r0x00030910;\n    }" { (if_statement "if ((param_4 & 0x10) != 0) {\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        local_b0 = FUN_00030880(param_4,param_5,param_6);\n        goto LAB_00030965;\n      }" if (parenthesized_expression "((param_4 & 0x10) != 0)" ( (binary_expression "(param_4 & 0x10) != 0" (parenthesized_expression "(param_4 & 0x10)" ( (binary_expression "param_4 & 0x10" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        local_b0 = FUN_00030880(param_4,param_5,param_6);\n        goto LAB_00030965;\n      }" { (expression_statement "iVar3 = FUN_000300e0();" (assignment_expression "iVar3 = FUN_000300e0()" identifier = (call_expression "FUN_000300e0()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;" (assignment_expression "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x28) + iVar3" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) + identifier)) ;) (expression_statement "local_b0 = FUN_00030880(param_4,param_5,param_6);" (assignment_expression "local_b0 = FUN_00030880(param_4,param_5,param_6)" identifier = (call_expression "FUN_00030880(param_4,param_5,param_6)" identifier (argument_list "(param_4,param_5,param_6)" ( identifier , identifier , identifier )))) ;) (goto_statement "goto LAB_00030965;" goto statement_identifier ;) })) (if_statement "if (cVar2 == '\t') goto code_r0x000313dd;" if (parenthesized_expression "(cVar2 == '\t')" ( (binary_expression "cVar2 == '\t'" identifier == (char_literal "'\t'" ' escape_sequence ')) )) (goto_statement "goto code_r0x000313dd;" goto statement_identifier ;)) (goto_statement "goto code_r0x00030910;" goto statement_identifier ;) }))) (goto_statement "goto code_r0x00030b48;" goto statement_identifier ;)) (case_statement "case '\f':\n    uStack_c0 = *param_3;\n    if (((uStack_c0 & 0x30f) != 0) && (bVar17 = *(byte *)(iVar3 + 0x58), (bVar17 & 0x10) == 0)) {\n      *(byte *)(iVar3 + 0x58) = bVar17 | 0x10;\n      if ((bVar17 & 8) == 0) {\n        *(undefined4 *)(iVar3 + 0x60) = 0;\n        *(undefined4 *)(iVar3 + 100) = 0x3ff0000;\n        *(undefined4 *)(iVar3 + 0x68) = 0x87fffffe;\n        *(undefined4 *)(iVar3 + 0x6c) = 0x7fffffe;\n        if ((bVar17 & 4) != 0) {\n          *(undefined4 *)(iVar3 + 0x70) = 0;\n          *(undefined4 *)(iVar3 + 0x74) = 0;\n          *(undefined4 *)(iVar3 + 0x78) = 0;\n          *(undefined4 *)(iVar3 + 0x7c) = 0;\n          uStack_c0 = *param_3;\n          goto code_r0x00031089;\n        }\n        iVar4 = 0x80;\n        iVar16 = 4;\n      }\n      else {\n        iVar4 = 0;\n        iVar16 = 0;\n      }\n      ppuVar8 = __ctype_b_loc();\n      iVar16 = iVar3 + iVar16 * 4;\n      puVar9 = *ppuVar8 + iVar4;\n      do {\n        iVar12 = 0;\n        do {\n          if (((puVar9[iVar12] & 8) != 0) || (iVar4 + iVar12 == 0x5f)) {\n            *(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f);\n          }\n          iVar12 = iVar12 + 1;\n        } while (iVar12 != 0x20);\n        iVar4 = iVar4 + 0x20;\n        iVar16 = iVar16 + 4;\n        puVar9 = puVar9 + 0x20;\n      } while (iVar3 + 0x20 != iVar16);\n    }\ncode_r0x00031089:\n    if ((uStack_c0 - 0x100 & 0xfffffeff) == 0) {\n      if (uStack_c0 == 0x100) {\n        *param_3 = 6;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 9;\n      }\n      else {\n        *param_3 = 5;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 10;\n      }\n      iVar3 = FUN_00028330(0,param_3);\n      cStack_64 = '\n';\n      local_b0 = FUN_00028330(iVar3,&puStack_68);\n      if (uStack_c0 == 0 || iVar3 == 0) break;\n    }\n    else {\n      local_b0 = FUN_00028330(0,param_3);\n    }\n    if (local_b0 != 0) {\n      iVar3 = FUN_000300e0();\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n      goto LAB_00030965;\n    }\n    break;" case (char_literal "'\f'" ' escape_sequence ') : (expression_statement "uStack_c0 = *param_3;" (assignment_expression "uStack_c0 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (if_statement "if (((uStack_c0 & 0x30f) != 0) && (bVar17 = *(byte *)(iVar3 + 0x58), (bVar17 & 0x10) == 0)) {\n      *(byte *)(iVar3 + 0x58) = bVar17 | 0x10;\n      if ((bVar17 & 8) == 0) {\n        *(undefined4 *)(iVar3 + 0x60) = 0;\n        *(undefined4 *)(iVar3 + 100) = 0x3ff0000;\n        *(undefined4 *)(iVar3 + 0x68) = 0x87fffffe;\n        *(undefined4 *)(iVar3 + 0x6c) = 0x7fffffe;\n        if ((bVar17 & 4) != 0) {\n          *(undefined4 *)(iVar3 + 0x70) = 0;\n          *(undefined4 *)(iVar3 + 0x74) = 0;\n          *(undefined4 *)(iVar3 + 0x78) = 0;\n          *(undefined4 *)(iVar3 + 0x7c) = 0;\n          uStack_c0 = *param_3;\n          goto code_r0x00031089;\n        }\n        iVar4 = 0x80;\n        iVar16 = 4;\n      }\n      else {\n        iVar4 = 0;\n        iVar16 = 0;\n      }\n      ppuVar8 = __ctype_b_loc();\n      iVar16 = iVar3 + iVar16 * 4;\n      puVar9 = *ppuVar8 + iVar4;\n      do {\n        iVar12 = 0;\n        do {\n          if (((puVar9[iVar12] & 8) != 0) || (iVar4 + iVar12 == 0x5f)) {\n            *(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f);\n          }\n          iVar12 = iVar12 + 1;\n        } while (iVar12 != 0x20);\n        iVar4 = iVar4 + 0x20;\n        iVar16 = iVar16 + 4;\n        puVar9 = puVar9 + 0x20;\n      } while (iVar3 + 0x20 != iVar16);\n    }" if (parenthesized_expression "(((uStack_c0 & 0x30f) != 0) && (bVar17 = *(byte *)(iVar3 + 0x58), (bVar17 & 0x10) == 0))" ( (binary_expression "((uStack_c0 & 0x30f) != 0) && (bVar17 = *(byte *)(iVar3 + 0x58), (bVar17 & 0x10) == 0)" (parenthesized_expression "((uStack_c0 & 0x30f) != 0)" ( (binary_expression "(uStack_c0 & 0x30f) != 0" (parenthesized_expression "(uStack_c0 & 0x30f)" ( (binary_expression "uStack_c0 & 0x30f" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(bVar17 = *(byte *)(iVar3 + 0x58), (bVar17 & 0x10) == 0)" ( (comma_expression "bVar17 = *(byte *)(iVar3 + 0x58), (bVar17 & 0x10) == 0" (assignment_expression "bVar17 = *(byte *)(iVar3 + 0x58)" identifier = (pointer_expression "*(byte *)(iVar3 + 0x58)" * (cast_expression "(byte *)(iVar3 + 0x58)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x58)" ( (binary_expression "iVar3 + 0x58" identifier + number_literal) ))))) , (binary_expression "(bVar17 & 0x10) == 0" (parenthesized_expression "(bVar17 & 0x10)" ( (binary_expression "bVar17 & 0x10" identifier & number_literal) )) == number_literal)) ))) )) (compound_statement "{\n      *(byte *)(iVar3 + 0x58) = bVar17 | 0x10;\n      if ((bVar17 & 8) == 0) {\n        *(undefined4 *)(iVar3 + 0x60) = 0;\n        *(undefined4 *)(iVar3 + 100) = 0x3ff0000;\n        *(undefined4 *)(iVar3 + 0x68) = 0x87fffffe;\n        *(undefined4 *)(iVar3 + 0x6c) = 0x7fffffe;\n        if ((bVar17 & 4) != 0) {\n          *(undefined4 *)(iVar3 + 0x70) = 0;\n          *(undefined4 *)(iVar3 + 0x74) = 0;\n          *(undefined4 *)(iVar3 + 0x78) = 0;\n          *(undefined4 *)(iVar3 + 0x7c) = 0;\n          uStack_c0 = *param_3;\n          goto code_r0x00031089;\n        }\n        iVar4 = 0x80;\n        iVar16 = 4;\n      }\n      else {\n        iVar4 = 0;\n        iVar16 = 0;\n      }\n      ppuVar8 = __ctype_b_loc();\n      iVar16 = iVar3 + iVar16 * 4;\n      puVar9 = *ppuVar8 + iVar4;\n      do {\n        iVar12 = 0;\n        do {\n          if (((puVar9[iVar12] & 8) != 0) || (iVar4 + iVar12 == 0x5f)) {\n            *(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f);\n          }\n          iVar12 = iVar12 + 1;\n        } while (iVar12 != 0x20);\n        iVar4 = iVar4 + 0x20;\n        iVar16 = iVar16 + 4;\n        puVar9 = puVar9 + 0x20;\n      } while (iVar3 + 0x20 != iVar16);\n    }" { (expression_statement "*(byte *)(iVar3 + 0x58) = bVar17 | 0x10;" (assignment_expression "*(byte *)(iVar3 + 0x58) = bVar17 | 0x10" (pointer_expression "*(byte *)(iVar3 + 0x58)" * (cast_expression "(byte *)(iVar3 + 0x58)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x58)" ( (binary_expression "iVar3 + 0x58" identifier + number_literal) )))) = (binary_expression "bVar17 | 0x10" identifier | number_literal)) ;) (if_statement "if ((bVar17 & 8) == 0) {\n        *(undefined4 *)(iVar3 + 0x60) = 0;\n        *(undefined4 *)(iVar3 + 100) = 0x3ff0000;\n        *(undefined4 *)(iVar3 + 0x68) = 0x87fffffe;\n        *(undefined4 *)(iVar3 + 0x6c) = 0x7fffffe;\n        if ((bVar17 & 4) != 0) {\n          *(undefined4 *)(iVar3 + 0x70) = 0;\n          *(undefined4 *)(iVar3 + 0x74) = 0;\n          *(undefined4 *)(iVar3 + 0x78) = 0;\n          *(undefined4 *)(iVar3 + 0x7c) = 0;\n          uStack_c0 = *param_3;\n          goto code_r0x00031089;\n        }\n        iVar4 = 0x80;\n        iVar16 = 4;\n      }\n      else {\n        iVar4 = 0;\n        iVar16 = 0;\n      }" if (parenthesized_expression "((bVar17 & 8) == 0)" ( (binary_expression "(bVar17 & 8) == 0" (parenthesized_expression "(bVar17 & 8)" ( (binary_expression "bVar17 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        *(undefined4 *)(iVar3 + 0x60) = 0;\n        *(undefined4 *)(iVar3 + 100) = 0x3ff0000;\n        *(undefined4 *)(iVar3 + 0x68) = 0x87fffffe;\n        *(undefined4 *)(iVar3 + 0x6c) = 0x7fffffe;\n        if ((bVar17 & 4) != 0) {\n          *(undefined4 *)(iVar3 + 0x70) = 0;\n          *(undefined4 *)(iVar3 + 0x74) = 0;\n          *(undefined4 *)(iVar3 + 0x78) = 0;\n          *(undefined4 *)(iVar3 + 0x7c) = 0;\n          uStack_c0 = *param_3;\n          goto code_r0x00031089;\n        }\n        iVar4 = 0x80;\n        iVar16 = 4;\n      }" { (expression_statement "*(undefined4 *)(iVar3 + 0x60) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + 0x60) = 0" (pointer_expression "*(undefined4 *)(iVar3 + 0x60)" * (cast_expression "(undefined4 *)(iVar3 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x60)" ( (binary_expression "iVar3 + 0x60" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar3 + 100) = 0x3ff0000;" (assignment_expression "*(undefined4 *)(iVar3 + 100) = 0x3ff0000" (pointer_expression "*(undefined4 *)(iVar3 + 100)" * (cast_expression "(undefined4 *)(iVar3 + 100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 100)" ( (binary_expression "iVar3 + 100" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x68) = 0x87fffffe;" (assignment_expression "*(undefined4 *)(iVar3 + 0x68) = 0x87fffffe" (pointer_expression "*(undefined4 *)(iVar3 + 0x68)" * (cast_expression "(undefined4 *)(iVar3 + 0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x68)" ( (binary_expression "iVar3 + 0x68" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x6c) = 0x7fffffe;" (assignment_expression "*(undefined4 *)(iVar3 + 0x6c) = 0x7fffffe" (pointer_expression "*(undefined4 *)(iVar3 + 0x6c)" * (cast_expression "(undefined4 *)(iVar3 + 0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x6c)" ( (binary_expression "iVar3 + 0x6c" identifier + number_literal) )))) = number_literal) ;) (if_statement "if ((bVar17 & 4) != 0) {\n          *(undefined4 *)(iVar3 + 0x70) = 0;\n          *(undefined4 *)(iVar3 + 0x74) = 0;\n          *(undefined4 *)(iVar3 + 0x78) = 0;\n          *(undefined4 *)(iVar3 + 0x7c) = 0;\n          uStack_c0 = *param_3;\n          goto code_r0x00031089;\n        }" if (parenthesized_expression "((bVar17 & 4) != 0)" ( (binary_expression "(bVar17 & 4) != 0" (parenthesized_expression "(bVar17 & 4)" ( (binary_expression "bVar17 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          *(undefined4 *)(iVar3 + 0x70) = 0;\n          *(undefined4 *)(iVar3 + 0x74) = 0;\n          *(undefined4 *)(iVar3 + 0x78) = 0;\n          *(undefined4 *)(iVar3 + 0x7c) = 0;\n          uStack_c0 = *param_3;\n          goto code_r0x00031089;\n        }" { (expression_statement "*(undefined4 *)(iVar3 + 0x70) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + 0x70) = 0" (pointer_expression "*(undefined4 *)(iVar3 + 0x70)" * (cast_expression "(undefined4 *)(iVar3 + 0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x70)" ( (binary_expression "iVar3 + 0x70" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x74) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + 0x74) = 0" (pointer_expression "*(undefined4 *)(iVar3 + 0x74)" * (cast_expression "(undefined4 *)(iVar3 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x74)" ( (binary_expression "iVar3 + 0x74" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x78) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + 0x78) = 0" (pointer_expression "*(undefined4 *)(iVar3 + 0x78)" * (cast_expression "(undefined4 *)(iVar3 + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x78)" ( (binary_expression "iVar3 + 0x78" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x7c) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + 0x7c) = 0" (pointer_expression "*(undefined4 *)(iVar3 + 0x7c)" * (cast_expression "(undefined4 *)(iVar3 + 0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x7c)" ( (binary_expression "iVar3 + 0x7c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uStack_c0 = *param_3;" (assignment_expression "uStack_c0 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (goto_statement "goto code_r0x00031089;" goto statement_identifier ;) })) (expression_statement "iVar4 = 0x80;" (assignment_expression "iVar4 = 0x80" identifier = number_literal) ;) (expression_statement "iVar16 = 4;" (assignment_expression "iVar16 = 4" identifier = number_literal) ;) }) (else_clause "else {\n        iVar4 = 0;\n        iVar16 = 0;\n      }" else (compound_statement "{\n        iVar4 = 0;\n        iVar16 = 0;\n      }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) }))) (expression_statement "ppuVar8 = __ctype_b_loc();" (assignment_expression "ppuVar8 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar16 = iVar3 + iVar16 * 4;" (assignment_expression "iVar16 = iVar3 + iVar16 * 4" identifier = (binary_expression "iVar3 + iVar16 * 4" identifier + (binary_expression "iVar16 * 4" identifier * number_literal))) ;) (expression_statement "puVar9 = *ppuVar8 + iVar4;" (assignment_expression "puVar9 = *ppuVar8 + iVar4" identifier = (binary_expression "*ppuVar8 + iVar4" (pointer_expression "*ppuVar8" * identifier) + identifier)) ;) (do_statement "do {\n        iVar12 = 0;\n        do {\n          if (((puVar9[iVar12] & 8) != 0) || (iVar4 + iVar12 == 0x5f)) {\n            *(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f);\n          }\n          iVar12 = iVar12 + 1;\n        } while (iVar12 != 0x20);\n        iVar4 = iVar4 + 0x20;\n        iVar16 = iVar16 + 4;\n        puVar9 = puVar9 + 0x20;\n      } while (iVar3 + 0x20 != iVar16);" do (compound_statement "{\n        iVar12 = 0;\n        do {\n          if (((puVar9[iVar12] & 8) != 0) || (iVar4 + iVar12 == 0x5f)) {\n            *(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f);\n          }\n          iVar12 = iVar12 + 1;\n        } while (iVar12 != 0x20);\n        iVar4 = iVar4 + 0x20;\n        iVar16 = iVar16 + 4;\n        puVar9 = puVar9 + 0x20;\n      }" { (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n          if (((puVar9[iVar12] & 8) != 0) || (iVar4 + iVar12 == 0x5f)) {\n            *(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f);\n          }\n          iVar12 = iVar12 + 1;\n        } while (iVar12 != 0x20);" do (compound_statement "{\n          if (((puVar9[iVar12] & 8) != 0) || (iVar4 + iVar12 == 0x5f)) {\n            *(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f);\n          }\n          iVar12 = iVar12 + 1;\n        }" { (if_statement "if (((puVar9[iVar12] & 8) != 0) || (iVar4 + iVar12 == 0x5f)) {\n            *(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f);\n          }" if (parenthesized_expression "(((puVar9[iVar12] & 8) != 0) || (iVar4 + iVar12 == 0x5f))" ( (binary_expression "((puVar9[iVar12] & 8) != 0) || (iVar4 + iVar12 == 0x5f)" (parenthesized_expression "((puVar9[iVar12] & 8) != 0)" ( (binary_expression "(puVar9[iVar12] & 8) != 0" (parenthesized_expression "(puVar9[iVar12] & 8)" ( (binary_expression "puVar9[iVar12] & 8" (subscript_expression "puVar9[iVar12]" identifier [ identifier ]) & number_literal) )) != number_literal) )) || (parenthesized_expression "(iVar4 + iVar12 == 0x5f)" ( (binary_expression "iVar4 + iVar12 == 0x5f" (binary_expression "iVar4 + iVar12" identifier + identifier) == number_literal) ))) )) (compound_statement "{\n            *(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f);\n          }" { (expression_statement "*(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f);" (assignment_expression "*(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f)" (pointer_expression "*(uint *)(iVar16 + 0x60)" * (cast_expression "(uint *)(iVar16 + 0x60)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x60)" ( (binary_expression "iVar16 + 0x60" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f)" (pointer_expression "*(uint *)(iVar16 + 0x60)" * (cast_expression "(uint *)(iVar16 + 0x60)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x60)" ( (binary_expression "iVar16 + 0x60" identifier + number_literal) )))) | (binary_expression "1 << ((byte)iVar12 & 0x1f)" number_literal << (parenthesized_expression "((byte)iVar12 & 0x1f)" ( (binary_expression "(byte)iVar12 & 0x1f" (cast_expression "(byte)iVar12" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))))) ;) })) (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar12 != 0x20)" ( (binary_expression "iVar12 != 0x20" identifier != number_literal) )) ;) (expression_statement "iVar4 = iVar4 + 0x20;" (assignment_expression "iVar4 = iVar4 + 0x20" identifier = (binary_expression "iVar4 + 0x20" identifier + number_literal)) ;) (expression_statement "iVar16 = iVar16 + 4;" (assignment_expression "iVar16 = iVar16 + 4" identifier = (binary_expression "iVar16 + 4" identifier + number_literal)) ;) (expression_statement "puVar9 = puVar9 + 0x20;" (assignment_expression "puVar9 = puVar9 + 0x20" identifier = (binary_expression "puVar9 + 0x20" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar3 + 0x20 != iVar16)" ( (binary_expression "iVar3 + 0x20 != iVar16" (binary_expression "iVar3 + 0x20" identifier + number_literal) != identifier) )) ;) })) (labeled_statement "code_r0x00031089:\n    if ((uStack_c0 - 0x100 & 0xfffffeff) == 0) {\n      if (uStack_c0 == 0x100) {\n        *param_3 = 6;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 9;\n      }\n      else {\n        *param_3 = 5;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 10;\n      }\n      iVar3 = FUN_00028330(0,param_3);\n      cStack_64 = '\n';\n      local_b0 = FUN_00028330(iVar3,&puStack_68);\n      if (uStack_c0 == 0 || iVar3 == 0) break;\n    }\n    else {\n      local_b0 = FUN_00028330(0,param_3);\n    }" statement_identifier : (if_statement "if ((uStack_c0 - 0x100 & 0xfffffeff) == 0) {\n      if (uStack_c0 == 0x100) {\n        *param_3 = 6;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 9;\n      }\n      else {\n        *param_3 = 5;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 10;\n      }\n      iVar3 = FUN_00028330(0,param_3);\n      cStack_64 = '\n';\n      local_b0 = FUN_00028330(iVar3,&puStack_68);\n      if (uStack_c0 == 0 || iVar3 == 0) break;\n    }\n    else {\n      local_b0 = FUN_00028330(0,param_3);\n    }" if (parenthesized_expression "((uStack_c0 - 0x100 & 0xfffffeff) == 0)" ( (binary_expression "(uStack_c0 - 0x100 & 0xfffffeff) == 0" (parenthesized_expression "(uStack_c0 - 0x100 & 0xfffffeff)" ( (binary_expression "uStack_c0 - 0x100 & 0xfffffeff" (binary_expression "uStack_c0 - 0x100" identifier - number_literal) & number_literal) )) == number_literal) )) (compound_statement "{\n      if (uStack_c0 == 0x100) {\n        *param_3 = 6;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 9;\n      }\n      else {\n        *param_3 = 5;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 10;\n      }\n      iVar3 = FUN_00028330(0,param_3);\n      cStack_64 = '\n';\n      local_b0 = FUN_00028330(iVar3,&puStack_68);\n      if (uStack_c0 == 0 || iVar3 == 0) break;\n    }" { (if_statement "if (uStack_c0 == 0x100) {\n        *param_3 = 6;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 9;\n      }\n      else {\n        *param_3 = 5;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 10;\n      }" if (parenthesized_expression "(uStack_c0 == 0x100)" ( (binary_expression "uStack_c0 == 0x100" identifier == number_literal) )) (compound_statement "{\n        *param_3 = 6;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 9;\n      }" { (expression_statement "*param_3 = 6;" (assignment_expression "*param_3 = 6" (pointer_expression "*param_3" * identifier) = number_literal) ;) (expression_statement "uStack_c0 = FUN_00028330(0,param_3);" (assignment_expression "uStack_c0 = FUN_00028330(0,param_3)" identifier = (call_expression "FUN_00028330(0,param_3)" identifier (argument_list "(0,param_3)" ( number_literal , identifier )))) ;) (expression_statement "*param_3 = 9;" (assignment_expression "*param_3 = 9" (pointer_expression "*param_3" * identifier) = number_literal) ;) }) (else_clause "else {\n        *param_3 = 5;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 10;\n      }" else (compound_statement "{\n        *param_3 = 5;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 10;\n      }" { (expression_statement "*param_3 = 5;" (assignment_expression "*param_3 = 5" (pointer_expression "*param_3" * identifier) = number_literal) ;) (expression_statement "uStack_c0 = FUN_00028330(0,param_3);" (assignment_expression "uStack_c0 = FUN_00028330(0,param_3)" identifier = (call_expression "FUN_00028330(0,param_3)" identifier (argument_list "(0,param_3)" ( number_literal , identifier )))) ;) (expression_statement "*param_3 = 10;" (assignment_expression "*param_3 = 10" (pointer_expression "*param_3" * identifier) = number_literal) ;) }))) (expression_statement "iVar3 = FUN_00028330(0,param_3);" (assignment_expression "iVar3 = FUN_00028330(0,param_3)" identifier = (call_expression "FUN_00028330(0,param_3)" identifier (argument_list "(0,param_3)" ( number_literal , identifier )))) ;) (expression_statement "cStack_64 = '\n';" (assignment_expression "cStack_64 = '\n'" identifier = (char_literal "'\n'" ' escape_sequence ')) ;) (expression_statement "local_b0 = FUN_00028330(iVar3,&puStack_68);" (assignment_expression "local_b0 = FUN_00028330(iVar3,&puStack_68)" identifier = (call_expression "FUN_00028330(iVar3,&puStack_68)" identifier (argument_list "(iVar3,&puStack_68)" ( identifier , (pointer_expression "&puStack_68" & identifier) )))) ;) (if_statement "if (uStack_c0 == 0 || iVar3 == 0) break;" if (parenthesized_expression "(uStack_c0 == 0 || iVar3 == 0)" ( (binary_expression "uStack_c0 == 0 || iVar3 == 0" (binary_expression "uStack_c0 == 0" identifier == number_literal) || (binary_expression "iVar3 == 0" identifier == number_literal)) )) (break_statement "break;" break ;)) }) (else_clause "else {\n      local_b0 = FUN_00028330(0,param_3);\n    }" else (compound_statement "{\n      local_b0 = FUN_00028330(0,param_3);\n    }" { (expression_statement "local_b0 = FUN_00028330(0,param_3);" (assignment_expression "local_b0 = FUN_00028330(0,param_3)" identifier = (call_expression "FUN_00028330(0,param_3)" identifier (argument_list "(0,param_3)" ( number_literal , identifier )))) ;) })))) (if_statement "if (local_b0 != 0) {\n      iVar3 = FUN_000300e0();\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n      goto LAB_00030965;\n    }" if (parenthesized_expression "(local_b0 != 0)" ( (binary_expression "local_b0 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar3 = FUN_000300e0();\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n      goto LAB_00030965;\n    }" { (expression_statement "iVar3 = FUN_000300e0();" (assignment_expression "iVar3 = FUN_000300e0()" identifier = (call_expression "FUN_000300e0()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;" (assignment_expression "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x28) + iVar3" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) + identifier)) ;) (goto_statement "goto LAB_00030965;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case '\x14':\n    __ptr = (uint *)calloc(0x20,1);\n    puVar5 = (uint *)calloc(0x28,1);\n    if (__ptr == (uint *)0x0 || puVar5 == (uint *)0x0) {\n      free(__ptr);\n      free(puVar5);\n      *param_6 = 0xc;\n      local_b0 = 0;\n      goto LAB_00030965;\n    }\n    uStack_c0 = FUN_00025ab0();\n    cVar2 = (char)param_3[1];\n    if (cVar2 != '\x02') {\n      bVar1 = false;\n      if (cVar2 != '\x19') {\ncode_r0x000312a6:\n        if (cVar2 == '\x15') {\n          *(char *)(param_3 + 1) = '\x01';\n        }\n        uStack_90 = 0;\n        uVar6 = 1;\ncode_r0x000312e4:\n        iVar16 = FUN_0002fec0(uStack_c0,param_4,uVar6);\n        if (iVar16 == 0) {\n          iVar16 = FUN_00025ab0();\n          if ((char)param_3[1] == '\x02') {\ncode_r0x00031615:\n            *param_6 = 7;\n          }\n          else {\n            if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    /* WARNING: Could not recover jumptable at 0x00031371. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }\n            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n            uVar6 = FUN_00025ab0();\n            if (cStack_64 == '\x02') goto code_r0x00031615;\n            if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }\n            pcStack_6c = acStack_40;\n            puStack_70 = (uint *)0x3;\n            uVar14 = 1;\n            iVar16 = FUN_0002fec0(uVar6,param_4,1);\n            if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }\n          }\n        }\n        else {\n          *param_6 = iVar16;\n        }\n        goto code_r0x000314ef;\n      }\n      *(byte *)(puVar5 + 4) = (byte)puVar5[4] | 1;\n      if ((param_4 & 0x100) != 0) {\n        *__ptr = *__ptr | 0x400;\n      }\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n      uStack_c0 = FUN_00025ab0();\n      cVar2 = (char)param_3[1];\n      if (cVar2 != '\x02') {\n        bVar1 = true;\n        goto code_r0x000312a6;\n      }\n    }\n    *param_6 = 2;\ncode_r0x000314ef:\n    free(__ptr);\n    FUN_00026c30();\n    if (*param_6 == 0) {\n      local_b0 = 0;\n      goto code_r0x0003093e;\n    }\nLAB_00030e58:\n    local_b0 = 0;\n    goto LAB_00030965;" case (char_literal "'\x14'" ' escape_sequence ') : (expression_statement "__ptr = (uint *)calloc(0x20,1);" (assignment_expression "__ptr = (uint *)calloc(0x20,1)" identifier = (cast_expression "(uint *)calloc(0x20,1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "calloc(0x20,1)" identifier (argument_list "(0x20,1)" ( number_literal , number_literal ))))) ;) (expression_statement "puVar5 = (uint *)calloc(0x28,1);" (assignment_expression "puVar5 = (uint *)calloc(0x28,1)" identifier = (cast_expression "(uint *)calloc(0x28,1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "calloc(0x28,1)" identifier (argument_list "(0x28,1)" ( number_literal , number_literal ))))) ;) (if_statement "if (__ptr == (uint *)0x0 || puVar5 == (uint *)0x0) {\n      free(__ptr);\n      free(puVar5);\n      *param_6 = 0xc;\n      local_b0 = 0;\n      goto LAB_00030965;\n    }" if (parenthesized_expression "(__ptr == (uint *)0x0 || puVar5 == (uint *)0x0)" ( (binary_expression "__ptr == (uint *)0x0 || puVar5 == (uint *)0x0" (binary_expression "__ptr == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (binary_expression "puVar5 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n      free(__ptr);\n      free(puVar5);\n      *param_6 = 0xc;\n      local_b0 = 0;\n      goto LAB_00030965;\n    }" { (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "free(puVar5);" (call_expression "free(puVar5)" identifier (argument_list "(puVar5)" ( identifier ))) ;) (expression_statement "*param_6 = 0xc;" (assignment_expression "*param_6 = 0xc" (pointer_expression "*param_6" * identifier) = number_literal) ;) (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00030965;" goto statement_identifier ;) })) (expression_statement "uStack_c0 = FUN_00025ab0();" (assignment_expression "uStack_c0 = FUN_00025ab0()" identifier = (call_expression "FUN_00025ab0()" identifier (argument_list "()" ( )))) ;) (expression_statement "cVar2 = (char)param_3[1];" (assignment_expression "cVar2 = (char)param_3[1]" identifier = (cast_expression "(char)param_3[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_3[1]" identifier [ number_literal ]))) ;) (if_statement "if (cVar2 != '\x02') {\n      bVar1 = false;\n      if (cVar2 != '\x19') {\ncode_r0x000312a6:\n        if (cVar2 == '\x15') {\n          *(char *)(param_3 + 1) = '\x01';\n        }\n        uStack_90 = 0;\n        uVar6 = 1;\ncode_r0x000312e4:\n        iVar16 = FUN_0002fec0(uStack_c0,param_4,uVar6);\n        if (iVar16 == 0) {\n          iVar16 = FUN_00025ab0();\n          if ((char)param_3[1] == '\x02') {\ncode_r0x00031615:\n            *param_6 = 7;\n          }\n          else {\n            if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    /* WARNING: Could not recover jumptable at 0x00031371. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }\n            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n            uVar6 = FUN_00025ab0();\n            if (cStack_64 == '\x02') goto code_r0x00031615;\n            if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }\n            pcStack_6c = acStack_40;\n            puStack_70 = (uint *)0x3;\n            uVar14 = 1;\n            iVar16 = FUN_0002fec0(uVar6,param_4,1);\n            if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }\n          }\n        }\n        else {\n          *param_6 = iVar16;\n        }\n        goto code_r0x000314ef;\n      }\n      *(byte *)(puVar5 + 4) = (byte)puVar5[4] | 1;\n      if ((param_4 & 0x100) != 0) {\n        *__ptr = *__ptr | 0x400;\n      }\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n      uStack_c0 = FUN_00025ab0();\n      cVar2 = (char)param_3[1];\n      if (cVar2 != '\x02') {\n        bVar1 = true;\n        goto code_r0x000312a6;\n      }\n    }" if (parenthesized_expression "(cVar2 != '\x02')" ( (binary_expression "cVar2 != '\x02'" identifier != (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n      bVar1 = false;\n      if (cVar2 != '\x19') {\ncode_r0x000312a6:\n        if (cVar2 == '\x15') {\n          *(char *)(param_3 + 1) = '\x01';\n        }\n        uStack_90 = 0;\n        uVar6 = 1;\ncode_r0x000312e4:\n        iVar16 = FUN_0002fec0(uStack_c0,param_4,uVar6);\n        if (iVar16 == 0) {\n          iVar16 = FUN_00025ab0();\n          if ((char)param_3[1] == '\x02') {\ncode_r0x00031615:\n            *param_6 = 7;\n          }\n          else {\n            if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    /* WARNING: Could not recover jumptable at 0x00031371. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }\n            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n            uVar6 = FUN_00025ab0();\n            if (cStack_64 == '\x02') goto code_r0x00031615;\n            if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }\n            pcStack_6c = acStack_40;\n            puStack_70 = (uint *)0x3;\n            uVar14 = 1;\n            iVar16 = FUN_0002fec0(uVar6,param_4,1);\n            if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }\n          }\n        }\n        else {\n          *param_6 = iVar16;\n        }\n        goto code_r0x000314ef;\n      }\n      *(byte *)(puVar5 + 4) = (byte)puVar5[4] | 1;\n      if ((param_4 & 0x100) != 0) {\n        *__ptr = *__ptr | 0x400;\n      }\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n      uStack_c0 = FUN_00025ab0();\n      cVar2 = (char)param_3[1];\n      if (cVar2 != '\x02') {\n        bVar1 = true;\n        goto code_r0x000312a6;\n      }\n    }" { (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (if_statement "if (cVar2 != '\x19') {\ncode_r0x000312a6:\n        if (cVar2 == '\x15') {\n          *(char *)(param_3 + 1) = '\x01';\n        }\n        uStack_90 = 0;\n        uVar6 = 1;\ncode_r0x000312e4:\n        iVar16 = FUN_0002fec0(uStack_c0,param_4,uVar6);\n        if (iVar16 == 0) {\n          iVar16 = FUN_00025ab0();\n          if ((char)param_3[1] == '\x02') {\ncode_r0x00031615:\n            *param_6 = 7;\n          }\n          else {\n            if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    /* WARNING: Could not recover jumptable at 0x00031371. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }\n            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n            uVar6 = FUN_00025ab0();\n            if (cStack_64 == '\x02') goto code_r0x00031615;\n            if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }\n            pcStack_6c = acStack_40;\n            puStack_70 = (uint *)0x3;\n            uVar14 = 1;\n            iVar16 = FUN_0002fec0(uVar6,param_4,1);\n            if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }\n          }\n        }\n        else {\n          *param_6 = iVar16;\n        }\n        goto code_r0x000314ef;\n      }" if (parenthesized_expression "(cVar2 != '\x19')" ( (binary_expression "cVar2 != '\x19'" identifier != (char_literal "'\x19'" ' escape_sequence ')) )) (compound_statement "{\ncode_r0x000312a6:\n        if (cVar2 == '\x15') {\n          *(char *)(param_3 + 1) = '\x01';\n        }\n        uStack_90 = 0;\n        uVar6 = 1;\ncode_r0x000312e4:\n        iVar16 = FUN_0002fec0(uStack_c0,param_4,uVar6);\n        if (iVar16 == 0) {\n          iVar16 = FUN_00025ab0();\n          if ((char)param_3[1] == '\x02') {\ncode_r0x00031615:\n            *param_6 = 7;\n          }\n          else {\n            if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    /* WARNING: Could not recover jumptable at 0x00031371. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }\n            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n            uVar6 = FUN_00025ab0();\n            if (cStack_64 == '\x02') goto code_r0x00031615;\n            if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }\n            pcStack_6c = acStack_40;\n            puStack_70 = (uint *)0x3;\n            uVar14 = 1;\n            iVar16 = FUN_0002fec0(uVar6,param_4,1);\n            if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }\n          }\n        }\n        else {\n          *param_6 = iVar16;\n        }\n        goto code_r0x000314ef;\n      }" { (labeled_statement "code_r0x000312a6:\n        if (cVar2 == '\x15') {\n          *(char *)(param_3 + 1) = '\x01';\n        }" statement_identifier : (if_statement "if (cVar2 == '\x15') {\n          *(char *)(param_3 + 1) = '\x01';\n        }" if (parenthesized_expression "(cVar2 == '\x15')" ( (binary_expression "cVar2 == '\x15'" identifier == (char_literal "'\x15'" ' escape_sequence ')) )) (compound_statement "{\n          *(char *)(param_3 + 1) = '\x01';\n        }" { (expression_statement "*(char *)(param_3 + 1) = '\x01';" (assignment_expression "*(char *)(param_3 + 1) = '\x01'" (pointer_expression "*(char *)(param_3 + 1)" * (cast_expression "(char *)(param_3 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 1)" ( (binary_expression "param_3 + 1" identifier + number_literal) )))) = (char_literal "'\x01'" ' escape_sequence ')) ;) }))) (expression_statement "uStack_90 = 0;" (assignment_expression "uStack_90 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = 1;" (assignment_expression "uVar6 = 1" identifier = number_literal) ;) (labeled_statement "code_r0x000312e4:\n        iVar16 = FUN_0002fec0(uStack_c0,param_4,uVar6);" statement_identifier : (expression_statement "iVar16 = FUN_0002fec0(uStack_c0,param_4,uVar6);" (assignment_expression "iVar16 = FUN_0002fec0(uStack_c0,param_4,uVar6)" identifier = (call_expression "FUN_0002fec0(uStack_c0,param_4,uVar6)" identifier (argument_list "(uStack_c0,param_4,uVar6)" ( identifier , identifier , identifier )))) ;)) (if_statement "if (iVar16 == 0) {\n          iVar16 = FUN_00025ab0();\n          if ((char)param_3[1] == '\x02') {\ncode_r0x00031615:\n            *param_6 = 7;\n          }\n          else {\n            if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    /* WARNING: Could not recover jumptable at 0x00031371. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }\n            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n            uVar6 = FUN_00025ab0();\n            if (cStack_64 == '\x02') goto code_r0x00031615;\n            if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }\n            pcStack_6c = acStack_40;\n            puStack_70 = (uint *)0x3;\n            uVar14 = 1;\n            iVar16 = FUN_0002fec0(uVar6,param_4,1);\n            if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }\n          }\n        }\n        else {\n          *param_6 = iVar16;\n        }" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar16 = FUN_00025ab0();\n          if ((char)param_3[1] == '\x02') {\ncode_r0x00031615:\n            *param_6 = 7;\n          }\n          else {\n            if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    /* WARNING: Could not recover jumptable at 0x00031371. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }\n            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n            uVar6 = FUN_00025ab0();\n            if (cStack_64 == '\x02') goto code_r0x00031615;\n            if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }\n            pcStack_6c = acStack_40;\n            puStack_70 = (uint *)0x3;\n            uVar14 = 1;\n            iVar16 = FUN_0002fec0(uVar6,param_4,1);\n            if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }\n          }\n        }" { (expression_statement "iVar16 = FUN_00025ab0();" (assignment_expression "iVar16 = FUN_00025ab0()" identifier = (call_expression "FUN_00025ab0()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((char)param_3[1] == '\x02') {\ncode_r0x00031615:\n            *param_6 = 7;\n          }\n          else {\n            if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    /* WARNING: Could not recover jumptable at 0x00031371. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }\n            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n            uVar6 = FUN_00025ab0();\n            if (cStack_64 == '\x02') goto code_r0x00031615;\n            if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }\n            pcStack_6c = acStack_40;\n            puStack_70 = (uint *)0x3;\n            uVar14 = 1;\n            iVar16 = FUN_0002fec0(uVar6,param_4,1);\n            if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }\n          }" if (parenthesized_expression "((char)param_3[1] == '\x02')" ( (binary_expression "(char)param_3[1] == '\x02'" (cast_expression "(char)param_3[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_3[1]" identifier [ number_literal ])) == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\ncode_r0x00031615:\n            *param_6 = 7;\n          }" { (labeled_statement "code_r0x00031615:\n            *param_6 = 7;" statement_identifier : (expression_statement "*param_6 = 7;" (assignment_expression "*param_6 = 7" (pointer_expression "*param_6" * identifier) = number_literal) ;)) }) (else_clause "else {\n            if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    /* WARNING: Could not recover jumptable at 0x00031371. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }\n            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n            uVar6 = FUN_00025ab0();\n            if (cStack_64 == '\x02') goto code_r0x00031615;\n            if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }\n            pcStack_6c = acStack_40;\n            puStack_70 = (uint *)0x3;\n            uVar14 = 1;\n            iVar16 = FUN_0002fec0(uVar6,param_4,1);\n            if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }\n          }" else (compound_statement "{\n            if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    /* WARNING: Could not recover jumptable at 0x00031371. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }\n            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n            uVar6 = FUN_00025ab0();\n            if (cStack_64 == '\x02') goto code_r0x00031615;\n            if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }\n            pcStack_6c = acStack_40;\n            puStack_70 = (uint *)0x3;\n            uVar14 = 1;\n            iVar16 = FUN_0002fec0(uVar6,param_4,1);\n            if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }\n          }" { (if_statement "if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    /* WARNING: Could not recover jumptable at 0x00031371. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }" if (parenthesized_expression "((char)param_3[1] != '\x16')" ( (binary_expression "(char)param_3[1] != '\x16'" (cast_expression "(char)param_3[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_3[1]" identifier [ number_literal ])) != (char_literal "'\x16'" ' escape_sequence ')) )) (compound_statement "{\ncode_r0x0003135b:\n                    /* WARNING: Could not recover jumptable at 0x00031371. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }" { (labeled_statement "code_r0x0003135b:\n                    /* WARNING: Could not recover jumptable at 0x00031371. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();" statement_identifier : comment comment (expression_statement "iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();" (assignment_expression "iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))()" identifier = (call_expression "(*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))()" (parenthesized_expression "(*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))" ( (pointer_expression "*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44)" * (cast_expression "(code *)((int)&__DT_PLTGOT + _UNK_0003ad44)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__DT_PLTGOT + _UNK_0003ad44)" ( (binary_expression "(int)&__DT_PLTGOT + _UNK_0003ad44" (cast_expression "(int)&__DT_PLTGOT" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__DT_PLTGOT" & identifier)) + identifier) )))) )) (argument_list "()" ( )))) ;)) (return_statement "return iVar3;" return identifier ;) })) (expression_statement "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;" (assignment_expression "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x28) + iVar16" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) + identifier)) ;) (expression_statement "uVar6 = FUN_00025ab0();" (assignment_expression "uVar6 = FUN_00025ab0()" identifier = (call_expression "FUN_00025ab0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cStack_64 == '\x02') goto code_r0x00031615;" if (parenthesized_expression "(cStack_64 == '\x02')" ( (binary_expression "cStack_64 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00031615;" goto statement_identifier ;)) (if_statement "if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }" if (parenthesized_expression "(cStack_64 == '\x15')" ( (binary_expression "cStack_64 == '\x15'" identifier == (char_literal "'\x15'" ' escape_sequence ')) )) (compound_statement "{\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }" { (expression_statement "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;" (assignment_expression "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x28) - iVar16" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) - identifier)) ;) (expression_statement "*(char *)(param_3 + 1) = '\x01';" (assignment_expression "*(char *)(param_3 + 1) = '\x01'" (pointer_expression "*(char *)(param_3 + 1)" * (cast_expression "(char *)(param_3 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 1)" ( (binary_expression "param_3 + 1" identifier + number_literal) )))) = (char_literal "'\x01'" ' escape_sequence ')) ;) (goto_statement "goto code_r0x0003135b;" goto statement_identifier ;) })) (expression_statement "pcStack_6c = acStack_40;" (assignment_expression "pcStack_6c = acStack_40" identifier = identifier) ;) (expression_statement "puStack_70 = (uint *)0x3;" (assignment_expression "puStack_70 = (uint *)0x3" identifier = (cast_expression "(uint *)0x3" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar14 = 1;" (assignment_expression "uVar14 = 1" identifier = number_literal) ;) (expression_statement "iVar16 = FUN_0002fec0(uVar6,param_4,1);" (assignment_expression "iVar16 = FUN_0002fec0(uVar6,param_4,1)" identifier = (call_expression "FUN_0002fec0(uVar6,param_4,1)" identifier (argument_list "(uVar6,param_4,1)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (compound_statement "{\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }" { (expression_statement "uStack_c0 = FUN_00025ab0();" (assignment_expression "uStack_c0 = FUN_00025ab0()" identifier = (call_expression "FUN_00025ab0()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar7 = puVar5;" (assignment_expression "puVar7 = puVar5" identifier = identifier) ;) (if_statement "if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }" if (parenthesized_expression "(*(int *)(iVar3 + 0x5c) < 2)" ( (binary_expression "*(int *)(iVar3 + 0x5c) < 2" (pointer_expression "*(int *)(iVar3 + 0x5c)" * (cast_expression "(int *)(iVar3 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x5c)" ( (binary_expression "iVar3 + 0x5c" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n                puVar7 = (uint *)0x0;\n              }" { (expression_statement "puVar7 = (uint *)0x0;" (assignment_expression "puVar7 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (if_statement "if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }" if (parenthesized_expression "(((int)puStack_70 - 2U & 0xfffffffd) == 0)" ( (binary_expression "((int)puStack_70 - 2U & 0xfffffffd) == 0" (parenthesized_expression "((int)puStack_70 - 2U & 0xfffffffd)" ( (binary_expression "(int)puStack_70 - 2U & 0xfffffffd" (binary_expression "(int)puStack_70 - 2U" (cast_expression "(int)puStack_70" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) & number_literal) )) == number_literal) )) (compound_statement "{\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }" { (labeled_statement "code_r0x00031b91:\n                *param_6 = 0xb;" statement_identifier : (expression_statement "*param_6 = 0xb;" (assignment_expression "*param_6 = 0xb" (pointer_expression "*param_6" * identifier) = number_literal) ;)) }) (else_clause "else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }" else (compound_statement "{\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }" { (expression_statement "uVar13 = 0xffffffff;" (assignment_expression "uVar13 = 0xffffffff" identifier = number_literal) ;) (expression_statement "pcVar10 = acStack_60;" (assignment_expression "pcVar10 = acStack_60" identifier = identifier) ;) (do_statement "do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');" do (compound_statement "{\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar2 = *pcVar10;" (assignment_expression "cVar2 = *pcVar10" identifier = (pointer_expression "*pcVar10" * identifier)) ;) (expression_statement "pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;" (assignment_expression "pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pcVar10 + (uint)bVar17 * -2 + 1" (binary_expression "pcVar10 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (if_statement "if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }" if (parenthesized_expression "(~uVar13 - 1 < 2)" ( (binary_expression "~uVar13 - 1 < 2" (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" ~ identifier) - number_literal) < number_literal) )) (compound_statement "{\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }" { (if_statement "if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }" if (parenthesized_expression "(puStack_70 == (uint *)0x3)" ( (binary_expression "puStack_70 == (uint *)0x3" identifier == (cast_expression "(uint *)0x3" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }" { (expression_statement "uVar13 = 0xffffffff;" (assignment_expression "uVar13 = 0xffffffff" identifier = number_literal) ;) (expression_statement "pcVar10 = pcStack_6c;" (assignment_expression "pcVar10 = pcStack_6c" identifier = identifier) ;) (do_statement "do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');" do (compound_statement "{\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar2 = *pcVar10;" (assignment_expression "cVar2 = *pcVar10" identifier = (pointer_expression "*pcVar10" * identifier)) ;) (expression_statement "pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;" (assignment_expression "pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pcVar10 + (uint)bVar17 * -2 + 1" (binary_expression "pcVar10 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (if_statement "if (1 < ~uVar13 - 1) goto code_r0x00031b44;" if (parenthesized_expression "(1 < ~uVar13 - 1)" ( (binary_expression "1 < ~uVar13 - 1" number_literal < (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" ~ identifier) - number_literal)) )) (goto_statement "goto code_r0x00031b44;" goto statement_identifier ;)) })) (expression_statement "pcVar10 = (char *)FUN_00026170();" (assignment_expression "pcVar10 = (char *)FUN_00026170()" identifier = (cast_expression "(char *)FUN_00026170()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00026170()" identifier (argument_list "()" ( ))))) ;) (if_statement "if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }" if (parenthesized_expression "((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3))" ( (binary_expression "(puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)" (parenthesized_expression "(puStack_70 == (uint *)0x0)" ( (binary_expression "puStack_70 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)" ( (comma_expression "pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3" (assignment_expression "pcStack_8c = pcStack_6c" identifier = identifier) , (binary_expression "puStack_70 == (uint *)0x3" identifier == (cast_expression "(uint *)0x3" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n                    pcStack_8c = (char *)FUN_00026170();\n                  }" { (expression_statement "pcStack_8c = (char *)FUN_00026170();" (assignment_expression "pcStack_8c = (char *)FUN_00026170()" identifier = (cast_expression "(char *)FUN_00026170()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00026170()" identifier (argument_list "()" ( ))))) ;) })) (if_statement "if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;" if (parenthesized_expression "((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))" ( (binary_expression "(pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff)" (parenthesized_expression "(pcVar10 == (char *)0xffffffff)" ( (binary_expression "pcVar10 == (char *)0xffffffff" identifier == (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pcStack_8c == (char *)0xffffffff)" ( (binary_expression "pcStack_8c == (char *)0xffffffff" identifier == (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (goto_statement "goto code_r0x00031b44;" goto statement_identifier ;)) (if_statement "if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;" if (parenthesized_expression "(((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10))" ( (binary_expression "((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)" (parenthesized_expression "((param_4 & 0x10000) != 0)" ( (binary_expression "(param_4 & 0x10000) != 0" (parenthesized_expression "(param_4 & 0x10000)" ( (binary_expression "param_4 & 0x10000" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(pcStack_8c < pcVar10)" ( (binary_expression "pcStack_8c < pcVar10" identifier < identifier) ))) )) (goto_statement "goto code_r0x00031b91;" goto statement_identifier ;)) (if_statement "if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }" if (parenthesized_expression "(puVar7 != (uint *)0x0)" ( (binary_expression "puVar7 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }" { (expression_statement "uVar13 = puVar7[8];" (assignment_expression "uVar13 = puVar7[8]" identifier = (subscript_expression "puVar7[8]" identifier [ number_literal ])) ;) (expression_statement "__ptr_00 = (void *)puVar7[1];" (assignment_expression "__ptr_00 = (void *)puVar7[1]" identifier = (cast_expression "(void *)puVar7[1]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar7[1]" identifier [ number_literal ]))) ;) (if_statement "if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }" if (parenthesized_expression "(uVar13 == uStack_90)" ( (binary_expression "uVar13 == uStack_90" identifier == identifier) )) (compound_statement "{\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }" { (expression_statement "uStack_90 = uStack_90 * 2 + 1;" (assignment_expression "uStack_90 = uStack_90 * 2 + 1" identifier = (binary_expression "uStack_90 * 2 + 1" (binary_expression "uStack_90 * 2" identifier * number_literal) + number_literal)) ;) (expression_statement "uVar14 = uStack_90;" (assignment_expression "uVar14 = uStack_90" identifier = identifier) ;) (expression_statement "__ptr_00 = realloc(__ptr_00,uStack_90 * 4);" (assignment_expression "__ptr_00 = realloc(__ptr_00,uStack_90 * 4)" identifier = (call_expression "realloc(__ptr_00,uStack_90 * 4)" identifier (argument_list "(__ptr_00,uStack_90 * 4)" ( identifier , (binary_expression "uStack_90 * 4" identifier * number_literal) )))) ;) (expression_statement "__ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);" (assignment_expression "__ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4)" identifier = (call_expression "realloc((void *)puVar7[2],uStack_90 * 4)" identifier (argument_list "((void *)puVar7[2],uStack_90 * 4)" ( (cast_expression "(void *)puVar7[2]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar7[2]" identifier [ number_literal ])) , (binary_expression "uStack_90 * 4" identifier * number_literal) )))) ;) (if_statement "if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }" if (parenthesized_expression "((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0))" ( (binary_expression "(__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)" (parenthesized_expression "(__ptr_00 == (void *)0x0)" ( (binary_expression "__ptr_00 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(__ptr_01 == (void *)0x0)" ( (binary_expression "__ptr_01 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }" { (expression_statement "free(__ptr_00);" (call_expression "free(__ptr_00)" identifier (argument_list "(__ptr_00)" ( identifier ))) ;) (expression_statement "free(__ptr_01);" (call_expression "free(__ptr_01)" identifier (argument_list "(__ptr_01)" ( identifier ))) ;) (expression_statement "*param_6 = 0xc;" (assignment_expression "*param_6 = 0xc" (pointer_expression "*param_6" * identifier) = number_literal) ;) (goto_statement "goto code_r0x000314ef;" goto statement_identifier ;) })) (expression_statement "puVar7[2] = (uint)__ptr_01;" (assignment_expression "puVar7[2] = (uint)__ptr_01" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = (cast_expression "(uint)__ptr_01" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar13 = puVar7[8];" (assignment_expression "uVar13 = puVar7[8]" identifier = (subscript_expression "puVar7[8]" identifier [ number_literal ])) ;) (expression_statement "puVar7[1] = (uint)__ptr_00;" (assignment_expression "puVar7[1] = (uint)__ptr_00" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = (cast_expression "(uint)__ptr_00" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) })) (expression_statement "*(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;" (assignment_expression "*(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10" (pointer_expression "*(char **)((int)__ptr_00 + uVar13 * 4)" * (cast_expression "(char **)((int)__ptr_00 + uVar13 * 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)__ptr_00 + uVar13 * 4)" ( (binary_expression "(int)__ptr_00 + uVar13 * 4" (cast_expression "(int)__ptr_00" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "uVar13 * 4" identifier * number_literal)) )))) = identifier) ;) (expression_statement "puVar7[8] = uVar13 + 1;" (assignment_expression "puVar7[8] = uVar13 + 1" (subscript_expression "puVar7[8]" identifier [ number_literal ]) = (binary_expression "uVar13 + 1" identifier + number_literal)) ;) (expression_statement "*(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;" (assignment_expression "*(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c" (pointer_expression "*(char **)(puVar7[2] + uVar13 * 4)" * (cast_expression "(char **)(puVar7[2] + uVar13 * 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7[2] + uVar13 * 4)" ( (binary_expression "puVar7[2] + uVar13 * 4" (subscript_expression "puVar7[2]" identifier [ number_literal ]) + (binary_expression "uVar13 * 4" identifier * number_literal)) )))) = identifier) ;) })) (expression_statement "pcVar11 = (char *)0x0;" (assignment_expression "pcVar11 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);" do (compound_statement "{\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  }" { (if_statement "if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }" if (parenthesized_expression "((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c))" ( (binary_expression "(pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)" (parenthesized_expression "(pcVar10 <= pcVar11)" ( (binary_expression "pcVar10 <= pcVar11" identifier <= identifier) )) && (parenthesized_expression "(pcVar11 <= pcStack_8c)" ( (binary_expression "pcVar11 <= pcStack_8c" identifier <= identifier) ))) )) (compound_statement "{\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }" { (expression_statement "__ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);" (assignment_expression "__ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f)" (subscript_expression "__ptr[(int)pcVar11 >> 5]" identifier [ (binary_expression "(int)pcVar11 >> 5" (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ]) = (binary_expression "__ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f)" (subscript_expression "__ptr[(int)pcVar11 >> 5]" identifier [ (binary_expression "(int)pcVar11 >> 5" (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ]) | (binary_expression "1 << ((byte)pcVar11 & 0x1f)" number_literal << (parenthesized_expression "((byte)pcVar11 & 0x1f)" ( (binary_expression "(byte)pcVar11 & 0x1f" (cast_expression "(byte)pcVar11" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))))) ;) })) (expression_statement "pcVar11 = pcVar11 + 1;" (assignment_expression "pcVar11 = pcVar11 + 1" identifier = (binary_expression "pcVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pcVar11 != (char *)0x100)" ( (binary_expression "pcVar11 != (char *)0x100" identifier != (cast_expression "(char *)0x100" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "*param_6 = 0;" (assignment_expression "*param_6 = 0" (pointer_expression "*param_6" * identifier) = number_literal) ;) (if_statement "if ((char)param_3[1] == '\x02') goto code_r0x00031615;" if (parenthesized_expression "((char)param_3[1] == '\x02')" ( (binary_expression "(char)param_3[1] == '\x02'" (cast_expression "(char)param_3[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_3[1]" identifier [ number_literal ])) == (char_literal "'\x02'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00031615;" goto statement_identifier ;)) (if_statement "if ((char)param_3[1] != '\x15') goto code_r0x000314d1;" if (parenthesized_expression "((char)param_3[1] != '\x15')" ( (binary_expression "(char)param_3[1] != '\x15'" (cast_expression "(char)param_3[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_3[1]" identifier [ number_literal ])) != (char_literal "'\x15'" ' escape_sequence ')) )) (goto_statement "goto code_r0x000314d1;" goto statement_identifier ;)) (expression_statement "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;" (assignment_expression "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x28) + uStack_c0" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) + identifier)) ;) (if_statement "if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }" { (expression_statement "puVar7 = __ptr;" (assignment_expression "puVar7 = __ptr" identifier = identifier) ;) (do_statement "do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);" do (compound_statement "{\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    }" { (expression_statement "*puVar7 = ~*puVar7;" (assignment_expression "*puVar7 = ~*puVar7" (pointer_expression "*puVar7" * identifier) = (unary_expression "~*puVar7" ~ (pointer_expression "*puVar7" * identifier))) ;) (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" identifier = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(__ptr + 8 != puVar7)" ( (binary_expression "__ptr + 8 != puVar7" (binary_expression "__ptr + 8" identifier + number_literal) != identifier) )) ;) })) (expression_statement "iVar16 = *(int *)(iVar3 + 0x5c);" (assignment_expression "iVar16 = *(int *)(iVar3 + 0x5c)" identifier = (pointer_expression "*(int *)(iVar3 + 0x5c)" * (cast_expression "(int *)(iVar3 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x5c)" ( (binary_expression "iVar3 + 0x5c" identifier + number_literal) ))))) ;) (if_statement "if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }" if (parenthesized_expression "(1 < iVar16)" ( (binary_expression "1 < iVar16" number_literal < identifier) )) (compound_statement "{\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }" { (expression_statement "iVar4 = *(int *)(iVar3 + 0x3c);" (assignment_expression "iVar4 = *(int *)(iVar3 + 0x3c)" identifier = (pointer_expression "*(int *)(iVar3 + 0x3c)" * (cast_expression "(int *)(iVar3 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x3c)" ( (binary_expression "iVar3 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);" do (compound_statement "{\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    }" { (expression_statement "__ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);" (assignment_expression "__ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4)" (subscript_expression "__ptr[iVar12]" identifier [ identifier ]) = (binary_expression "__ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4)" (subscript_expression "__ptr[iVar12]" identifier [ identifier ]) & (pointer_expression "*(uint *)(iVar4 + iVar12 * 4)" * (cast_expression "(uint *)(iVar4 + iVar12 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + iVar12 * 4)" ( (binary_expression "iVar4 + iVar12 * 4" identifier + (binary_expression "iVar12 * 4" identifier * number_literal)) )))))) ;) (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar12 != 8)" ( (binary_expression "iVar12 != 8" identifier != number_literal) )) ;) })) (if_statement "if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }" if (parenthesized_expression "(((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0))))))" ( (binary_expression "((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))" (parenthesized_expression "((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0))" ( (binary_expression "(((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)" (parenthesized_expression "(((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0))" ( (binary_expression "((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)" (parenthesized_expression "((puVar5[5] != 0) || (puVar5[6] != 0))" ( (binary_expression "(puVar5[5] != 0) || (puVar5[6] != 0)" (parenthesized_expression "(puVar5[5] != 0)" ( (binary_expression "puVar5[5] != 0" (subscript_expression "puVar5[5]" identifier [ number_literal ]) != number_literal) )) || (parenthesized_expression "(puVar5[6] != 0)" ( (binary_expression "puVar5[6] != 0" (subscript_expression "puVar5[6]" identifier [ number_literal ]) != number_literal) ))) )) || (parenthesized_expression "(puVar5[7] != 0)" ( (binary_expression "puVar5[7] != 0" (subscript_expression "puVar5[7]" identifier [ number_literal ]) != number_literal) ))) )) || (parenthesized_expression "(puVar5[8] != 0)" ( (binary_expression "puVar5[8] != 0" (subscript_expression "puVar5[8]" identifier [ number_literal ]) != number_literal) ))) )) || (parenthesized_expression "((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))" ( (parenthesized_expression "(1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0))))" ( (binary_expression "1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))" (binary_expression "1 < iVar16" number_literal < identifier) && (parenthesized_expression "((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))" ( (parenthesized_expression "(puVar5[9] != 0 || ((puVar5[4] & 1) != 0))" ( (binary_expression "puVar5[9] != 0 || ((puVar5[4] & 1) != 0)" (binary_expression "puVar5[9] != 0" (subscript_expression "puVar5[9]" identifier [ number_literal ]) != number_literal) || (parenthesized_expression "((puVar5[4] & 1) != 0)" ( (binary_expression "(puVar5[4] & 1) != 0" (parenthesized_expression "(puVar5[4] & 1)" ( (binary_expression "puVar5[4] & 1" (subscript_expression "puVar5[4]" identifier [ number_literal ]) & number_literal) )) != number_literal) ))) )) ))) )) ))) )) (compound_statement "{\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }" { (expression_statement "*(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;" (assignment_expression "*(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2" (pointer_expression "*(byte *)(iVar3 + 0x58)" * (cast_expression "(byte *)(iVar3 + 0x58)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x58)" ( (binary_expression "iVar3 + 0x58" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar3 + 0x58) | 2" (pointer_expression "*(byte *)(iVar3 + 0x58)" * (cast_expression "(byte *)(iVar3 + 0x58)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x58)" ( (binary_expression "iVar3 + 0x58" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);" (assignment_expression "pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6)" identifier = (cast_expression "(char *)CONCAT31(pcStack_6c._1_3_,6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(pcStack_6c._1_3_,6)" identifier (argument_list "(pcStack_6c._1_3_,6)" ( (field_expression "pcStack_6c._1_3_" identifier . field_identifier) , number_literal ))))) ;) (expression_statement "puStack_70 = puVar5;" (assignment_expression "puStack_70 = puVar5" identifier = identifier) ;) (expression_statement "local_b0 = FUN_00028330(0,&puStack_70,uVar14);" (assignment_expression "local_b0 = FUN_00028330(0,&puStack_70,uVar14)" identifier = (call_expression "FUN_00028330(0,&puStack_70,uVar14)" identifier (argument_list "(0,&puStack_70,uVar14)" ( number_literal , (pointer_expression "&puStack_70" & identifier) , identifier )))) ;) (expression_statement "puVar5 = __ptr;" (assignment_expression "puVar5 = __ptr" identifier = identifier) ;) (if_statement "if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }" if (parenthesized_expression "(local_b0 != 0)" ( (binary_expression "local_b0 != 0" identifier != number_literal) )) (compound_statement "{\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }" { (while_statement "while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }" while (parenthesized_expression "(*puVar5 == 0)" ( (binary_expression "*puVar5 == 0" (pointer_expression "*puVar5" * identifier) == number_literal) )) (compound_statement "{\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }" { (expression_statement "puVar5 = puVar5 + 1;" (assignment_expression "puVar5 = puVar5 + 1" identifier = (binary_expression "puVar5 + 1" identifier + number_literal)) ;) (if_statement "if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }" if (parenthesized_expression "(__ptr + 8 == puVar5)" ( (binary_expression "__ptr + 8 == puVar5" (binary_expression "__ptr + 8" identifier + number_literal) == identifier) )) (compound_statement "{\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }" { (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (goto_statement "goto code_r0x0003093e;" goto statement_identifier ;) })) })) (expression_statement "pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);" (assignment_expression "pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3)" identifier = (cast_expression "(char *)CONCAT31(pcStack_6c._1_3_,3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(pcStack_6c._1_3_,3)" identifier (argument_list "(pcStack_6c._1_3_,3)" ( (field_expression "pcStack_6c._1_3_" identifier . field_identifier) , number_literal ))))) ;) (expression_statement "puStack_70 = __ptr;" (assignment_expression "puStack_70 = __ptr" identifier = identifier) ;) (expression_statement "iVar3 = FUN_00028330(0,&puStack_70);" (assignment_expression "iVar3 = FUN_00028330(0,&puStack_70)" identifier = (call_expression "FUN_00028330(0,&puStack_70)" identifier (argument_list "(0,&puStack_70)" ( number_literal , (pointer_expression "&puStack_70" & identifier) )))) ;) (if_statement "if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }" { (expression_statement "cStack_64 = '\n';" (assignment_expression "cStack_64 = '\n'" identifier = (char_literal "'\n'" ' escape_sequence ')) ;) (expression_statement "ppuVar18 = &puStack_68;" (assignment_expression "ppuVar18 = &puStack_68" identifier = (pointer_expression "&puStack_68" & identifier)) ;) (goto_statement "goto code_r0x000319aa;" goto statement_identifier ;) })) })) (labeled_statement "code_r0x000319be:\n                    *param_6 = 0xc;" statement_identifier : (expression_statement "*param_6 = 0xc;" (assignment_expression "*param_6 = 0xc" (pointer_expression "*param_6" * identifier) = number_literal) ;)) (goto_statement "goto code_r0x000314ef;" goto statement_identifier ;) })) (expression_statement "FUN_00026c30();" (call_expression "FUN_00026c30()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);" (assignment_expression "pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3)" identifier = (cast_expression "(char *)CONCAT31(pcStack_6c._1_3_,3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(pcStack_6c._1_3_,3)" identifier (argument_list "(pcStack_6c._1_3_,3)" ( (field_expression "pcStack_6c._1_3_" identifier . field_identifier) , number_literal ))))) ;) (expression_statement "ppuVar18 = &puStack_70;" (assignment_expression "ppuVar18 = &puStack_70" identifier = (pointer_expression "&puStack_70" & identifier)) ;) (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" identifier = number_literal) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "puStack_70 = __ptr;" (assignment_expression "puStack_70 = __ptr" identifier = identifier) ;) (labeled_statement "code_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);" statement_identifier : (expression_statement "local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);" (assignment_expression "local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14)" identifier = (call_expression "FUN_00028330(local_b0,ppuVar18,uVar14)" identifier (argument_list "(local_b0,ppuVar18,uVar14)" ( identifier , identifier , identifier )))) ;)) (if_statement "if (local_b0 == 0) goto code_r0x000319be;" if (parenthesized_expression "(local_b0 == 0)" ( (binary_expression "local_b0 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x000319be;" goto statement_identifier ;)) (goto_statement "goto code_r0x0003093e;" goto statement_identifier ;) })) (labeled_statement "code_r0x00031b44:\n                *param_6 = 3;" statement_identifier : (expression_statement "*param_6 = 3;" (assignment_expression "*param_6 = 3" (pointer_expression "*param_6" * identifier) = number_literal) ;)) }))) }) (else_clause "else {\n              *param_6 = iVar16;\n            }" else (compound_statement "{\n              *param_6 = iVar16;\n            }" { (expression_statement "*param_6 = iVar16;" (assignment_expression "*param_6 = iVar16" (pointer_expression "*param_6" * identifier) = identifier) ;) }))) }))) }) (else_clause "else {\n          *param_6 = iVar16;\n        }" else (compound_statement "{\n          *param_6 = iVar16;\n        }" { (expression_statement "*param_6 = iVar16;" (assignment_expression "*param_6 = iVar16" (pointer_expression "*param_6" * identifier) = identifier) ;) }))) (goto_statement "goto code_r0x000314ef;" goto statement_identifier ;) })) (expression_statement "*(byte *)(puVar5 + 4) = (byte)puVar5[4] | 1;" (assignment_expression "*(byte *)(puVar5 + 4) = (byte)puVar5[4] | 1" (pointer_expression "*(byte *)(puVar5 + 4)" * (cast_expression "(byte *)(puVar5 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 4)" ( (binary_expression "puVar5 + 4" identifier + number_literal) )))) = (binary_expression "(byte)puVar5[4] | 1" (cast_expression "(byte)puVar5[4]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar5[4]" identifier [ number_literal ])) | number_literal)) ;) (if_statement "if ((param_4 & 0x100) != 0) {\n        *__ptr = *__ptr | 0x400;\n      }" if (parenthesized_expression "((param_4 & 0x100) != 0)" ( (binary_expression "(param_4 & 0x100) != 0" (parenthesized_expression "(param_4 & 0x100)" ( (binary_expression "param_4 & 0x100" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        *__ptr = *__ptr | 0x400;\n      }" { (expression_statement "*__ptr = *__ptr | 0x400;" (assignment_expression "*__ptr = *__ptr | 0x400" (pointer_expression "*__ptr" * identifier) = (binary_expression "*__ptr | 0x400" (pointer_expression "*__ptr" * identifier) | number_literal)) ;) })) (expression_statement "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;" (assignment_expression "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x28) + uStack_c0" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) + identifier)) ;) (expression_statement "uStack_c0 = FUN_00025ab0();" (assignment_expression "uStack_c0 = FUN_00025ab0()" identifier = (call_expression "FUN_00025ab0()" identifier (argument_list "()" ( )))) ;) (expression_statement "cVar2 = (char)param_3[1];" (assignment_expression "cVar2 = (char)param_3[1]" identifier = (cast_expression "(char)param_3[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_3[1]" identifier [ number_literal ]))) ;) (if_statement "if (cVar2 != '\x02') {\n        bVar1 = true;\n        goto code_r0x000312a6;\n      }" if (parenthesized_expression "(cVar2 != '\x02')" ( (binary_expression "cVar2 != '\x02'" identifier != (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n        bVar1 = true;\n        goto code_r0x000312a6;\n      }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (goto_statement "goto code_r0x000312a6;" goto statement_identifier ;) })) })) (expression_statement "*param_6 = 2;" (assignment_expression "*param_6 = 2" (pointer_expression "*param_6" * identifier) = number_literal) ;) (labeled_statement "code_r0x000314ef:\n    free(__ptr);" statement_identifier : (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;)) (expression_statement "FUN_00026c30();" (call_expression "FUN_00026c30()" identifier (argument_list "()" ( ))) ;) (if_statement "if (*param_6 == 0) {\n      local_b0 = 0;\n      goto code_r0x0003093e;\n    }" if (parenthesized_expression "(*param_6 == 0)" ( (binary_expression "*param_6 == 0" (pointer_expression "*param_6" * identifier) == number_literal) )) (compound_statement "{\n      local_b0 = 0;\n      goto code_r0x0003093e;\n    }" { (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" identifier = number_literal) ;) (goto_statement "goto code_r0x0003093e;" goto statement_identifier ;) })) (labeled_statement "LAB_00030e58:\n    local_b0 = 0;" statement_identifier : (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" identifier = number_literal) ;)) (goto_statement "goto LAB_00030965;" goto statement_identifier ;)) (case_statement "case '\x17':\n    if ((param_4 & 0x1000000) == 0) goto code_r0x000308ec;\ncode_r0x00030b48:\n    local_b0 = 0;\n    *param_6 = 0xd;\n    goto LAB_00030965;" case (char_literal "'\x17'" ' escape_sequence ') : (if_statement "if ((param_4 & 0x1000000) == 0) goto code_r0x000308ec;" if (parenthesized_expression "((param_4 & 0x1000000) == 0)" ( (binary_expression "(param_4 & 0x1000000) == 0" (parenthesized_expression "(param_4 & 0x1000000)" ( (binary_expression "param_4 & 0x1000000" identifier & number_literal) )) == number_literal) )) (goto_statement "goto code_r0x000308ec;" goto statement_identifier ;)) (labeled_statement "code_r0x00030b48:\n    local_b0 = 0;" statement_identifier : (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" identifier = number_literal) ;)) (expression_statement "*param_6 = 0xd;" (assignment_expression "*param_6 = 0xd" (pointer_expression "*param_6" * identifier) = number_literal) ;) (goto_statement "goto LAB_00030965;" goto statement_identifier ;)) (case_statement "case ' ':" case (char_literal "' '" ' character ') :) (case_statement "case '!':\n    local_b0 = FUN_0002b9b0(&UNK_000370bb,cVar2 == '!',param_6);\n    iVar3 = *param_6;\n    goto joined_r0x00030f59;" case (char_literal "'!'" ' character ') : (expression_statement "local_b0 = FUN_0002b9b0(&UNK_000370bb,cVar2 == '!',param_6);" (assignment_expression "local_b0 = FUN_0002b9b0(&UNK_000370bb,cVar2 == '!',param_6)" identifier = (call_expression "FUN_0002b9b0(&UNK_000370bb,cVar2 == '!',param_6)" identifier (argument_list "(&UNK_000370bb,cVar2 == '!',param_6)" ( (pointer_expression "&UNK_000370bb" & identifier) , (binary_expression "cVar2 == '!'" identifier == (char_literal "'!'" ' character ')) , identifier )))) ;) (expression_statement "iVar3 = *param_6;" (assignment_expression "iVar3 = *param_6" identifier = (pointer_expression "*param_6" * identifier)) ;) (goto_statement "goto joined_r0x00030f59;" goto statement_identifier ;)) (case_statement "case '\"':" case (char_literal "'\"'" ' escape_sequence ') :) (case_statement "case '#':\n    local_b0 = FUN_0002b9b0("",cVar2 == '#',param_6);\n    iVar3 = *param_6;\njoined_r0x00030f59:\n    if ((iVar3 != 0) && (local_b0 == 0)) goto LAB_00030e58;\n    goto code_r0x0003093e;" case (char_literal "'#'" ' character ') : (expression_statement "local_b0 = FUN_0002b9b0("",cVar2 == '#',param_6);" (assignment_expression "local_b0 = FUN_0002b9b0("",cVar2 == '#',param_6)" identifier = (call_expression "FUN_0002b9b0("",cVar2 == '#',param_6)" identifier (argument_list "("",cVar2 == '#',param_6)" ( (string_literal """" " ") , (binary_expression "cVar2 == '#'" identifier == (char_literal "'#'" ' character ')) , identifier )))) ;) (expression_statement "iVar3 = *param_6;" (assignment_expression "iVar3 = *param_6" identifier = (pointer_expression "*param_6" * identifier)) ;) (labeled_statement "joined_r0x00030f59:\n    if ((iVar3 != 0) && (local_b0 == 0)) goto LAB_00030e58;" statement_identifier : (if_statement "if ((iVar3 != 0) && (local_b0 == 0)) goto LAB_00030e58;" if (parenthesized_expression "((iVar3 != 0) && (local_b0 == 0))" ( (binary_expression "(iVar3 != 0) && (local_b0 == 0)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "(local_b0 == 0)" ( (binary_expression "local_b0 == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_00030e58;" goto statement_identifier ;))) (goto_statement "goto code_r0x0003093e;" goto statement_identifier ;)) (case_statement "case '$':\n    local_b0 = 0;\n    *param_6 = 5;\n    goto LAB_00030965;" case (char_literal "'$'" ' character ') : (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" identifier = number_literal) ;) (expression_statement "*param_6 = 5;" (assignment_expression "*param_6 = 5" (pointer_expression "*param_6" * identifier) = number_literal) ;) (goto_statement "goto LAB_00030965;" goto statement_identifier ;)) })) (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" identifier = number_literal) ;) (expression_statement "*param_6 = 0xc;" (assignment_expression "*param_6 = 0xc" (pointer_expression "*param_6" * identifier) = number_literal) ;) (labeled_statement "LAB_00030965:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00036030();\n  }" statement_identifier : (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00036030();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(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                    /* WARNING: Subroutine does not return */\n    FUN_00036030();\n  }" { comment (expression_statement "FUN_00036030();" (call_expression "FUN_00036030()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return local_b0;" return identifier ;) (labeled_statement "code_r0x000314d1:\n  uVar6 = 0;" statement_identifier : (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;)) (goto_statement "goto code_r0x000312e4;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */\n\nbin_tree_t * __regparm3\nparse_expression(re_string_t *regexp,regex_t *preg,re_token_t *token,reg_syntax_t syntax,Idx nest,\n                reg_errcode_t *err)\n\n{\n  bin_tree_storage_t **ppbVar1;\n  int *piVar2;\n  int iVar3;\n  re_dfa_t *dfa;\n  undefined4 uVar4;\n  re_context_type rVar5;\n  re_bitset_ptr_t pbVar6;\n  bool bVar7;\n  uchar uVar8;\n  char cVar9;\n  undefined1 b;\n  int iVar10;\n  bin_tree_t *pbVar11;\n  bin_tree_t *pbVar12;\n  anon_union_4_5_a39f51ca_for_opr aVar13;\n  anon_union_4_5_a39f51ca_for_opr cset;\n  reg_syntax_t syntax_00;\n  reg_errcode_t rVar14;\n  int iVar15;\n  anon_union_4_5_a39f51ca_for_opr aVar16;\n  ushort **ppuVar17;\n  ushort *puVar18;\n  anon_union_4_3_ebfdf496_for_opr aVar19;\n  wchar_t *__ptr;\n  wchar_t *__ptr_00;\n  uchar *puVar20;\n  bitset_word_t *pbVar21;\n  uchar uVar22;\n  uint uVar23;\n  char *pcVar24;\n  int in_GS_OFFSET;\n  byte bVar25;\n  re_dfa_t *dfa_1;\n  undefined1 accept_hyphen;\n  Idx IVar26;\n  reg_errcode_t *in_stack_ffffff34;\n  bin_tree_t *local_c0;\n  bin_tree_t *local_b0;\n  bin_tree_t *local_a4;\n  int local_90;\n  uchar *local_8c;\n  Idx char_class_alloc;\n  bracket_elem_t start_elem;\n  re_token_t br_token;\n  re_token_t t;\n  uchar start_name_buf [32];\n  uchar end_name_buf [32];\n  \n  bVar25 = 0;\n  iVar3 = *(int *)(in_GS_OFFSET + 0x14);\n  dfa = preg->buffer;\n  cVar9 = token->field_0x4;\n  switch(cVar9) {\n  default:\n    goto _L3134;\n  case '\x01':\n    piVar2 = &dfa->str_tree_storage_idx;\n    ppbVar1 = &dfa->str_tree_storage;\n    local_b0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                 (re_token_t *)0x0,(re_dfa_t *)token);\n    if (local_b0 != (bin_tree_t *)0x0) {\n      if (dfa->mb_cur_max < 2) goto LAB_0003093e;\n      do {\n        iVar10 = regexp->cur_idx;\n        if (((regexp->stop <= iVar10) || (iVar10 == regexp->valid_len)) ||\n           (regexp->wcs[iVar10] != 0xffffffff)) goto LAB_0003093e;\n        iVar10 = peek_token(token,regexp,syntax);\n        regexp->cur_idx = regexp->cur_idx + iVar10;\n        pbVar12 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                    (re_token_t *)0x0,(re_dfa_t *)token);\n        t._4_1_ = 0x10;\n        local_b0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,local_b0,\n                                     (re_token_t *)pbVar12,(re_dfa_t *)&t);\n      } while (pbVar12 != (bin_tree_t *)0x0 && local_b0 != (bin_tree_t *)0x0);\n    }\n    break;\n  case '\x04':\n    uVar23 = 1 << ((token->opr).c & 0x1f);\n    if ((dfa->completed_bkref_map & uVar23) == 0) {\n      local_b0 = (bin_tree_t *)0x0;\n      *err = _REG_ESUBREG;\n      goto LAB_00030965;\n    }\n    dfa->used_bkref_map = dfa->used_bkref_map | uVar23;\n    local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                 (bin_tree_t *)&dfa->str_tree_storage_idx,(bin_tree_t *)0x0,\n                                 (re_token_t *)0x0,(re_dfa_t *)token);\n    if (local_b0 != (bin_tree_t *)0x0) {\n      dfa->nbackref = dfa->nbackref + 1;\n      dfa->field_0x58 = dfa->field_0x58 | 2;\n      goto LAB_0003093e;\n    }\n    break;\n  case '\x05':\n    local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                 (bin_tree_t *)&dfa->str_tree_storage_idx,(bin_tree_t *)0x0,\n                                 (re_token_t *)0x0,(re_dfa_t *)token);\n    if (local_b0 == (bin_tree_t *)0x0) break;\n    if (1 < dfa->mb_cur_max) {\n      dfa->field_0x58 = dfa->field_0x58 | 2;\n    }\n    goto LAB_0003093e;\n  case '\b':\n    rVar5 = preg->re_nsub;\n    pbVar12 = (bin_tree_t *)0x0;\n    preg->re_nsub = rVar5 + 1;\n    IVar26 = 0x30fbf;\n    iVar10 = peek_token(token,regexp,syntax | 0x800000);\n    regexp->cur_idx = regexp->cur_idx + iVar10;\n    if (token->field_0x4 == '\t') {\nLAB_00030fd0:\n      if (rVar5 < WORD_LAST) {\n        dfa->completed_bkref_map = dfa->completed_bkref_map | 1 << ((byte)rVar5 & 0x1f);\n      }\n      t._4_1_ = 0x11;\n      local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                   (bin_tree_t *)&dfa->str_tree_storage_idx,pbVar12,\n                                   (re_token_t *)0x0,(re_dfa_t *)&t);\n      if (local_b0 != (bin_tree_t *)0x0) {\n        (local_b0->token).opr.ctx_type = rVar5;\n        goto LAB_0003093e;\n      }\n      break;\n    }\n    pbVar12 = parse_reg_exp(regexp,(regex_t *)syntax,(re_token_t *)(nest + 1),(reg_syntax_t)err,\n                            IVar26,in_stack_ffffff34);\n    if (*err == _REG_NOERROR) {\n      if (token->field_0x4 == '\t') goto LAB_00030fd0;\n      if (pbVar12 != (bin_tree_t *)0x0) {\n        postorder(pbVar12,free_tree,(void *)0x0);\n      }\n      *err = _REG_EPAREN;\n    }\n    goto _L3134;\n  case '\t':\n_L3123:\n    if ((syntax & 0x20000) == 0) {\n      local_b0 = (bin_tree_t *)0x0;\n      *err = _REG_ERPAREN;\n      goto LAB_00030965;\n    }\n  case '\x18':\n_L3118:\n    token->field_0x4 = 1;\n    local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                 (bin_tree_t *)&dfa->str_tree_storage_idx,(bin_tree_t *)0x0,\n                                 (re_token_t *)0x0,(re_dfa_t *)token);\n    if (local_b0 != (bin_tree_t *)0x0) {\nLAB_0003093e:\n      iVar10 = peek_token(token,regexp,syntax);\n      regexp->cur_idx = regexp->cur_idx + iVar10;\n      uVar23 = (uint)(byte)token->field_0x4;\n      do {\n        bVar25 = (byte)uVar23;\n        if ((0x17 < bVar25) || ((0x8c0800U >> (uVar23 & 0x1f) & 1) == 0)) goto LAB_00030965;\n        IVar26 = regexp->cur_idx;\n        aVar13 = token->opr;\n        uVar4 = *(undefined4 *)&token->field_0x4;\n        local_a4 = local_b0;\n        pbVar12 = local_b0;\n        if (bVar25 == 0x17) {\n          uVar23 = fetch_number(regexp,token,syntax);\n          if (uVar23 == 0xffffffff) {\n            if ((token->field_0x4 == '\x01') && ((token->opr).c == ',')) {\n              uVar23 = 0;\nLAB_00030d4d:\n              local_c0 = (bin_tree_t *)fetch_number(regexp,token,syntax);\n              if (local_c0 == (bin_tree_t *)0xfffffffe) goto LAB_00030cd8;\n              if (((local_c0 == (bin_tree_t *)0xffffffff) || ((int)uVar23 <= (int)local_c0)) &&\n                 (token->field_0x4 == '\x18')) {\n                pbVar11 = (bin_tree_t *)uVar23;\n                if (local_c0 != (bin_tree_t *)0xffffffff) goto LAB_00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\nLAB_00030e40:\n            *err = _REG_BADBR;\n          }\n          else {\n            if (uVar23 != 0xfffffffe) {\n              local_c0 = (bin_tree_t *)uVar23;\n              if (token->field_0x4 != '\x18') {\n                if (token->field_0x4 != '\x01') goto LAB_00030cd8;\n                if ((token->opr).c == ',') goto LAB_00030d4d;\n                if ((syntax & 0x200000) == 0) goto LAB_00030e40;\n                goto LAB_00030ce9;\n              }\nLAB_00030dfc:\n              pbVar11 = local_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)pbVar11) {\n                *err = _REG_ESIZE;\n                goto LAB_00030e4a;\n              }\n              iVar10 = peek_token(token,regexp,syntax);\n              regexp->cur_idx = regexp->cur_idx + iVar10;\n              if (local_b0 == (bin_tree_t *)0x0) goto LAB_00030d10;\n              if (local_c0 != (bin_tree_t *)0x0 || uVar23 != 0) {\n                if ((int)uVar23 < 1) {\n                  local_a4 = (bin_tree_t *)0x0;\n                  goto LAB_00030eb9;\n                }\n                if (uVar23 != 1) {\n                  iVar10 = 2;\n                  do {\n                    pbVar12 = duplicate_tree(pbVar12,dfa);\n                    t._4_1_ = 0x10;\n                    local_a4 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,local_a4,\n                                                 (re_token_t *)pbVar12,(re_dfa_t *)&t);\n                    if ((pbVar12 == (bin_tree_t *)0x0) || (local_a4 == (bin_tree_t *)0x0))\n                    goto LAB_00030be0;\n                    iVar10 = iVar10 + 1;\n                  } while (iVar10 <= (int)uVar23);\n                }\n                pbVar11 = local_a4;\n                if (local_c0 != (bin_tree_t *)uVar23) goto LAB_00030e9c;\n                goto LAB_00030b08;\n              }\n              postorder(local_b0,free_tree,(void *)0x0);\n              if (*err == _REG_NOERROR) goto LAB_00030d1e;\n              goto LAB_00030bea;\n            }\nLAB_00030cd8:\n            if ((syntax & 0x200000) == 0) {\n              if (token->field_0x4 != '\x02') goto LAB_00030e40;\n              *err = _REG_EBRACE;\n              goto LAB_00030e4a;\n            }\nLAB_00030ce9:\n            regexp->cur_idx = IVar26;\n            token->opr = aVar13;\n            *(undefined4 *)&token->field_0x4 = uVar4;\n            token->field_0x4 = 1;\n            pbVar11 = local_b0;\nLAB_00030af2:\n            if ((*err == _REG_NOERROR) || (pbVar11 != (bin_tree_t *)0x0)) goto LAB_00030b08;\n          }\nLAB_00030e4a:\n          if (local_b0 == (bin_tree_t *)0x0) goto _L3134;\nLAB_00030bea:\n          postorder(local_b0,free_tree,(void *)0x0);\n          local_b0 = (bin_tree_t *)0x0;\n          goto LAB_00030965;\n        }\n        uVar23 = (uint)(bVar25 == 0x12);\n        if (bVar25 == 0x13) {\n          iVar10 = peek_token(token,regexp,syntax);\n          regexp->cur_idx = regexp->cur_idx + iVar10;\n          if (local_b0 == (bin_tree_t *)0x0) goto LAB_00030d10;\n          if ((local_b0->token).field_0x4 == '\x11') {\n            local_c0 = (bin_tree_t *)0x1;\n            local_a4 = (bin_tree_t *)0x0;\n            goto LAB_00030c76;\n          }\n          local_c0 = (bin_tree_t *)0x1;\n          t._4_1_ = 10;\n          local_a4 = (bin_tree_t *)0x0;\nLAB_00030a18:\n          ppbVar1 = &dfa->str_tree_storage;\n          piVar2 = &dfa->str_tree_storage_idx;\n          pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar12,\n                                      (re_token_t *)0x0,(re_dfa_t *)&t);\n          if (pbVar11 == (bin_tree_t *)0x0) {\nLAB_00030be0:\n            *err = _REG_ESPACE;\n            goto LAB_00030bea;\n          }\n          for (iVar10 = uVar23 + 2; iVar10 <= (int)local_c0; iVar10 = iVar10 + 1) {\n            pbVar12 = duplicate_tree(pbVar12,dfa);\n            t._4_1_ = 0x10;\n            pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar11,\n                                        (re_token_t *)pbVar12,(re_dfa_t *)&t);\n            if ((pbVar12 == (bin_tree_t *)0x0) || (pbVar11 == (bin_tree_t *)0x0)) goto LAB_00030be0;\n            t._4_1_ = 10;\n            pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar11,\n                                        (re_token_t *)0x0,(re_dfa_t *)&t);\n            if (pbVar11 == (bin_tree_t *)0x0) goto LAB_00030be0;\n          }\n          if (local_a4 != (bin_tree_t *)0x0) {\n            t._4_1_ = 0x10;\n            pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,local_a4,\n                                        (re_token_t *)pbVar11,(re_dfa_t *)&t);\n            goto LAB_00030af2;\n          }\n        }\n        else {\n          iVar10 = peek_token(token,regexp,syntax);\n          regexp->cur_idx = regexp->cur_idx + iVar10;\n          if (local_b0 != (bin_tree_t *)0x0) {\n            if (bVar25 != 0x12) {\n              if ((local_b0->token).field_0x4 == '\x11') {\n                local_c0 = (bin_tree_t *)0xffffffff;\n                uVar23 = 0;\n                local_a4 = (bin_tree_t *)0x0;\nLAB_00030c76:\n                postorder(pbVar12,mark_opt_subexp,(pbVar12->token).opr.sbcset);\n                goto LAB_00030c8a;\n              }\n              local_c0 = (bin_tree_t *)0xffffffff;\n              uVar23 = 0;\n              local_a4 = (bin_tree_t *)0x0;\nLAB_00030a13:\n              t._4_1_ = 0xb;\n              goto LAB_00030a18;\n            }\n            local_c0 = (bin_tree_t *)0xffffffff;\n            uVar23 = 1;\nLAB_00030e9c:\n            pbVar12 = duplicate_tree(pbVar12,dfa);\n            if (pbVar12 != (bin_tree_t *)0x0) {\nLAB_00030eb9:\n              if ((pbVar12->token).field_0x4 == '\x11') goto LAB_00030c76;\nLAB_00030c8a:\n              if (local_c0 != (bin_tree_t *)0xffffffff) {\n                t._4_1_ = 10;\n                goto LAB_00030a18;\n              }\n              goto LAB_00030a13;\n            }\n            goto LAB_00030be0;\n          }\nLAB_00030d10:\n          if (*err != _REG_NOERROR) goto _L3134;\nLAB_00030d1e:\n          local_b0 = (bin_tree_t *)0x0;\n          pbVar11 = local_b0;\n        }\nLAB_00030b08:\n        local_b0 = pbVar11;\n        bVar25 = token->field_0x4;\n        uVar23 = (uint)bVar25;\n      } while (((syntax & 0x1000000) == 0) || ((bVar25 != 0xb && (bVar25 != 0x17))));\n      if (local_b0 != (bin_tree_t *)0x0) {\n        postorder(local_b0,free_tree,(void *)0x0);\n      }\n      goto LAB_00030b48;\n    }\n    break;\n  case '\v':\n  case '\x12':\n  case '\x13':\n_L3121:\n    if ((syntax & 0x20) == 0) {\n      if ((syntax & 0x10) != 0) {\n        iVar10 = peek_token(token,regexp,syntax);\n        regexp->cur_idx = regexp->cur_idx + iVar10;\n        local_b0 = parse_expression(regexp,preg,token,syntax,nest,err);\n        goto LAB_00030965;\n      }\n      if (cVar9 == '\t') goto _L3123;\n      goto _L3118;\n    }\n    goto LAB_00030b48;\n  case '\f':\n    local_c0 = (bin_tree_t *)(token->opr).ctx_type;\n    if ((((uint)local_c0 & 0x30f) != 0) && (bVar25 = dfa->field_0x58, (bVar25 & 0x10) == 0)) {\n      dfa->field_0x58 = bVar25 | 0x10;\n      if ((bVar25 & 8) == 0) {\n        dfa->word_char[0] = 0;\n        dfa->word_char[1] = 0x3ff0000;\n        dfa->word_char[2] = 0x87fffffe;\n        dfa->word_char[3] = 0x7fffffe;\n        if ((bVar25 & 4) != 0) {\n          dfa->word_char[4] = 0;\n          dfa->word_char[5] = 0;\n          dfa->word_char[6] = 0;\n          dfa->word_char[7] = 0;\n          local_c0 = (bin_tree_t *)(token->opr).idx;\n          goto LAB_00031089;\n        }\n        iVar15 = 0x80;\n        iVar10 = 4;\n      }\n      else {\n        iVar15 = 0;\n        iVar10 = 0;\n      }\n      ppuVar17 = __ctype_b_loc();\n      pbVar21 = dfa->word_char + iVar10 + -0x18;\n      puVar18 = *ppuVar17 + iVar15;\n      do {\n        iVar10 = 0;\n        do {\n          if (((puVar18[iVar10] & 8) != 0) || (iVar15 + iVar10 == 0x5f)) {\n            pbVar21[0x18] = pbVar21[0x18] | 1 << ((byte)iVar10 & 0x1f);\n          }\n          iVar10 = iVar10 + 1;\n        } while (iVar10 != 0x20);\n        iVar15 = iVar15 + 0x20;\n        pbVar21 = pbVar21 + 1;\n        puVar18 = puVar18 + 0x20;\n      } while (&dfa->state_table != (re_state_table_entry **)pbVar21);\n    }\nLAB_00031089:\n    ppbVar1 = &dfa->str_tree_storage;\n    piVar2 = &dfa->str_tree_storage_idx;\n    if (((int)local_c0 - WORD_DELIM & 0xfffffeff) == 0) {\n      if (local_c0 == (bin_tree_t *)0x100) {\n        (token->opr).idx = 6;\n        local_c0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                     (re_token_t *)0x0,(re_dfa_t *)token);\n        (token->opr).idx = 9;\n      }\n      else {\n        (token->opr).idx = 5;\n        local_c0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                     (re_token_t *)0x0,(re_dfa_t *)token);\n        (token->opr).idx = 10;\n      }\n      pbVar12 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                  (re_token_t *)0x0,(re_dfa_t *)token);\n      t._4_1_ = 10;\n      local_b0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,local_c0,\n                                   (re_token_t *)pbVar12,(re_dfa_t *)&t);\n      if (local_c0 == (bin_tree_t *)0x0 || pbVar12 == (bin_tree_t *)0x0) break;\n    }\n    else {\n      local_b0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                   (re_token_t *)0x0,(re_dfa_t *)token);\n    }\n    if (local_b0 != (bin_tree_t *)0x0) {\n      iVar10 = peek_token(token,regexp,syntax);\n      regexp->cur_idx = regexp->cur_idx + iVar10;\n      goto LAB_00030965;\n    }\n    break;\n  case '\x14':\n    aVar13.sbcset = (re_bitset_ptr_t)calloc(0x20,1);\n    cset.sbcset = (re_bitset_ptr_t)calloc(0x28,1);\n    if (aVar13.sbcset == (uint *)0x0 || (re_charset_t *)cset.sbcset == (re_charset_t *)0x0) {\n      free(aVar13.sbcset);\n      free(cset.sbcset);\n      *err = _REG_ESPACE;\n      local_b0 = (bin_tree_t *)0x0;\n      goto LAB_00030965;\n    }\n    iVar10 = 0x31289;\n    local_c0 = (bin_tree_t *)peek_token_bracket(token,regexp,syntax);\n    cVar9 = token->field_0x4;\n    if (cVar9 != '\x02') {\n      bVar7 = false;\n      if (cVar9 != '\x19') {\nLAB_000312a6:\n        if (cVar9 == '\x15') {\n          token->field_0x4 = 1;\n        }\n        local_90 = 0;\n        syntax_00 = 1;\nLAB_000312e4:\n        start_elem.type = COLL_SYM;\n        start_elem.opr.name = start_name_buf;\n        rVar14 = parse_bracket_element\n                           (&start_elem,regexp,token,(int)local_c0,(re_dfa_t *)syntax,syntax_00,\n                            SUB41(iVar10,0));\n        if (rVar14 == _REG_NOERROR) {\n          iVar10 = peek_token_bracket(token,regexp,syntax);\n          if ((start_elem.type - EQUIV_CLASS & 0xfffffffd) == 0) {\nLAB_0003135b:\n            if (start_elem.type < (CHAR_CLASS|MB_CHAR)) {\n                    /* WARNING: Could not recover jumptable at 0x00031371. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar12 = (bin_tree_t *)\n                        (*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                  *(int *)(&UNK_0003ad38 + start_elem.type * 4)))();\n              return pbVar12;\n            }\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("0","lib/regcomp.c",0xcf3,"parse_bracket_exp");\n          }\n          if (token->field_0x4 == '\x02') {\nLAB_00031615:\n            *err = _REG_EBRACK;\n          }\n          else {\n            if (token->field_0x4 != '\x16') goto LAB_0003135b;\n            regexp->cur_idx = regexp->cur_idx + iVar10;\n            accept_hyphen = 0xc3;\n            iVar15 = peek_token_bracket(&t,regexp,syntax);\n            if (t._4_1_ == '\x02') goto LAB_00031615;\n            if (t._4_1_ == '\x15') {\n              regexp->cur_idx = regexp->cur_idx - iVar10;\n              token->field_0x4 = 1;\n              goto LAB_0003135b;\n            }\n            br_token._4_4_ = end_name_buf;\n            br_token.opr.idx = 3;\n            rVar14 = parse_bracket_element\n                               ((bracket_elem_t *)&br_token,regexp,&t,iVar15,(re_dfa_t *)syntax,1,\n                                (_Bool)accept_hyphen);\n            if (rVar14 == _REG_NOERROR) {\n              iVar10 = 0x31728;\n              local_c0 = (bin_tree_t *)peek_token_bracket(token,regexp,syntax);\n              aVar16.sbcset = cset.sbcset;\n              if (dfa->mb_cur_max < 2) {\n                aVar16.sbcset = (re_bitset_ptr_t)0x0;\n              }\n              if (((start_elem.type - EQUIV_CLASS & 0xfffffffd) == 0) ||\n                 ((br_token.opr.idx - 2U & 0xfffffffd) == 0)) {\nLAB_00031b91:\n                *err = _REG_ERANGE;\n              }\n              else {\n                if (start_elem.type != COLL_SYM) {\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) {\n                    uVar23 = 0xffffffff;\n                    pcVar24 = (char *)br_token._4_4_;\n                    do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');\n                    if (1 < ~uVar23 - 1) goto LAB_00031b44;\n                    b = '\0';\n                    if (start_elem.type == SB_CHAR) goto LAB_0003178a;\nLAB_000317a2:\n                    uVar22 = *(uchar *)br_token._4_4_;\n                  }\n                  else {\n                    if (start_elem.type == SB_CHAR) {\nLAB_0003178a:\n                      b = start_elem.opr.ch;\n                      goto LAB_0003178f;\n                    }\n                    b = '\0';\n                    uVar22 = '\0';\n                    uVar8 = '\0';\n                    if (br_token.opr.sbcset != (re_bitset_ptr_t)0x0) goto LAB_000317a5;\nLAB_00031b87:\n                    b = uVar8;\n                    uVar22 = br_token._4_1_;\n                  }\nLAB_000317a5:\n                  if ((start_elem.type == SB_CHAR) ||\n                     (aVar19 = start_elem.opr, start_elem.type == COLL_SYM)) {\n                    iVar10 = 0x31b70;\n                    aVar19.wch = parse_byte(b,aVar16.mbcset);\n                  }\n                  if ((br_token.opr.sbcset == (re_bitset_ptr_t)0x0) ||\n                     (local_8c = (uchar *)br_token._4_4_,\n                     br_token.opr.sbcset == (re_bitset_ptr_t)0x3)) {\n                    iVar10 = 0x31b5e;\n                    local_8c = (uchar *)parse_byte(uVar22,aVar16.mbcset);\n                  }\n                  if ((aVar19.name == (uchar *)0xffffffff) || (local_8c == (uchar *)0xffffffff))\n                  goto LAB_00031b44;\n                  if (((syntax & 0x10000) != 0) && (local_8c < aVar19.name)) goto LAB_00031b91;\n                  if ((re_charset_t *)aVar16.sbcset != (re_charset_t *)0x0) {\n                    iVar15 = (aVar16.mbcset)->nranges;\n                    __ptr = (aVar16.mbcset)->range_starts;\n                    if (iVar15 == local_90) {\n                      local_90 = local_90 * 2 + 1;\n                      iVar10 = local_90;\n                      __ptr = (wchar_t *)realloc(__ptr,local_90 * 4);\n                      __ptr_00 = (wchar_t *)realloc((aVar16.mbcset)->range_ends,local_90 * 4);\n                      if ((__ptr == (wchar_t *)0x0) || (__ptr_00 == (wchar_t *)0x0)) {\n                        free(__ptr);\n                        free(__ptr_00);\n                        *err = _REG_ESPACE;\n                        goto LAB_000314ef;\n                      }\n                      (aVar16.mbcset)->range_ends = __ptr_00;\n                      iVar15 = (aVar16.mbcset)->nranges;\n                      (aVar16.mbcset)->range_starts = __ptr;\n                    }\n                    ((anon_union_4_3_ebfdf496_for_opr *)(__ptr + iVar15))->name = (uchar *)aVar19;\n                    (aVar16.mbcset)->nranges = iVar15 + 1;\n                    (aVar16.mbcset)->range_ends[iVar15] = (wchar_t)local_8c;\n                  }\n                  puVar20 = (uchar *)0x0;\n                  do {\n                    if ((aVar19.name <= puVar20) && (puVar20 <= local_8c)) {\n                      aVar13.sbcset[(int)puVar20 >> 5] =\n                           aVar13.sbcset[(int)puVar20 >> 5] | 1 << ((byte)puVar20 & 0x1f);\n                    }\n                    puVar20 = puVar20 + 1;\n                  } while (puVar20 != (uchar *)0x100);\n                  *err = _REG_NOERROR;\n                  if (token->field_0x4 == '\x02') goto LAB_00031615;\n                  if (token->field_0x4 != '\x15') goto code_r0x000314d1;\n                  regexp->cur_idx = regexp->cur_idx + (int)local_c0;\n                  if (bVar7) {\n                    aVar16.sbcset = aVar13.sbcset;\n                    do {\n                      *aVar16.sbcset = ~*aVar16.sbcset;\n                      aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                    } while ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges != aVar16.sbcset);\n                  }\n                  iVar10 = dfa->mb_cur_max;\n                  if (1 < iVar10) {\n                    pbVar6 = dfa->sb_char;\n                    iVar15 = 0;\n                    do {\n                      aVar13.sbcset[iVar15] = aVar13.sbcset[iVar15] & pbVar6[iVar15];\n                      iVar15 = iVar15 + 1;\n                    } while (iVar15 != 8);\n                  }\n                  if ((((((cset.mbcset)->nmbchars != 0) || ((cset.mbcset)->ncoll_syms != 0)) ||\n                       ((cset.mbcset)->nequiv_classes != 0)) || ((cset.mbcset)->nranges != 0)) ||\n                     ((1 < iVar10 &&\n                      (((cset.mbcset)->nchar_classes != 0 || ((*(byte *)(cset.idx + 0x10) & 1) != 0)\n                       ))))) {\n                    dfa->field_0x58 = dfa->field_0x58 | 2;\n                    br_token._4_1_ = 6;\n                    br_token.opr.sbcset = cset.sbcset;\n                    local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                 (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                 (re_dfa_t *)&br_token);\n                    aVar16.sbcset = aVar13.sbcset;\n                    if (local_b0 != (bin_tree_t *)0x0) {\n                      while (*aVar16.sbcset == 0) {\n                        aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                        if ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges == aVar16.sbcset) {\n                          free(aVar13.sbcset);\n                          goto LAB_0003093e;\n                        }\n                      }\n                      br_token._4_1_ = 3;\n                      br_token.opr.sbcset = aVar13.sbcset;\n                      pbVar12 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                  (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                  (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                  (re_dfa_t *)&br_token);\n                      if (pbVar12 != (bin_tree_t *)0x0) {\n                        t._4_1_ = 10;\n                        dfa_1 = (re_dfa_t *)&t;\n                        goto LAB_000319aa;\n                      }\n                    }\nLAB_000319be:\n                    *err = _REG_ESPACE;\n                    goto LAB_000314ef;\n                  }\n                  free_charset(cset.mbcset);\n                  br_token._4_1_ = 3;\n                  dfa_1 = (re_dfa_t *)&br_token;\n                  pbVar12 = (bin_tree_t *)0x0;\n                  local_b0 = (bin_tree_t *)0x0;\n                  br_token.opr.sbcset = aVar13.sbcset;\nLAB_000319aa:\n                  local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                               (bin_tree_t *)&dfa->str_tree_storage_idx,pbVar12,\n                                               (re_token_t *)local_b0,dfa_1);\n                  if (local_b0 == (bin_tree_t *)0x0) goto LAB_000319be;\n                  goto LAB_0003093e;\n                }\n                uVar23 = 0xffffffff;\n                aVar19 = start_elem.opr;\n                do {\n                  if (uVar23 == 0) break;\n                  uVar23 = uVar23 - 1;\n                  uVar22 = *aVar19.name;\n                  aVar19.name = (uchar *)((char *)(aVar19.wch + L'\x01') + (uint)bVar25 * -2);\n                } while (uVar22 != '\0');\n                if (~uVar23 - 1 < 2) {\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) {\n                    uVar23 = 0xffffffff;\n                    pcVar24 = (char *)br_token._4_4_;\n                    do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');\n                    if (1 < ~uVar23 - 1) goto LAB_00031b44;\n                  }\n                  b = *start_elem.opr.name;\nLAB_0003178f:\n                  uVar8 = b;\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x0) goto LAB_00031b87;\n                  uVar22 = '\0';\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) goto LAB_000317a2;\n                  goto LAB_000317a5;\n                }\nLAB_00031b44:\n                *err = _REG_ECOLLATE;\n              }\n            }\n            else {\n              *err = rVar14;\n            }\n          }\n        }\n        else {\n          *err = rVar14;\n        }\n        goto LAB_000314ef;\n      }\n      *(byte *)(cset.idx + 0x10) = *(byte *)(cset.idx + 0x10) | 1;\n      if ((syntax & 0x100) != 0) {\n        *aVar13.sbcset = *aVar13.sbcset | 0x400;\n      }\n      regexp->cur_idx = regexp->cur_idx + (int)local_c0;\n      iVar10 = 0x315ee;\n      local_c0 = (bin_tree_t *)peek_token_bracket(token,regexp,syntax);\n      cVar9 = token->field_0x4;\n      if (cVar9 != '\x02') {\n        bVar7 = true;\n        goto LAB_000312a6;\n      }\n    }\n    *err = _REG_BADPAT;\nLAB_000314ef:\n    free(aVar13.sbcset);\n    free_charset(cset.mbcset);\n    if (*err == _REG_NOERROR) {\n      local_b0 = (bin_tree_t *)0x0;\n      goto LAB_0003093e;\n    }\n_L3134:\n    local_b0 = (bin_tree_t *)0x0;\n    goto LAB_00030965;\n  case '\x17':\n    if ((syntax & 0x1000000) == 0) goto _L3121;\nLAB_00030b48:\n    local_b0 = (bin_tree_t *)0x0;\n    *err = _REG_BADRPT;\n    goto LAB_00030965;\n  case ' ':\n  case '!':\n    local_b0 = build_charclass_op(dfa,regexp->trans,"alnum","_",cVar9 == '!',err);\n    rVar14 = *err;\n    goto joined_r0x00030f59;\n  case '\"':\n  case '#':\n    local_b0 = build_charclass_op(dfa,regexp->trans,"space","",cVar9 == '#',err);\n    rVar14 = *err;\njoined_r0x00030f59:\n    if ((rVar14 != _REG_NOERROR) && (local_b0 == (bin_tree_t *)0x0)) goto _L3134;\n    goto LAB_0003093e;\n  case '$':\n    local_b0 = (bin_tree_t *)0x0;\n    *err = _REG_EESCAPE;\n    goto LAB_00030965;\n  }\n  local_b0 = (bin_tree_t *)0x0;\n  *err = _REG_ESPACE;\nLAB_00030965:\n  if (iVar3 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_b0;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\ncode_r0x000314d1:\n  syntax_00 = 0;\n  goto LAB_000312e4;\n}\n\n" comment (ERROR "bin_tree_t * __regparm3\nparse_expression(re_string_t *regexp,regex_t *preg,re_token_t *token,reg_syntax_t syntax,Idx nest,\n                reg_errcode_t *err)" (binary_expression "bin_tree_t * __regparm3\nparse_expression(re_string_t *regexp,regex_t *preg,re_token_t *token,reg_syntax_t syntax,Idx nest,\n                reg_errcode_t *err)" identifier * (ERROR "__regparm3" identifier) (call_expression "parse_expression(re_string_t *regexp,regex_t *preg,re_token_t *token,reg_syntax_t syntax,Idx nest,\n                reg_errcode_t *err)" identifier (argument_list "(re_string_t *regexp,regex_t *preg,re_token_t *token,reg_syntax_t syntax,Idx nest,\n                reg_errcode_t *err)" ( (binary_expression "re_string_t *regexp" identifier * identifier) , (binary_expression "regex_t *preg" identifier * identifier) , (binary_expression "re_token_t *token" identifier * identifier) , identifier (ERROR "syntax" identifier) , (ERROR "Idx" identifier) identifier , (binary_expression "reg_errcode_t *err" identifier * identifier) ))))) (compound_statement "{\n  bin_tree_storage_t **ppbVar1;\n  int *piVar2;\n  int iVar3;\n  re_dfa_t *dfa;\n  undefined4 uVar4;\n  re_context_type rVar5;\n  re_bitset_ptr_t pbVar6;\n  bool bVar7;\n  uchar uVar8;\n  char cVar9;\n  undefined1 b;\n  int iVar10;\n  bin_tree_t *pbVar11;\n  bin_tree_t *pbVar12;\n  anon_union_4_5_a39f51ca_for_opr aVar13;\n  anon_union_4_5_a39f51ca_for_opr cset;\n  reg_syntax_t syntax_00;\n  reg_errcode_t rVar14;\n  int iVar15;\n  anon_union_4_5_a39f51ca_for_opr aVar16;\n  ushort **ppuVar17;\n  ushort *puVar18;\n  anon_union_4_3_ebfdf496_for_opr aVar19;\n  wchar_t *__ptr;\n  wchar_t *__ptr_00;\n  uchar *puVar20;\n  bitset_word_t *pbVar21;\n  uchar uVar22;\n  uint uVar23;\n  char *pcVar24;\n  int in_GS_OFFSET;\n  byte bVar25;\n  re_dfa_t *dfa_1;\n  undefined1 accept_hyphen;\n  Idx IVar26;\n  reg_errcode_t *in_stack_ffffff34;\n  bin_tree_t *local_c0;\n  bin_tree_t *local_b0;\n  bin_tree_t *local_a4;\n  int local_90;\n  uchar *local_8c;\n  Idx char_class_alloc;\n  bracket_elem_t start_elem;\n  re_token_t br_token;\n  re_token_t t;\n  uchar start_name_buf [32];\n  uchar end_name_buf [32];\n  \n  bVar25 = 0;\n  iVar3 = *(int *)(in_GS_OFFSET + 0x14);\n  dfa = preg->buffer;\n  cVar9 = token->field_0x4;\n  switch(cVar9) {\n  default:\n    goto _L3134;\n  case '\x01':\n    piVar2 = &dfa->str_tree_storage_idx;\n    ppbVar1 = &dfa->str_tree_storage;\n    local_b0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                 (re_token_t *)0x0,(re_dfa_t *)token);\n    if (local_b0 != (bin_tree_t *)0x0) {\n      if (dfa->mb_cur_max < 2) goto LAB_0003093e;\n      do {\n        iVar10 = regexp->cur_idx;\n        if (((regexp->stop <= iVar10) || (iVar10 == regexp->valid_len)) ||\n           (regexp->wcs[iVar10] != 0xffffffff)) goto LAB_0003093e;\n        iVar10 = peek_token(token,regexp,syntax);\n        regexp->cur_idx = regexp->cur_idx + iVar10;\n        pbVar12 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                    (re_token_t *)0x0,(re_dfa_t *)token);\n        t._4_1_ = 0x10;\n        local_b0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,local_b0,\n                                     (re_token_t *)pbVar12,(re_dfa_t *)&t);\n      } while (pbVar12 != (bin_tree_t *)0x0 && local_b0 != (bin_tree_t *)0x0);\n    }\n    break;\n  case '\x04':\n    uVar23 = 1 << ((token->opr).c & 0x1f);\n    if ((dfa->completed_bkref_map & uVar23) == 0) {\n      local_b0 = (bin_tree_t *)0x0;\n      *err = _REG_ESUBREG;\n      goto LAB_00030965;\n    }\n    dfa->used_bkref_map = dfa->used_bkref_map | uVar23;\n    local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                 (bin_tree_t *)&dfa->str_tree_storage_idx,(bin_tree_t *)0x0,\n                                 (re_token_t *)0x0,(re_dfa_t *)token);\n    if (local_b0 != (bin_tree_t *)0x0) {\n      dfa->nbackref = dfa->nbackref + 1;\n      dfa->field_0x58 = dfa->field_0x58 | 2;\n      goto LAB_0003093e;\n    }\n    break;\n  case '\x05':\n    local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                 (bin_tree_t *)&dfa->str_tree_storage_idx,(bin_tree_t *)0x0,\n                                 (re_token_t *)0x0,(re_dfa_t *)token);\n    if (local_b0 == (bin_tree_t *)0x0) break;\n    if (1 < dfa->mb_cur_max) {\n      dfa->field_0x58 = dfa->field_0x58 | 2;\n    }\n    goto LAB_0003093e;\n  case '\b':\n    rVar5 = preg->re_nsub;\n    pbVar12 = (bin_tree_t *)0x0;\n    preg->re_nsub = rVar5 + 1;\n    IVar26 = 0x30fbf;\n    iVar10 = peek_token(token,regexp,syntax | 0x800000);\n    regexp->cur_idx = regexp->cur_idx + iVar10;\n    if (token->field_0x4 == '\t') {\nLAB_00030fd0:\n      if (rVar5 < WORD_LAST) {\n        dfa->completed_bkref_map = dfa->completed_bkref_map | 1 << ((byte)rVar5 & 0x1f);\n      }\n      t._4_1_ = 0x11;\n      local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                   (bin_tree_t *)&dfa->str_tree_storage_idx,pbVar12,\n                                   (re_token_t *)0x0,(re_dfa_t *)&t);\n      if (local_b0 != (bin_tree_t *)0x0) {\n        (local_b0->token).opr.ctx_type = rVar5;\n        goto LAB_0003093e;\n      }\n      break;\n    }\n    pbVar12 = parse_reg_exp(regexp,(regex_t *)syntax,(re_token_t *)(nest + 1),(reg_syntax_t)err,\n                            IVar26,in_stack_ffffff34);\n    if (*err == _REG_NOERROR) {\n      if (token->field_0x4 == '\t') goto LAB_00030fd0;\n      if (pbVar12 != (bin_tree_t *)0x0) {\n        postorder(pbVar12,free_tree,(void *)0x0);\n      }\n      *err = _REG_EPAREN;\n    }\n    goto _L3134;\n  case '\t':\n_L3123:\n    if ((syntax & 0x20000) == 0) {\n      local_b0 = (bin_tree_t *)0x0;\n      *err = _REG_ERPAREN;\n      goto LAB_00030965;\n    }\n  case '\x18':\n_L3118:\n    token->field_0x4 = 1;\n    local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                 (bin_tree_t *)&dfa->str_tree_storage_idx,(bin_tree_t *)0x0,\n                                 (re_token_t *)0x0,(re_dfa_t *)token);\n    if (local_b0 != (bin_tree_t *)0x0) {\nLAB_0003093e:\n      iVar10 = peek_token(token,regexp,syntax);\n      regexp->cur_idx = regexp->cur_idx + iVar10;\n      uVar23 = (uint)(byte)token->field_0x4;\n      do {\n        bVar25 = (byte)uVar23;\n        if ((0x17 < bVar25) || ((0x8c0800U >> (uVar23 & 0x1f) & 1) == 0)) goto LAB_00030965;\n        IVar26 = regexp->cur_idx;\n        aVar13 = token->opr;\n        uVar4 = *(undefined4 *)&token->field_0x4;\n        local_a4 = local_b0;\n        pbVar12 = local_b0;\n        if (bVar25 == 0x17) {\n          uVar23 = fetch_number(regexp,token,syntax);\n          if (uVar23 == 0xffffffff) {\n            if ((token->field_0x4 == '\x01') && ((token->opr).c == ',')) {\n              uVar23 = 0;\nLAB_00030d4d:\n              local_c0 = (bin_tree_t *)fetch_number(regexp,token,syntax);\n              if (local_c0 == (bin_tree_t *)0xfffffffe) goto LAB_00030cd8;\n              if (((local_c0 == (bin_tree_t *)0xffffffff) || ((int)uVar23 <= (int)local_c0)) &&\n                 (token->field_0x4 == '\x18')) {\n                pbVar11 = (bin_tree_t *)uVar23;\n                if (local_c0 != (bin_tree_t *)0xffffffff) goto LAB_00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\nLAB_00030e40:\n            *err = _REG_BADBR;\n          }\n          else {\n            if (uVar23 != 0xfffffffe) {\n              local_c0 = (bin_tree_t *)uVar23;\n              if (token->field_0x4 != '\x18') {\n                if (token->field_0x4 != '\x01') goto LAB_00030cd8;\n                if ((token->opr).c == ',') goto LAB_00030d4d;\n                if ((syntax & 0x200000) == 0) goto LAB_00030e40;\n                goto LAB_00030ce9;\n              }\nLAB_00030dfc:\n              pbVar11 = local_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)pbVar11) {\n                *err = _REG_ESIZE;\n                goto LAB_00030e4a;\n              }\n              iVar10 = peek_token(token,regexp,syntax);\n              regexp->cur_idx = regexp->cur_idx + iVar10;\n              if (local_b0 == (bin_tree_t *)0x0) goto LAB_00030d10;\n              if (local_c0 != (bin_tree_t *)0x0 || uVar23 != 0) {\n                if ((int)uVar23 < 1) {\n                  local_a4 = (bin_tree_t *)0x0;\n                  goto LAB_00030eb9;\n                }\n                if (uVar23 != 1) {\n                  iVar10 = 2;\n                  do {\n                    pbVar12 = duplicate_tree(pbVar12,dfa);\n                    t._4_1_ = 0x10;\n                    local_a4 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,local_a4,\n                                                 (re_token_t *)pbVar12,(re_dfa_t *)&t);\n                    if ((pbVar12 == (bin_tree_t *)0x0) || (local_a4 == (bin_tree_t *)0x0))\n                    goto LAB_00030be0;\n                    iVar10 = iVar10 + 1;\n                  } while (iVar10 <= (int)uVar23);\n                }\n                pbVar11 = local_a4;\n                if (local_c0 != (bin_tree_t *)uVar23) goto LAB_00030e9c;\n                goto LAB_00030b08;\n              }\n              postorder(local_b0,free_tree,(void *)0x0);\n              if (*err == _REG_NOERROR) goto LAB_00030d1e;\n              goto LAB_00030bea;\n            }\nLAB_00030cd8:\n            if ((syntax & 0x200000) == 0) {\n              if (token->field_0x4 != '\x02') goto LAB_00030e40;\n              *err = _REG_EBRACE;\n              goto LAB_00030e4a;\n            }\nLAB_00030ce9:\n            regexp->cur_idx = IVar26;\n            token->opr = aVar13;\n            *(undefined4 *)&token->field_0x4 = uVar4;\n            token->field_0x4 = 1;\n            pbVar11 = local_b0;\nLAB_00030af2:\n            if ((*err == _REG_NOERROR) || (pbVar11 != (bin_tree_t *)0x0)) goto LAB_00030b08;\n          }\nLAB_00030e4a:\n          if (local_b0 == (bin_tree_t *)0x0) goto _L3134;\nLAB_00030bea:\n          postorder(local_b0,free_tree,(void *)0x0);\n          local_b0 = (bin_tree_t *)0x0;\n          goto LAB_00030965;\n        }\n        uVar23 = (uint)(bVar25 == 0x12);\n        if (bVar25 == 0x13) {\n          iVar10 = peek_token(token,regexp,syntax);\n          regexp->cur_idx = regexp->cur_idx + iVar10;\n          if (local_b0 == (bin_tree_t *)0x0) goto LAB_00030d10;\n          if ((local_b0->token).field_0x4 == '\x11') {\n            local_c0 = (bin_tree_t *)0x1;\n            local_a4 = (bin_tree_t *)0x0;\n            goto LAB_00030c76;\n          }\n          local_c0 = (bin_tree_t *)0x1;\n          t._4_1_ = 10;\n          local_a4 = (bin_tree_t *)0x0;\nLAB_00030a18:\n          ppbVar1 = &dfa->str_tree_storage;\n          piVar2 = &dfa->str_tree_storage_idx;\n          pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar12,\n                                      (re_token_t *)0x0,(re_dfa_t *)&t);\n          if (pbVar11 == (bin_tree_t *)0x0) {\nLAB_00030be0:\n            *err = _REG_ESPACE;\n            goto LAB_00030bea;\n          }\n          for (iVar10 = uVar23 + 2; iVar10 <= (int)local_c0; iVar10 = iVar10 + 1) {\n            pbVar12 = duplicate_tree(pbVar12,dfa);\n            t._4_1_ = 0x10;\n            pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar11,\n                                        (re_token_t *)pbVar12,(re_dfa_t *)&t);\n            if ((pbVar12 == (bin_tree_t *)0x0) || (pbVar11 == (bin_tree_t *)0x0)) goto LAB_00030be0;\n            t._4_1_ = 10;\n            pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar11,\n                                        (re_token_t *)0x0,(re_dfa_t *)&t);\n            if (pbVar11 == (bin_tree_t *)0x0) goto LAB_00030be0;\n          }\n          if (local_a4 != (bin_tree_t *)0x0) {\n            t._4_1_ = 0x10;\n            pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,local_a4,\n                                        (re_token_t *)pbVar11,(re_dfa_t *)&t);\n            goto LAB_00030af2;\n          }\n        }\n        else {\n          iVar10 = peek_token(token,regexp,syntax);\n          regexp->cur_idx = regexp->cur_idx + iVar10;\n          if (local_b0 != (bin_tree_t *)0x0) {\n            if (bVar25 != 0x12) {\n              if ((local_b0->token).field_0x4 == '\x11') {\n                local_c0 = (bin_tree_t *)0xffffffff;\n                uVar23 = 0;\n                local_a4 = (bin_tree_t *)0x0;\nLAB_00030c76:\n                postorder(pbVar12,mark_opt_subexp,(pbVar12->token).opr.sbcset);\n                goto LAB_00030c8a;\n              }\n              local_c0 = (bin_tree_t *)0xffffffff;\n              uVar23 = 0;\n              local_a4 = (bin_tree_t *)0x0;\nLAB_00030a13:\n              t._4_1_ = 0xb;\n              goto LAB_00030a18;\n            }\n            local_c0 = (bin_tree_t *)0xffffffff;\n            uVar23 = 1;\nLAB_00030e9c:\n            pbVar12 = duplicate_tree(pbVar12,dfa);\n            if (pbVar12 != (bin_tree_t *)0x0) {\nLAB_00030eb9:\n              if ((pbVar12->token).field_0x4 == '\x11') goto LAB_00030c76;\nLAB_00030c8a:\n              if (local_c0 != (bin_tree_t *)0xffffffff) {\n                t._4_1_ = 10;\n                goto LAB_00030a18;\n              }\n              goto LAB_00030a13;\n            }\n            goto LAB_00030be0;\n          }\nLAB_00030d10:\n          if (*err != _REG_NOERROR) goto _L3134;\nLAB_00030d1e:\n          local_b0 = (bin_tree_t *)0x0;\n          pbVar11 = local_b0;\n        }\nLAB_00030b08:\n        local_b0 = pbVar11;\n        bVar25 = token->field_0x4;\n        uVar23 = (uint)bVar25;\n      } while (((syntax & 0x1000000) == 0) || ((bVar25 != 0xb && (bVar25 != 0x17))));\n      if (local_b0 != (bin_tree_t *)0x0) {\n        postorder(local_b0,free_tree,(void *)0x0);\n      }\n      goto LAB_00030b48;\n    }\n    break;\n  case '\v':\n  case '\x12':\n  case '\x13':\n_L3121:\n    if ((syntax & 0x20) == 0) {\n      if ((syntax & 0x10) != 0) {\n        iVar10 = peek_token(token,regexp,syntax);\n        regexp->cur_idx = regexp->cur_idx + iVar10;\n        local_b0 = parse_expression(regexp,preg,token,syntax,nest,err);\n        goto LAB_00030965;\n      }\n      if (cVar9 == '\t') goto _L3123;\n      goto _L3118;\n    }\n    goto LAB_00030b48;\n  case '\f':\n    local_c0 = (bin_tree_t *)(token->opr).ctx_type;\n    if ((((uint)local_c0 & 0x30f) != 0) && (bVar25 = dfa->field_0x58, (bVar25 & 0x10) == 0)) {\n      dfa->field_0x58 = bVar25 | 0x10;\n      if ((bVar25 & 8) == 0) {\n        dfa->word_char[0] = 0;\n        dfa->word_char[1] = 0x3ff0000;\n        dfa->word_char[2] = 0x87fffffe;\n        dfa->word_char[3] = 0x7fffffe;\n        if ((bVar25 & 4) != 0) {\n          dfa->word_char[4] = 0;\n          dfa->word_char[5] = 0;\n          dfa->word_char[6] = 0;\n          dfa->word_char[7] = 0;\n          local_c0 = (bin_tree_t *)(token->opr).idx;\n          goto LAB_00031089;\n        }\n        iVar15 = 0x80;\n        iVar10 = 4;\n      }\n      else {\n        iVar15 = 0;\n        iVar10 = 0;\n      }\n      ppuVar17 = __ctype_b_loc();\n      pbVar21 = dfa->word_char + iVar10 + -0x18;\n      puVar18 = *ppuVar17 + iVar15;\n      do {\n        iVar10 = 0;\n        do {\n          if (((puVar18[iVar10] & 8) != 0) || (iVar15 + iVar10 == 0x5f)) {\n            pbVar21[0x18] = pbVar21[0x18] | 1 << ((byte)iVar10 & 0x1f);\n          }\n          iVar10 = iVar10 + 1;\n        } while (iVar10 != 0x20);\n        iVar15 = iVar15 + 0x20;\n        pbVar21 = pbVar21 + 1;\n        puVar18 = puVar18 + 0x20;\n      } while (&dfa->state_table != (re_state_table_entry **)pbVar21);\n    }\nLAB_00031089:\n    ppbVar1 = &dfa->str_tree_storage;\n    piVar2 = &dfa->str_tree_storage_idx;\n    if (((int)local_c0 - WORD_DELIM & 0xfffffeff) == 0) {\n      if (local_c0 == (bin_tree_t *)0x100) {\n        (token->opr).idx = 6;\n        local_c0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                     (re_token_t *)0x0,(re_dfa_t *)token);\n        (token->opr).idx = 9;\n      }\n      else {\n        (token->opr).idx = 5;\n        local_c0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                     (re_token_t *)0x0,(re_dfa_t *)token);\n        (token->opr).idx = 10;\n      }\n      pbVar12 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                  (re_token_t *)0x0,(re_dfa_t *)token);\n      t._4_1_ = 10;\n      local_b0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,local_c0,\n                                   (re_token_t *)pbVar12,(re_dfa_t *)&t);\n      if (local_c0 == (bin_tree_t *)0x0 || pbVar12 == (bin_tree_t *)0x0) break;\n    }\n    else {\n      local_b0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                   (re_token_t *)0x0,(re_dfa_t *)token);\n    }\n    if (local_b0 != (bin_tree_t *)0x0) {\n      iVar10 = peek_token(token,regexp,syntax);\n      regexp->cur_idx = regexp->cur_idx + iVar10;\n      goto LAB_00030965;\n    }\n    break;\n  case '\x14':\n    aVar13.sbcset = (re_bitset_ptr_t)calloc(0x20,1);\n    cset.sbcset = (re_bitset_ptr_t)calloc(0x28,1);\n    if (aVar13.sbcset == (uint *)0x0 || (re_charset_t *)cset.sbcset == (re_charset_t *)0x0) {\n      free(aVar13.sbcset);\n      free(cset.sbcset);\n      *err = _REG_ESPACE;\n      local_b0 = (bin_tree_t *)0x0;\n      goto LAB_00030965;\n    }\n    iVar10 = 0x31289;\n    local_c0 = (bin_tree_t *)peek_token_bracket(token,regexp,syntax);\n    cVar9 = token->field_0x4;\n    if (cVar9 != '\x02') {\n      bVar7 = false;\n      if (cVar9 != '\x19') {\nLAB_000312a6:\n        if (cVar9 == '\x15') {\n          token->field_0x4 = 1;\n        }\n        local_90 = 0;\n        syntax_00 = 1;\nLAB_000312e4:\n        start_elem.type = COLL_SYM;\n        start_elem.opr.name = start_name_buf;\n        rVar14 = parse_bracket_element\n                           (&start_elem,regexp,token,(int)local_c0,(re_dfa_t *)syntax,syntax_00,\n                            SUB41(iVar10,0));\n        if (rVar14 == _REG_NOERROR) {\n          iVar10 = peek_token_bracket(token,regexp,syntax);\n          if ((start_elem.type - EQUIV_CLASS & 0xfffffffd) == 0) {\nLAB_0003135b:\n            if (start_elem.type < (CHAR_CLASS|MB_CHAR)) {\n                    /* WARNING: Could not recover jumptable at 0x00031371. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar12 = (bin_tree_t *)\n                        (*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                  *(int *)(&UNK_0003ad38 + start_elem.type * 4)))();\n              return pbVar12;\n            }\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("0","lib/regcomp.c",0xcf3,"parse_bracket_exp");\n          }\n          if (token->field_0x4 == '\x02') {\nLAB_00031615:\n            *err = _REG_EBRACK;\n          }\n          else {\n            if (token->field_0x4 != '\x16') goto LAB_0003135b;\n            regexp->cur_idx = regexp->cur_idx + iVar10;\n            accept_hyphen = 0xc3;\n            iVar15 = peek_token_bracket(&t,regexp,syntax);\n            if (t._4_1_ == '\x02') goto LAB_00031615;\n            if (t._4_1_ == '\x15') {\n              regexp->cur_idx = regexp->cur_idx - iVar10;\n              token->field_0x4 = 1;\n              goto LAB_0003135b;\n            }\n            br_token._4_4_ = end_name_buf;\n            br_token.opr.idx = 3;\n            rVar14 = parse_bracket_element\n                               ((bracket_elem_t *)&br_token,regexp,&t,iVar15,(re_dfa_t *)syntax,1,\n                                (_Bool)accept_hyphen);\n            if (rVar14 == _REG_NOERROR) {\n              iVar10 = 0x31728;\n              local_c0 = (bin_tree_t *)peek_token_bracket(token,regexp,syntax);\n              aVar16.sbcset = cset.sbcset;\n              if (dfa->mb_cur_max < 2) {\n                aVar16.sbcset = (re_bitset_ptr_t)0x0;\n              }\n              if (((start_elem.type - EQUIV_CLASS & 0xfffffffd) == 0) ||\n                 ((br_token.opr.idx - 2U & 0xfffffffd) == 0)) {\nLAB_00031b91:\n                *err = _REG_ERANGE;\n              }\n              else {\n                if (start_elem.type != COLL_SYM) {\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) {\n                    uVar23 = 0xffffffff;\n                    pcVar24 = (char *)br_token._4_4_;\n                    do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');\n                    if (1 < ~uVar23 - 1) goto LAB_00031b44;\n                    b = '\0';\n                    if (start_elem.type == SB_CHAR) goto LAB_0003178a;\nLAB_000317a2:\n                    uVar22 = *(uchar *)br_token._4_4_;\n                  }\n                  else {\n                    if (start_elem.type == SB_CHAR) {\nLAB_0003178a:\n                      b = start_elem.opr.ch;\n                      goto LAB_0003178f;\n                    }\n                    b = '\0';\n                    uVar22 = '\0';\n                    uVar8 = '\0';\n                    if (br_token.opr.sbcset != (re_bitset_ptr_t)0x0) goto LAB_000317a5;\nLAB_00031b87:\n                    b = uVar8;\n                    uVar22 = br_token._4_1_;\n                  }\nLAB_000317a5:\n                  if ((start_elem.type == SB_CHAR) ||\n                     (aVar19 = start_elem.opr, start_elem.type == COLL_SYM)) {\n                    iVar10 = 0x31b70;\n                    aVar19.wch = parse_byte(b,aVar16.mbcset);\n                  }\n                  if ((br_token.opr.sbcset == (re_bitset_ptr_t)0x0) ||\n                     (local_8c = (uchar *)br_token._4_4_,\n                     br_token.opr.sbcset == (re_bitset_ptr_t)0x3)) {\n                    iVar10 = 0x31b5e;\n                    local_8c = (uchar *)parse_byte(uVar22,aVar16.mbcset);\n                  }\n                  if ((aVar19.name == (uchar *)0xffffffff) || (local_8c == (uchar *)0xffffffff))\n                  goto LAB_00031b44;\n                  if (((syntax & 0x10000) != 0) && (local_8c < aVar19.name)) goto LAB_00031b91;\n                  if ((re_charset_t *)aVar16.sbcset != (re_charset_t *)0x0) {\n                    iVar15 = (aVar16.mbcset)->nranges;\n                    __ptr = (aVar16.mbcset)->range_starts;\n                    if (iVar15 == local_90) {\n                      local_90 = local_90 * 2 + 1;\n                      iVar10 = local_90;\n                      __ptr = (wchar_t *)realloc(__ptr,local_90 * 4);\n                      __ptr_00 = (wchar_t *)realloc((aVar16.mbcset)->range_ends,local_90 * 4);\n                      if ((__ptr == (wchar_t *)0x0) || (__ptr_00 == (wchar_t *)0x0)) {\n                        free(__ptr);\n                        free(__ptr_00);\n                        *err = _REG_ESPACE;\n                        goto LAB_000314ef;\n                      }\n                      (aVar16.mbcset)->range_ends = __ptr_00;\n                      iVar15 = (aVar16.mbcset)->nranges;\n                      (aVar16.mbcset)->range_starts = __ptr;\n                    }\n                    ((anon_union_4_3_ebfdf496_for_opr *)(__ptr + iVar15))->name = (uchar *)aVar19;\n                    (aVar16.mbcset)->nranges = iVar15 + 1;\n                    (aVar16.mbcset)->range_ends[iVar15] = (wchar_t)local_8c;\n                  }\n                  puVar20 = (uchar *)0x0;\n                  do {\n                    if ((aVar19.name <= puVar20) && (puVar20 <= local_8c)) {\n                      aVar13.sbcset[(int)puVar20 >> 5] =\n                           aVar13.sbcset[(int)puVar20 >> 5] | 1 << ((byte)puVar20 & 0x1f);\n                    }\n                    puVar20 = puVar20 + 1;\n                  } while (puVar20 != (uchar *)0x100);\n                  *err = _REG_NOERROR;\n                  if (token->field_0x4 == '\x02') goto LAB_00031615;\n                  if (token->field_0x4 != '\x15') goto code_r0x000314d1;\n                  regexp->cur_idx = regexp->cur_idx + (int)local_c0;\n                  if (bVar7) {\n                    aVar16.sbcset = aVar13.sbcset;\n                    do {\n                      *aVar16.sbcset = ~*aVar16.sbcset;\n                      aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                    } while ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges != aVar16.sbcset);\n                  }\n                  iVar10 = dfa->mb_cur_max;\n                  if (1 < iVar10) {\n                    pbVar6 = dfa->sb_char;\n                    iVar15 = 0;\n                    do {\n                      aVar13.sbcset[iVar15] = aVar13.sbcset[iVar15] & pbVar6[iVar15];\n                      iVar15 = iVar15 + 1;\n                    } while (iVar15 != 8);\n                  }\n                  if ((((((cset.mbcset)->nmbchars != 0) || ((cset.mbcset)->ncoll_syms != 0)) ||\n                       ((cset.mbcset)->nequiv_classes != 0)) || ((cset.mbcset)->nranges != 0)) ||\n                     ((1 < iVar10 &&\n                      (((cset.mbcset)->nchar_classes != 0 || ((*(byte *)(cset.idx + 0x10) & 1) != 0)\n                       ))))) {\n                    dfa->field_0x58 = dfa->field_0x58 | 2;\n                    br_token._4_1_ = 6;\n                    br_token.opr.sbcset = cset.sbcset;\n                    local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                 (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                 (re_dfa_t *)&br_token);\n                    aVar16.sbcset = aVar13.sbcset;\n                    if (local_b0 != (bin_tree_t *)0x0) {\n                      while (*aVar16.sbcset == 0) {\n                        aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                        if ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges == aVar16.sbcset) {\n                          free(aVar13.sbcset);\n                          goto LAB_0003093e;\n                        }\n                      }\n                      br_token._4_1_ = 3;\n                      br_token.opr.sbcset = aVar13.sbcset;\n                      pbVar12 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                  (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                  (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                  (re_dfa_t *)&br_token);\n                      if (pbVar12 != (bin_tree_t *)0x0) {\n                        t._4_1_ = 10;\n                        dfa_1 = (re_dfa_t *)&t;\n                        goto LAB_000319aa;\n                      }\n                    }\nLAB_000319be:\n                    *err = _REG_ESPACE;\n                    goto LAB_000314ef;\n                  }\n                  free_charset(cset.mbcset);\n                  br_token._4_1_ = 3;\n                  dfa_1 = (re_dfa_t *)&br_token;\n                  pbVar12 = (bin_tree_t *)0x0;\n                  local_b0 = (bin_tree_t *)0x0;\n                  br_token.opr.sbcset = aVar13.sbcset;\nLAB_000319aa:\n                  local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                               (bin_tree_t *)&dfa->str_tree_storage_idx,pbVar12,\n                                               (re_token_t *)local_b0,dfa_1);\n                  if (local_b0 == (bin_tree_t *)0x0) goto LAB_000319be;\n                  goto LAB_0003093e;\n                }\n                uVar23 = 0xffffffff;\n                aVar19 = start_elem.opr;\n                do {\n                  if (uVar23 == 0) break;\n                  uVar23 = uVar23 - 1;\n                  uVar22 = *aVar19.name;\n                  aVar19.name = (uchar *)((char *)(aVar19.wch + L'\x01') + (uint)bVar25 * -2);\n                } while (uVar22 != '\0');\n                if (~uVar23 - 1 < 2) {\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) {\n                    uVar23 = 0xffffffff;\n                    pcVar24 = (char *)br_token._4_4_;\n                    do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');\n                    if (1 < ~uVar23 - 1) goto LAB_00031b44;\n                  }\n                  b = *start_elem.opr.name;\nLAB_0003178f:\n                  uVar8 = b;\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x0) goto LAB_00031b87;\n                  uVar22 = '\0';\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) goto LAB_000317a2;\n                  goto LAB_000317a5;\n                }\nLAB_00031b44:\n                *err = _REG_ECOLLATE;\n              }\n            }\n            else {\n              *err = rVar14;\n            }\n          }\n        }\n        else {\n          *err = rVar14;\n        }\n        goto LAB_000314ef;\n      }\n      *(byte *)(cset.idx + 0x10) = *(byte *)(cset.idx + 0x10) | 1;\n      if ((syntax & 0x100) != 0) {\n        *aVar13.sbcset = *aVar13.sbcset | 0x400;\n      }\n      regexp->cur_idx = regexp->cur_idx + (int)local_c0;\n      iVar10 = 0x315ee;\n      local_c0 = (bin_tree_t *)peek_token_bracket(token,regexp,syntax);\n      cVar9 = token->field_0x4;\n      if (cVar9 != '\x02') {\n        bVar7 = true;\n        goto LAB_000312a6;\n      }\n    }\n    *err = _REG_BADPAT;\nLAB_000314ef:\n    free(aVar13.sbcset);\n    free_charset(cset.mbcset);\n    if (*err == _REG_NOERROR) {\n      local_b0 = (bin_tree_t *)0x0;\n      goto LAB_0003093e;\n    }\n_L3134:\n    local_b0 = (bin_tree_t *)0x0;\n    goto LAB_00030965;\n  case '\x17':\n    if ((syntax & 0x1000000) == 0) goto _L3121;\nLAB_00030b48:\n    local_b0 = (bin_tree_t *)0x0;\n    *err = _REG_BADRPT;\n    goto LAB_00030965;\n  case ' ':\n  case '!':\n    local_b0 = build_charclass_op(dfa,regexp->trans,"alnum","_",cVar9 == '!',err);\n    rVar14 = *err;\n    goto joined_r0x00030f59;\n  case '\"':\n  case '#':\n    local_b0 = build_charclass_op(dfa,regexp->trans,"space","",cVar9 == '#',err);\n    rVar14 = *err;\njoined_r0x00030f59:\n    if ((rVar14 != _REG_NOERROR) && (local_b0 == (bin_tree_t *)0x0)) goto _L3134;\n    goto LAB_0003093e;\n  case '$':\n    local_b0 = (bin_tree_t *)0x0;\n    *err = _REG_EESCAPE;\n    goto LAB_00030965;\n  }\n  local_b0 = (bin_tree_t *)0x0;\n  *err = _REG_ESPACE;\nLAB_00030965:\n  if (iVar3 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_b0;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\ncode_r0x000314d1:\n  syntax_00 = 0;\n  goto LAB_000312e4;\n}" { (declaration "bin_tree_storage_t **ppbVar1;" type_identifier (pointer_declarator "**ppbVar1" * (pointer_declarator "*ppbVar1" * identifier)) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "re_dfa_t *dfa;" type_identifier (pointer_declarator "*dfa" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "re_context_type rVar5;" type_identifier identifier ;) (declaration "re_bitset_ptr_t pbVar6;" type_identifier identifier ;) (declaration "bool bVar7;" primitive_type identifier ;) (declaration "uchar uVar8;" type_identifier identifier ;) (declaration "char cVar9;" primitive_type identifier ;) (declaration "undefined1 b;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "bin_tree_t *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "bin_tree_t *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "anon_union_4_5_a39f51ca_for_opr aVar13;" type_identifier identifier ;) (declaration "anon_union_4_5_a39f51ca_for_opr cset;" type_identifier identifier ;) (declaration "reg_syntax_t syntax_00;" type_identifier identifier ;) (declaration "reg_errcode_t rVar14;" type_identifier identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "anon_union_4_5_a39f51ca_for_opr aVar16;" type_identifier identifier ;) (declaration "ushort **ppuVar17;" type_identifier (pointer_declarator "**ppuVar17" * (pointer_declarator "*ppuVar17" * identifier)) ;) (declaration "ushort *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "anon_union_4_3_ebfdf496_for_opr aVar19;" type_identifier identifier ;) (declaration "wchar_t *__ptr;" type_identifier (pointer_declarator "*__ptr" * identifier) ;) (declaration "wchar_t *__ptr_00;" type_identifier (pointer_declarator "*__ptr_00" * identifier) ;) (declaration "uchar *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "bitset_word_t *pbVar21;" type_identifier (pointer_declarator "*pbVar21" * identifier) ;) (declaration "uchar uVar22;" type_identifier identifier ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "char *pcVar24;" primitive_type (pointer_declarator "*pcVar24" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "byte bVar25;" type_identifier identifier ;) (declaration "re_dfa_t *dfa_1;" type_identifier (pointer_declarator "*dfa_1" * identifier) ;) (declaration "undefined1 accept_hyphen;" type_identifier identifier ;) (declaration "Idx IVar26;" type_identifier identifier ;) (declaration "reg_errcode_t *in_stack_ffffff34;" type_identifier (pointer_declarator "*in_stack_ffffff34" * identifier) ;) (declaration "bin_tree_t *local_c0;" type_identifier (pointer_declarator "*local_c0" * identifier) ;) (declaration "bin_tree_t *local_b0;" type_identifier (pointer_declarator "*local_b0" * identifier) ;) (declaration "bin_tree_t *local_a4;" type_identifier (pointer_declarator "*local_a4" * identifier) ;) (declaration "int local_90;" primitive_type identifier ;) (declaration "uchar *local_8c;" type_identifier (pointer_declarator "*local_8c" * identifier) ;) (declaration "Idx char_class_alloc;" type_identifier identifier ;) (declaration "bracket_elem_t start_elem;" type_identifier identifier ;) (declaration "re_token_t br_token;" type_identifier identifier ;) (declaration "re_token_t t;" type_identifier identifier ;) (declaration "uchar start_name_buf [32];" type_identifier (array_declarator "start_name_buf [32]" identifier [ number_literal ]) ;) (declaration "uchar end_name_buf [32];" type_identifier (array_declarator "end_name_buf [32]" identifier [ number_literal ]) ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) (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) ))))) ;) (expression_statement "dfa = preg->buffer;" (assignment_expression "dfa = preg->buffer" identifier = (field_expression "preg->buffer" identifier -> field_identifier)) ;) (expression_statement "cVar9 = token->field_0x4;" (assignment_expression "cVar9 = token->field_0x4" identifier = (field_expression "token->field_0x4" identifier -> field_identifier)) ;) (switch_statement "switch(cVar9) {\n  default:\n    goto _L3134;\n  case '\x01':\n    piVar2 = &dfa->str_tree_storage_idx;\n    ppbVar1 = &dfa->str_tree_storage;\n    local_b0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                 (re_token_t *)0x0,(re_dfa_t *)token);\n    if (local_b0 != (bin_tree_t *)0x0) {\n      if (dfa->mb_cur_max < 2) goto LAB_0003093e;\n      do {\n        iVar10 = regexp->cur_idx;\n        if (((regexp->stop <= iVar10) || (iVar10 == regexp->valid_len)) ||\n           (regexp->wcs[iVar10] != 0xffffffff)) goto LAB_0003093e;\n        iVar10 = peek_token(token,regexp,syntax);\n        regexp->cur_idx = regexp->cur_idx + iVar10;\n        pbVar12 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                    (re_token_t *)0x0,(re_dfa_t *)token);\n        t._4_1_ = 0x10;\n        local_b0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,local_b0,\n                                     (re_token_t *)pbVar12,(re_dfa_t *)&t);\n      } while (pbVar12 != (bin_tree_t *)0x0 && local_b0 != (bin_tree_t *)0x0);\n    }\n    break;\n  case '\x04':\n    uVar23 = 1 << ((token->opr).c & 0x1f);\n    if ((dfa->completed_bkref_map & uVar23) == 0) {\n      local_b0 = (bin_tree_t *)0x0;\n      *err = _REG_ESUBREG;\n      goto LAB_00030965;\n    }\n    dfa->used_bkref_map = dfa->used_bkref_map | uVar23;\n    local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                 (bin_tree_t *)&dfa->str_tree_storage_idx,(bin_tree_t *)0x0,\n                                 (re_token_t *)0x0,(re_dfa_t *)token);\n    if (local_b0 != (bin_tree_t *)0x0) {\n      dfa->nbackref = dfa->nbackref + 1;\n      dfa->field_0x58 = dfa->field_0x58 | 2;\n      goto LAB_0003093e;\n    }\n    break;\n  case '\x05':\n    local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                 (bin_tree_t *)&dfa->str_tree_storage_idx,(bin_tree_t *)0x0,\n                                 (re_token_t *)0x0,(re_dfa_t *)token);\n    if (local_b0 == (bin_tree_t *)0x0) break;\n    if (1 < dfa->mb_cur_max) {\n      dfa->field_0x58 = dfa->field_0x58 | 2;\n    }\n    goto LAB_0003093e;\n  case '\b':\n    rVar5 = preg->re_nsub;\n    pbVar12 = (bin_tree_t *)0x0;\n    preg->re_nsub = rVar5 + 1;\n    IVar26 = 0x30fbf;\n    iVar10 = peek_token(token,regexp,syntax | 0x800000);\n    regexp->cur_idx = regexp->cur_idx + iVar10;\n    if (token->field_0x4 == '\t') {\nLAB_00030fd0:\n      if (rVar5 < WORD_LAST) {\n        dfa->completed_bkref_map = dfa->completed_bkref_map | 1 << ((byte)rVar5 & 0x1f);\n      }\n      t._4_1_ = 0x11;\n      local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                   (bin_tree_t *)&dfa->str_tree_storage_idx,pbVar12,\n                                   (re_token_t *)0x0,(re_dfa_t *)&t);\n      if (local_b0 != (bin_tree_t *)0x0) {\n        (local_b0->token).opr.ctx_type = rVar5;\n        goto LAB_0003093e;\n      }\n      break;\n    }\n    pbVar12 = parse_reg_exp(regexp,(regex_t *)syntax,(re_token_t *)(nest + 1),(reg_syntax_t)err,\n                            IVar26,in_stack_ffffff34);\n    if (*err == _REG_NOERROR) {\n      if (token->field_0x4 == '\t') goto LAB_00030fd0;\n      if (pbVar12 != (bin_tree_t *)0x0) {\n        postorder(pbVar12,free_tree,(void *)0x0);\n      }\n      *err = _REG_EPAREN;\n    }\n    goto _L3134;\n  case '\t':\n_L3123:\n    if ((syntax & 0x20000) == 0) {\n      local_b0 = (bin_tree_t *)0x0;\n      *err = _REG_ERPAREN;\n      goto LAB_00030965;\n    }\n  case '\x18':\n_L3118:\n    token->field_0x4 = 1;\n    local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                 (bin_tree_t *)&dfa->str_tree_storage_idx,(bin_tree_t *)0x0,\n                                 (re_token_t *)0x0,(re_dfa_t *)token);\n    if (local_b0 != (bin_tree_t *)0x0) {\nLAB_0003093e:\n      iVar10 = peek_token(token,regexp,syntax);\n      regexp->cur_idx = regexp->cur_idx + iVar10;\n      uVar23 = (uint)(byte)token->field_0x4;\n      do {\n        bVar25 = (byte)uVar23;\n        if ((0x17 < bVar25) || ((0x8c0800U >> (uVar23 & 0x1f) & 1) == 0)) goto LAB_00030965;\n        IVar26 = regexp->cur_idx;\n        aVar13 = token->opr;\n        uVar4 = *(undefined4 *)&token->field_0x4;\n        local_a4 = local_b0;\n        pbVar12 = local_b0;\n        if (bVar25 == 0x17) {\n          uVar23 = fetch_number(regexp,token,syntax);\n          if (uVar23 == 0xffffffff) {\n            if ((token->field_0x4 == '\x01') && ((token->opr).c == ',')) {\n              uVar23 = 0;\nLAB_00030d4d:\n              local_c0 = (bin_tree_t *)fetch_number(regexp,token,syntax);\n              if (local_c0 == (bin_tree_t *)0xfffffffe) goto LAB_00030cd8;\n              if (((local_c0 == (bin_tree_t *)0xffffffff) || ((int)uVar23 <= (int)local_c0)) &&\n                 (token->field_0x4 == '\x18')) {\n                pbVar11 = (bin_tree_t *)uVar23;\n                if (local_c0 != (bin_tree_t *)0xffffffff) goto LAB_00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\nLAB_00030e40:\n            *err = _REG_BADBR;\n          }\n          else {\n            if (uVar23 != 0xfffffffe) {\n              local_c0 = (bin_tree_t *)uVar23;\n              if (token->field_0x4 != '\x18') {\n                if (token->field_0x4 != '\x01') goto LAB_00030cd8;\n                if ((token->opr).c == ',') goto LAB_00030d4d;\n                if ((syntax & 0x200000) == 0) goto LAB_00030e40;\n                goto LAB_00030ce9;\n              }\nLAB_00030dfc:\n              pbVar11 = local_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)pbVar11) {\n                *err = _REG_ESIZE;\n                goto LAB_00030e4a;\n              }\n              iVar10 = peek_token(token,regexp,syntax);\n              regexp->cur_idx = regexp->cur_idx + iVar10;\n              if (local_b0 == (bin_tree_t *)0x0) goto LAB_00030d10;\n              if (local_c0 != (bin_tree_t *)0x0 || uVar23 != 0) {\n                if ((int)uVar23 < 1) {\n                  local_a4 = (bin_tree_t *)0x0;\n                  goto LAB_00030eb9;\n                }\n                if (uVar23 != 1) {\n                  iVar10 = 2;\n                  do {\n                    pbVar12 = duplicate_tree(pbVar12,dfa);\n                    t._4_1_ = 0x10;\n                    local_a4 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,local_a4,\n                                                 (re_token_t *)pbVar12,(re_dfa_t *)&t);\n                    if ((pbVar12 == (bin_tree_t *)0x0) || (local_a4 == (bin_tree_t *)0x0))\n                    goto LAB_00030be0;\n                    iVar10 = iVar10 + 1;\n                  } while (iVar10 <= (int)uVar23);\n                }\n                pbVar11 = local_a4;\n                if (local_c0 != (bin_tree_t *)uVar23) goto LAB_00030e9c;\n                goto LAB_00030b08;\n              }\n              postorder(local_b0,free_tree,(void *)0x0);\n              if (*err == _REG_NOERROR) goto LAB_00030d1e;\n              goto LAB_00030bea;\n            }\nLAB_00030cd8:\n            if ((syntax & 0x200000) == 0) {\n              if (token->field_0x4 != '\x02') goto LAB_00030e40;\n              *err = _REG_EBRACE;\n              goto LAB_00030e4a;\n            }\nLAB_00030ce9:\n            regexp->cur_idx = IVar26;\n            token->opr = aVar13;\n            *(undefined4 *)&token->field_0x4 = uVar4;\n            token->field_0x4 = 1;\n            pbVar11 = local_b0;\nLAB_00030af2:\n            if ((*err == _REG_NOERROR) || (pbVar11 != (bin_tree_t *)0x0)) goto LAB_00030b08;\n          }\nLAB_00030e4a:\n          if (local_b0 == (bin_tree_t *)0x0) goto _L3134;\nLAB_00030bea:\n          postorder(local_b0,free_tree,(void *)0x0);\n          local_b0 = (bin_tree_t *)0x0;\n          goto LAB_00030965;\n        }\n        uVar23 = (uint)(bVar25 == 0x12);\n        if (bVar25 == 0x13) {\n          iVar10 = peek_token(token,regexp,syntax);\n          regexp->cur_idx = regexp->cur_idx + iVar10;\n          if (local_b0 == (bin_tree_t *)0x0) goto LAB_00030d10;\n          if ((local_b0->token).field_0x4 == '\x11') {\n            local_c0 = (bin_tree_t *)0x1;\n            local_a4 = (bin_tree_t *)0x0;\n            goto LAB_00030c76;\n          }\n          local_c0 = (bin_tree_t *)0x1;\n          t._4_1_ = 10;\n          local_a4 = (bin_tree_t *)0x0;\nLAB_00030a18:\n          ppbVar1 = &dfa->str_tree_storage;\n          piVar2 = &dfa->str_tree_storage_idx;\n          pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar12,\n                                      (re_token_t *)0x0,(re_dfa_t *)&t);\n          if (pbVar11 == (bin_tree_t *)0x0) {\nLAB_00030be0:\n            *err = _REG_ESPACE;\n            goto LAB_00030bea;\n          }\n          for (iVar10 = uVar23 + 2; iVar10 <= (int)local_c0; iVar10 = iVar10 + 1) {\n            pbVar12 = duplicate_tree(pbVar12,dfa);\n            t._4_1_ = 0x10;\n            pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar11,\n                                        (re_token_t *)pbVar12,(re_dfa_t *)&t);\n            if ((pbVar12 == (bin_tree_t *)0x0) || (pbVar11 == (bin_tree_t *)0x0)) goto LAB_00030be0;\n            t._4_1_ = 10;\n            pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar11,\n                                        (re_token_t *)0x0,(re_dfa_t *)&t);\n            if (pbVar11 == (bin_tree_t *)0x0) goto LAB_00030be0;\n          }\n          if (local_a4 != (bin_tree_t *)0x0) {\n            t._4_1_ = 0x10;\n            pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,local_a4,\n                                        (re_token_t *)pbVar11,(re_dfa_t *)&t);\n            goto LAB_00030af2;\n          }\n        }\n        else {\n          iVar10 = peek_token(token,regexp,syntax);\n          regexp->cur_idx = regexp->cur_idx + iVar10;\n          if (local_b0 != (bin_tree_t *)0x0) {\n            if (bVar25 != 0x12) {\n              if ((local_b0->token).field_0x4 == '\x11') {\n                local_c0 = (bin_tree_t *)0xffffffff;\n                uVar23 = 0;\n                local_a4 = (bin_tree_t *)0x0;\nLAB_00030c76:\n                postorder(pbVar12,mark_opt_subexp,(pbVar12->token).opr.sbcset);\n                goto LAB_00030c8a;\n              }\n              local_c0 = (bin_tree_t *)0xffffffff;\n              uVar23 = 0;\n              local_a4 = (bin_tree_t *)0x0;\nLAB_00030a13:\n              t._4_1_ = 0xb;\n              goto LAB_00030a18;\n            }\n            local_c0 = (bin_tree_t *)0xffffffff;\n            uVar23 = 1;\nLAB_00030e9c:\n            pbVar12 = duplicate_tree(pbVar12,dfa);\n            if (pbVar12 != (bin_tree_t *)0x0) {\nLAB_00030eb9:\n              if ((pbVar12->token).field_0x4 == '\x11') goto LAB_00030c76;\nLAB_00030c8a:\n              if (local_c0 != (bin_tree_t *)0xffffffff) {\n                t._4_1_ = 10;\n                goto LAB_00030a18;\n              }\n              goto LAB_00030a13;\n            }\n            goto LAB_00030be0;\n          }\nLAB_00030d10:\n          if (*err != _REG_NOERROR) goto _L3134;\nLAB_00030d1e:\n          local_b0 = (bin_tree_t *)0x0;\n          pbVar11 = local_b0;\n        }\nLAB_00030b08:\n        local_b0 = pbVar11;\n        bVar25 = token->field_0x4;\n        uVar23 = (uint)bVar25;\n      } while (((syntax & 0x1000000) == 0) || ((bVar25 != 0xb && (bVar25 != 0x17))));\n      if (local_b0 != (bin_tree_t *)0x0) {\n        postorder(local_b0,free_tree,(void *)0x0);\n      }\n      goto LAB_00030b48;\n    }\n    break;\n  case '\v':\n  case '\x12':\n  case '\x13':\n_L3121:\n    if ((syntax & 0x20) == 0) {\n      if ((syntax & 0x10) != 0) {\n        iVar10 = peek_token(token,regexp,syntax);\n        regexp->cur_idx = regexp->cur_idx + iVar10;\n        local_b0 = parse_expression(regexp,preg,token,syntax,nest,err);\n        goto LAB_00030965;\n      }\n      if (cVar9 == '\t') goto _L3123;\n      goto _L3118;\n    }\n    goto LAB_00030b48;\n  case '\f':\n    local_c0 = (bin_tree_t *)(token->opr).ctx_type;\n    if ((((uint)local_c0 & 0x30f) != 0) && (bVar25 = dfa->field_0x58, (bVar25 & 0x10) == 0)) {\n      dfa->field_0x58 = bVar25 | 0x10;\n      if ((bVar25 & 8) == 0) {\n        dfa->word_char[0] = 0;\n        dfa->word_char[1] = 0x3ff0000;\n        dfa->word_char[2] = 0x87fffffe;\n        dfa->word_char[3] = 0x7fffffe;\n        if ((bVar25 & 4) != 0) {\n          dfa->word_char[4] = 0;\n          dfa->word_char[5] = 0;\n          dfa->word_char[6] = 0;\n          dfa->word_char[7] = 0;\n          local_c0 = (bin_tree_t *)(token->opr).idx;\n          goto LAB_00031089;\n        }\n        iVar15 = 0x80;\n        iVar10 = 4;\n      }\n      else {\n        iVar15 = 0;\n        iVar10 = 0;\n      }\n      ppuVar17 = __ctype_b_loc();\n      pbVar21 = dfa->word_char + iVar10 + -0x18;\n      puVar18 = *ppuVar17 + iVar15;\n      do {\n        iVar10 = 0;\n        do {\n          if (((puVar18[iVar10] & 8) != 0) || (iVar15 + iVar10 == 0x5f)) {\n            pbVar21[0x18] = pbVar21[0x18] | 1 << ((byte)iVar10 & 0x1f);\n          }\n          iVar10 = iVar10 + 1;\n        } while (iVar10 != 0x20);\n        iVar15 = iVar15 + 0x20;\n        pbVar21 = pbVar21 + 1;\n        puVar18 = puVar18 + 0x20;\n      } while (&dfa->state_table != (re_state_table_entry **)pbVar21);\n    }\nLAB_00031089:\n    ppbVar1 = &dfa->str_tree_storage;\n    piVar2 = &dfa->str_tree_storage_idx;\n    if (((int)local_c0 - WORD_DELIM & 0xfffffeff) == 0) {\n      if (local_c0 == (bin_tree_t *)0x100) {\n        (token->opr).idx = 6;\n        local_c0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                     (re_token_t *)0x0,(re_dfa_t *)token);\n        (token->opr).idx = 9;\n      }\n      else {\n        (token->opr).idx = 5;\n        local_c0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                     (re_token_t *)0x0,(re_dfa_t *)token);\n        (token->opr).idx = 10;\n      }\n      pbVar12 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                  (re_token_t *)0x0,(re_dfa_t *)token);\n      t._4_1_ = 10;\n      local_b0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,local_c0,\n                                   (re_token_t *)pbVar12,(re_dfa_t *)&t);\n      if (local_c0 == (bin_tree_t *)0x0 || pbVar12 == (bin_tree_t *)0x0) break;\n    }\n    else {\n      local_b0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                   (re_token_t *)0x0,(re_dfa_t *)token);\n    }\n    if (local_b0 != (bin_tree_t *)0x0) {\n      iVar10 = peek_token(token,regexp,syntax);\n      regexp->cur_idx = regexp->cur_idx + iVar10;\n      goto LAB_00030965;\n    }\n    break;\n  case '\x14':\n    aVar13.sbcset = (re_bitset_ptr_t)calloc(0x20,1);\n    cset.sbcset = (re_bitset_ptr_t)calloc(0x28,1);\n    if (aVar13.sbcset == (uint *)0x0 || (re_charset_t *)cset.sbcset == (re_charset_t *)0x0) {\n      free(aVar13.sbcset);\n      free(cset.sbcset);\n      *err = _REG_ESPACE;\n      local_b0 = (bin_tree_t *)0x0;\n      goto LAB_00030965;\n    }\n    iVar10 = 0x31289;\n    local_c0 = (bin_tree_t *)peek_token_bracket(token,regexp,syntax);\n    cVar9 = token->field_0x4;\n    if (cVar9 != '\x02') {\n      bVar7 = false;\n      if (cVar9 != '\x19') {\nLAB_000312a6:\n        if (cVar9 == '\x15') {\n          token->field_0x4 = 1;\n        }\n        local_90 = 0;\n        syntax_00 = 1;\nLAB_000312e4:\n        start_elem.type = COLL_SYM;\n        start_elem.opr.name = start_name_buf;\n        rVar14 = parse_bracket_element\n                           (&start_elem,regexp,token,(int)local_c0,(re_dfa_t *)syntax,syntax_00,\n                            SUB41(iVar10,0));\n        if (rVar14 == _REG_NOERROR) {\n          iVar10 = peek_token_bracket(token,regexp,syntax);\n          if ((start_elem.type - EQUIV_CLASS & 0xfffffffd) == 0) {\nLAB_0003135b:\n            if (start_elem.type < (CHAR_CLASS|MB_CHAR)) {\n                    /* WARNING: Could not recover jumptable at 0x00031371. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar12 = (bin_tree_t *)\n                        (*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                  *(int *)(&UNK_0003ad38 + start_elem.type * 4)))();\n              return pbVar12;\n            }\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("0","lib/regcomp.c",0xcf3,"parse_bracket_exp");\n          }\n          if (token->field_0x4 == '\x02') {\nLAB_00031615:\n            *err = _REG_EBRACK;\n          }\n          else {\n            if (token->field_0x4 != '\x16') goto LAB_0003135b;\n            regexp->cur_idx = regexp->cur_idx + iVar10;\n            accept_hyphen = 0xc3;\n            iVar15 = peek_token_bracket(&t,regexp,syntax);\n            if (t._4_1_ == '\x02') goto LAB_00031615;\n            if (t._4_1_ == '\x15') {\n              regexp->cur_idx = regexp->cur_idx - iVar10;\n              token->field_0x4 = 1;\n              goto LAB_0003135b;\n            }\n            br_token._4_4_ = end_name_buf;\n            br_token.opr.idx = 3;\n            rVar14 = parse_bracket_element\n                               ((bracket_elem_t *)&br_token,regexp,&t,iVar15,(re_dfa_t *)syntax,1,\n                                (_Bool)accept_hyphen);\n            if (rVar14 == _REG_NOERROR) {\n              iVar10 = 0x31728;\n              local_c0 = (bin_tree_t *)peek_token_bracket(token,regexp,syntax);\n              aVar16.sbcset = cset.sbcset;\n              if (dfa->mb_cur_max < 2) {\n                aVar16.sbcset = (re_bitset_ptr_t)0x0;\n              }\n              if (((start_elem.type - EQUIV_CLASS & 0xfffffffd) == 0) ||\n                 ((br_token.opr.idx - 2U & 0xfffffffd) == 0)) {\nLAB_00031b91:\n                *err = _REG_ERANGE;\n              }\n              else {\n                if (start_elem.type != COLL_SYM) {\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) {\n                    uVar23 = 0xffffffff;\n                    pcVar24 = (char *)br_token._4_4_;\n                    do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');\n                    if (1 < ~uVar23 - 1) goto LAB_00031b44;\n                    b = '\0';\n                    if (start_elem.type == SB_CHAR) goto LAB_0003178a;\nLAB_000317a2:\n                    uVar22 = *(uchar *)br_token._4_4_;\n                  }\n                  else {\n                    if (start_elem.type == SB_CHAR) {\nLAB_0003178a:\n                      b = start_elem.opr.ch;\n                      goto LAB_0003178f;\n                    }\n                    b = '\0';\n                    uVar22 = '\0';\n                    uVar8 = '\0';\n                    if (br_token.opr.sbcset != (re_bitset_ptr_t)0x0) goto LAB_000317a5;\nLAB_00031b87:\n                    b = uVar8;\n                    uVar22 = br_token._4_1_;\n                  }\nLAB_000317a5:\n                  if ((start_elem.type == SB_CHAR) ||\n                     (aVar19 = start_elem.opr, start_elem.type == COLL_SYM)) {\n                    iVar10 = 0x31b70;\n                    aVar19.wch = parse_byte(b,aVar16.mbcset);\n                  }\n                  if ((br_token.opr.sbcset == (re_bitset_ptr_t)0x0) ||\n                     (local_8c = (uchar *)br_token._4_4_,\n                     br_token.opr.sbcset == (re_bitset_ptr_t)0x3)) {\n                    iVar10 = 0x31b5e;\n                    local_8c = (uchar *)parse_byte(uVar22,aVar16.mbcset);\n                  }\n                  if ((aVar19.name == (uchar *)0xffffffff) || (local_8c == (uchar *)0xffffffff))\n                  goto LAB_00031b44;\n                  if (((syntax & 0x10000) != 0) && (local_8c < aVar19.name)) goto LAB_00031b91;\n                  if ((re_charset_t *)aVar16.sbcset != (re_charset_t *)0x0) {\n                    iVar15 = (aVar16.mbcset)->nranges;\n                    __ptr = (aVar16.mbcset)->range_starts;\n                    if (iVar15 == local_90) {\n                      local_90 = local_90 * 2 + 1;\n                      iVar10 = local_90;\n                      __ptr = (wchar_t *)realloc(__ptr,local_90 * 4);\n                      __ptr_00 = (wchar_t *)realloc((aVar16.mbcset)->range_ends,local_90 * 4);\n                      if ((__ptr == (wchar_t *)0x0) || (__ptr_00 == (wchar_t *)0x0)) {\n                        free(__ptr);\n                        free(__ptr_00);\n                        *err = _REG_ESPACE;\n                        goto LAB_000314ef;\n                      }\n                      (aVar16.mbcset)->range_ends = __ptr_00;\n                      iVar15 = (aVar16.mbcset)->nranges;\n                      (aVar16.mbcset)->range_starts = __ptr;\n                    }\n                    ((anon_union_4_3_ebfdf496_for_opr *)(__ptr + iVar15))->name = (uchar *)aVar19;\n                    (aVar16.mbcset)->nranges = iVar15 + 1;\n                    (aVar16.mbcset)->range_ends[iVar15] = (wchar_t)local_8c;\n                  }\n                  puVar20 = (uchar *)0x0;\n                  do {\n                    if ((aVar19.name <= puVar20) && (puVar20 <= local_8c)) {\n                      aVar13.sbcset[(int)puVar20 >> 5] =\n                           aVar13.sbcset[(int)puVar20 >> 5] | 1 << ((byte)puVar20 & 0x1f);\n                    }\n                    puVar20 = puVar20 + 1;\n                  } while (puVar20 != (uchar *)0x100);\n                  *err = _REG_NOERROR;\n                  if (token->field_0x4 == '\x02') goto LAB_00031615;\n                  if (token->field_0x4 != '\x15') goto code_r0x000314d1;\n                  regexp->cur_idx = regexp->cur_idx + (int)local_c0;\n                  if (bVar7) {\n                    aVar16.sbcset = aVar13.sbcset;\n                    do {\n                      *aVar16.sbcset = ~*aVar16.sbcset;\n                      aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                    } while ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges != aVar16.sbcset);\n                  }\n                  iVar10 = dfa->mb_cur_max;\n                  if (1 < iVar10) {\n                    pbVar6 = dfa->sb_char;\n                    iVar15 = 0;\n                    do {\n                      aVar13.sbcset[iVar15] = aVar13.sbcset[iVar15] & pbVar6[iVar15];\n                      iVar15 = iVar15 + 1;\n                    } while (iVar15 != 8);\n                  }\n                  if ((((((cset.mbcset)->nmbchars != 0) || ((cset.mbcset)->ncoll_syms != 0)) ||\n                       ((cset.mbcset)->nequiv_classes != 0)) || ((cset.mbcset)->nranges != 0)) ||\n                     ((1 < iVar10 &&\n                      (((cset.mbcset)->nchar_classes != 0 || ((*(byte *)(cset.idx + 0x10) & 1) != 0)\n                       ))))) {\n                    dfa->field_0x58 = dfa->field_0x58 | 2;\n                    br_token._4_1_ = 6;\n                    br_token.opr.sbcset = cset.sbcset;\n                    local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                 (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                 (re_dfa_t *)&br_token);\n                    aVar16.sbcset = aVar13.sbcset;\n                    if (local_b0 != (bin_tree_t *)0x0) {\n                      while (*aVar16.sbcset == 0) {\n                        aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                        if ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges == aVar16.sbcset) {\n                          free(aVar13.sbcset);\n                          goto LAB_0003093e;\n                        }\n                      }\n                      br_token._4_1_ = 3;\n                      br_token.opr.sbcset = aVar13.sbcset;\n                      pbVar12 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                  (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                  (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                  (re_dfa_t *)&br_token);\n                      if (pbVar12 != (bin_tree_t *)0x0) {\n                        t._4_1_ = 10;\n                        dfa_1 = (re_dfa_t *)&t;\n                        goto LAB_000319aa;\n                      }\n                    }\nLAB_000319be:\n                    *err = _REG_ESPACE;\n                    goto LAB_000314ef;\n                  }\n                  free_charset(cset.mbcset);\n                  br_token._4_1_ = 3;\n                  dfa_1 = (re_dfa_t *)&br_token;\n                  pbVar12 = (bin_tree_t *)0x0;\n                  local_b0 = (bin_tree_t *)0x0;\n                  br_token.opr.sbcset = aVar13.sbcset;\nLAB_000319aa:\n                  local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                               (bin_tree_t *)&dfa->str_tree_storage_idx,pbVar12,\n                                               (re_token_t *)local_b0,dfa_1);\n                  if (local_b0 == (bin_tree_t *)0x0) goto LAB_000319be;\n                  goto LAB_0003093e;\n                }\n                uVar23 = 0xffffffff;\n                aVar19 = start_elem.opr;\n                do {\n                  if (uVar23 == 0) break;\n                  uVar23 = uVar23 - 1;\n                  uVar22 = *aVar19.name;\n                  aVar19.name = (uchar *)((char *)(aVar19.wch + L'\x01') + (uint)bVar25 * -2);\n                } while (uVar22 != '\0');\n                if (~uVar23 - 1 < 2) {\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) {\n                    uVar23 = 0xffffffff;\n                    pcVar24 = (char *)br_token._4_4_;\n                    do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');\n                    if (1 < ~uVar23 - 1) goto LAB_00031b44;\n                  }\n                  b = *start_elem.opr.name;\nLAB_0003178f:\n                  uVar8 = b;\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x0) goto LAB_00031b87;\n                  uVar22 = '\0';\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) goto LAB_000317a2;\n                  goto LAB_000317a5;\n                }\nLAB_00031b44:\n                *err = _REG_ECOLLATE;\n              }\n            }\n            else {\n              *err = rVar14;\n            }\n          }\n        }\n        else {\n          *err = rVar14;\n        }\n        goto LAB_000314ef;\n      }\n      *(byte *)(cset.idx + 0x10) = *(byte *)(cset.idx + 0x10) | 1;\n      if ((syntax & 0x100) != 0) {\n        *aVar13.sbcset = *aVar13.sbcset | 0x400;\n      }\n      regexp->cur_idx = regexp->cur_idx + (int)local_c0;\n      iVar10 = 0x315ee;\n      local_c0 = (bin_tree_t *)peek_token_bracket(token,regexp,syntax);\n      cVar9 = token->field_0x4;\n      if (cVar9 != '\x02') {\n        bVar7 = true;\n        goto LAB_000312a6;\n      }\n    }\n    *err = _REG_BADPAT;\nLAB_000314ef:\n    free(aVar13.sbcset);\n    free_charset(cset.mbcset);\n    if (*err == _REG_NOERROR) {\n      local_b0 = (bin_tree_t *)0x0;\n      goto LAB_0003093e;\n    }\n_L3134:\n    local_b0 = (bin_tree_t *)0x0;\n    goto LAB_00030965;\n  case '\x17':\n    if ((syntax & 0x1000000) == 0) goto _L3121;\nLAB_00030b48:\n    local_b0 = (bin_tree_t *)0x0;\n    *err = _REG_BADRPT;\n    goto LAB_00030965;\n  case ' ':\n  case '!':\n    local_b0 = build_charclass_op(dfa,regexp->trans,"alnum","_",cVar9 == '!',err);\n    rVar14 = *err;\n    goto joined_r0x00030f59;\n  case '\"':\n  case '#':\n    local_b0 = build_charclass_op(dfa,regexp->trans,"space","",cVar9 == '#',err);\n    rVar14 = *err;\njoined_r0x00030f59:\n    if ((rVar14 != _REG_NOERROR) && (local_b0 == (bin_tree_t *)0x0)) goto _L3134;\n    goto LAB_0003093e;\n  case '$':\n    local_b0 = (bin_tree_t *)0x0;\n    *err = _REG_EESCAPE;\n    goto LAB_00030965;\n  }" switch (parenthesized_expression "(cVar9)" ( identifier )) (compound_statement "{\n  default:\n    goto _L3134;\n  case '\x01':\n    piVar2 = &dfa->str_tree_storage_idx;\n    ppbVar1 = &dfa->str_tree_storage;\n    local_b0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                 (re_token_t *)0x0,(re_dfa_t *)token);\n    if (local_b0 != (bin_tree_t *)0x0) {\n      if (dfa->mb_cur_max < 2) goto LAB_0003093e;\n      do {\n        iVar10 = regexp->cur_idx;\n        if (((regexp->stop <= iVar10) || (iVar10 == regexp->valid_len)) ||\n           (regexp->wcs[iVar10] != 0xffffffff)) goto LAB_0003093e;\n        iVar10 = peek_token(token,regexp,syntax);\n        regexp->cur_idx = regexp->cur_idx + iVar10;\n        pbVar12 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                    (re_token_t *)0x0,(re_dfa_t *)token);\n        t._4_1_ = 0x10;\n        local_b0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,local_b0,\n                                     (re_token_t *)pbVar12,(re_dfa_t *)&t);\n      } while (pbVar12 != (bin_tree_t *)0x0 && local_b0 != (bin_tree_t *)0x0);\n    }\n    break;\n  case '\x04':\n    uVar23 = 1 << ((token->opr).c & 0x1f);\n    if ((dfa->completed_bkref_map & uVar23) == 0) {\n      local_b0 = (bin_tree_t *)0x0;\n      *err = _REG_ESUBREG;\n      goto LAB_00030965;\n    }\n    dfa->used_bkref_map = dfa->used_bkref_map | uVar23;\n    local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                 (bin_tree_t *)&dfa->str_tree_storage_idx,(bin_tree_t *)0x0,\n                                 (re_token_t *)0x0,(re_dfa_t *)token);\n    if (local_b0 != (bin_tree_t *)0x0) {\n      dfa->nbackref = dfa->nbackref + 1;\n      dfa->field_0x58 = dfa->field_0x58 | 2;\n      goto LAB_0003093e;\n    }\n    break;\n  case '\x05':\n    local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                 (bin_tree_t *)&dfa->str_tree_storage_idx,(bin_tree_t *)0x0,\n                                 (re_token_t *)0x0,(re_dfa_t *)token);\n    if (local_b0 == (bin_tree_t *)0x0) break;\n    if (1 < dfa->mb_cur_max) {\n      dfa->field_0x58 = dfa->field_0x58 | 2;\n    }\n    goto LAB_0003093e;\n  case '\b':\n    rVar5 = preg->re_nsub;\n    pbVar12 = (bin_tree_t *)0x0;\n    preg->re_nsub = rVar5 + 1;\n    IVar26 = 0x30fbf;\n    iVar10 = peek_token(token,regexp,syntax | 0x800000);\n    regexp->cur_idx = regexp->cur_idx + iVar10;\n    if (token->field_0x4 == '\t') {\nLAB_00030fd0:\n      if (rVar5 < WORD_LAST) {\n        dfa->completed_bkref_map = dfa->completed_bkref_map | 1 << ((byte)rVar5 & 0x1f);\n      }\n      t._4_1_ = 0x11;\n      local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                   (bin_tree_t *)&dfa->str_tree_storage_idx,pbVar12,\n                                   (re_token_t *)0x0,(re_dfa_t *)&t);\n      if (local_b0 != (bin_tree_t *)0x0) {\n        (local_b0->token).opr.ctx_type = rVar5;\n        goto LAB_0003093e;\n      }\n      break;\n    }\n    pbVar12 = parse_reg_exp(regexp,(regex_t *)syntax,(re_token_t *)(nest + 1),(reg_syntax_t)err,\n                            IVar26,in_stack_ffffff34);\n    if (*err == _REG_NOERROR) {\n      if (token->field_0x4 == '\t') goto LAB_00030fd0;\n      if (pbVar12 != (bin_tree_t *)0x0) {\n        postorder(pbVar12,free_tree,(void *)0x0);\n      }\n      *err = _REG_EPAREN;\n    }\n    goto _L3134;\n  case '\t':\n_L3123:\n    if ((syntax & 0x20000) == 0) {\n      local_b0 = (bin_tree_t *)0x0;\n      *err = _REG_ERPAREN;\n      goto LAB_00030965;\n    }\n  case '\x18':\n_L3118:\n    token->field_0x4 = 1;\n    local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                 (bin_tree_t *)&dfa->str_tree_storage_idx,(bin_tree_t *)0x0,\n                                 (re_token_t *)0x0,(re_dfa_t *)token);\n    if (local_b0 != (bin_tree_t *)0x0) {\nLAB_0003093e:\n      iVar10 = peek_token(token,regexp,syntax);\n      regexp->cur_idx = regexp->cur_idx + iVar10;\n      uVar23 = (uint)(byte)token->field_0x4;\n      do {\n        bVar25 = (byte)uVar23;\n        if ((0x17 < bVar25) || ((0x8c0800U >> (uVar23 & 0x1f) & 1) == 0)) goto LAB_00030965;\n        IVar26 = regexp->cur_idx;\n        aVar13 = token->opr;\n        uVar4 = *(undefined4 *)&token->field_0x4;\n        local_a4 = local_b0;\n        pbVar12 = local_b0;\n        if (bVar25 == 0x17) {\n          uVar23 = fetch_number(regexp,token,syntax);\n          if (uVar23 == 0xffffffff) {\n            if ((token->field_0x4 == '\x01') && ((token->opr).c == ',')) {\n              uVar23 = 0;\nLAB_00030d4d:\n              local_c0 = (bin_tree_t *)fetch_number(regexp,token,syntax);\n              if (local_c0 == (bin_tree_t *)0xfffffffe) goto LAB_00030cd8;\n              if (((local_c0 == (bin_tree_t *)0xffffffff) || ((int)uVar23 <= (int)local_c0)) &&\n                 (token->field_0x4 == '\x18')) {\n                pbVar11 = (bin_tree_t *)uVar23;\n                if (local_c0 != (bin_tree_t *)0xffffffff) goto LAB_00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\nLAB_00030e40:\n            *err = _REG_BADBR;\n          }\n          else {\n            if (uVar23 != 0xfffffffe) {\n              local_c0 = (bin_tree_t *)uVar23;\n              if (token->field_0x4 != '\x18') {\n                if (token->field_0x4 != '\x01') goto LAB_00030cd8;\n                if ((token->opr).c == ',') goto LAB_00030d4d;\n                if ((syntax & 0x200000) == 0) goto LAB_00030e40;\n                goto LAB_00030ce9;\n              }\nLAB_00030dfc:\n              pbVar11 = local_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)pbVar11) {\n                *err = _REG_ESIZE;\n                goto LAB_00030e4a;\n              }\n              iVar10 = peek_token(token,regexp,syntax);\n              regexp->cur_idx = regexp->cur_idx + iVar10;\n              if (local_b0 == (bin_tree_t *)0x0) goto LAB_00030d10;\n              if (local_c0 != (bin_tree_t *)0x0 || uVar23 != 0) {\n                if ((int)uVar23 < 1) {\n                  local_a4 = (bin_tree_t *)0x0;\n                  goto LAB_00030eb9;\n                }\n                if (uVar23 != 1) {\n                  iVar10 = 2;\n                  do {\n                    pbVar12 = duplicate_tree(pbVar12,dfa);\n                    t._4_1_ = 0x10;\n                    local_a4 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,local_a4,\n                                                 (re_token_t *)pbVar12,(re_dfa_t *)&t);\n                    if ((pbVar12 == (bin_tree_t *)0x0) || (local_a4 == (bin_tree_t *)0x0))\n                    goto LAB_00030be0;\n                    iVar10 = iVar10 + 1;\n                  } while (iVar10 <= (int)uVar23);\n                }\n                pbVar11 = local_a4;\n                if (local_c0 != (bin_tree_t *)uVar23) goto LAB_00030e9c;\n                goto LAB_00030b08;\n              }\n              postorder(local_b0,free_tree,(void *)0x0);\n              if (*err == _REG_NOERROR) goto LAB_00030d1e;\n              goto LAB_00030bea;\n            }\nLAB_00030cd8:\n            if ((syntax & 0x200000) == 0) {\n              if (token->field_0x4 != '\x02') goto LAB_00030e40;\n              *err = _REG_EBRACE;\n              goto LAB_00030e4a;\n            }\nLAB_00030ce9:\n            regexp->cur_idx = IVar26;\n            token->opr = aVar13;\n            *(undefined4 *)&token->field_0x4 = uVar4;\n            token->field_0x4 = 1;\n            pbVar11 = local_b0;\nLAB_00030af2:\n            if ((*err == _REG_NOERROR) || (pbVar11 != (bin_tree_t *)0x0)) goto LAB_00030b08;\n          }\nLAB_00030e4a:\n          if (local_b0 == (bin_tree_t *)0x0) goto _L3134;\nLAB_00030bea:\n          postorder(local_b0,free_tree,(void *)0x0);\n          local_b0 = (bin_tree_t *)0x0;\n          goto LAB_00030965;\n        }\n        uVar23 = (uint)(bVar25 == 0x12);\n        if (bVar25 == 0x13) {\n          iVar10 = peek_token(token,regexp,syntax);\n          regexp->cur_idx = regexp->cur_idx + iVar10;\n          if (local_b0 == (bin_tree_t *)0x0) goto LAB_00030d10;\n          if ((local_b0->token).field_0x4 == '\x11') {\n            local_c0 = (bin_tree_t *)0x1;\n            local_a4 = (bin_tree_t *)0x0;\n            goto LAB_00030c76;\n          }\n          local_c0 = (bin_tree_t *)0x1;\n          t._4_1_ = 10;\n          local_a4 = (bin_tree_t *)0x0;\nLAB_00030a18:\n          ppbVar1 = &dfa->str_tree_storage;\n          piVar2 = &dfa->str_tree_storage_idx;\n          pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar12,\n                                      (re_token_t *)0x0,(re_dfa_t *)&t);\n          if (pbVar11 == (bin_tree_t *)0x0) {\nLAB_00030be0:\n            *err = _REG_ESPACE;\n            goto LAB_00030bea;\n          }\n          for (iVar10 = uVar23 + 2; iVar10 <= (int)local_c0; iVar10 = iVar10 + 1) {\n            pbVar12 = duplicate_tree(pbVar12,dfa);\n            t._4_1_ = 0x10;\n            pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar11,\n                                        (re_token_t *)pbVar12,(re_dfa_t *)&t);\n            if ((pbVar12 == (bin_tree_t *)0x0) || (pbVar11 == (bin_tree_t *)0x0)) goto LAB_00030be0;\n            t._4_1_ = 10;\n            pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar11,\n                                        (re_token_t *)0x0,(re_dfa_t *)&t);\n            if (pbVar11 == (bin_tree_t *)0x0) goto LAB_00030be0;\n          }\n          if (local_a4 != (bin_tree_t *)0x0) {\n            t._4_1_ = 0x10;\n            pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,local_a4,\n                                        (re_token_t *)pbVar11,(re_dfa_t *)&t);\n            goto LAB_00030af2;\n          }\n        }\n        else {\n          iVar10 = peek_token(token,regexp,syntax);\n          regexp->cur_idx = regexp->cur_idx + iVar10;\n          if (local_b0 != (bin_tree_t *)0x0) {\n            if (bVar25 != 0x12) {\n              if ((local_b0->token).field_0x4 == '\x11') {\n                local_c0 = (bin_tree_t *)0xffffffff;\n                uVar23 = 0;\n                local_a4 = (bin_tree_t *)0x0;\nLAB_00030c76:\n                postorder(pbVar12,mark_opt_subexp,(pbVar12->token).opr.sbcset);\n                goto LAB_00030c8a;\n              }\n              local_c0 = (bin_tree_t *)0xffffffff;\n              uVar23 = 0;\n              local_a4 = (bin_tree_t *)0x0;\nLAB_00030a13:\n              t._4_1_ = 0xb;\n              goto LAB_00030a18;\n            }\n            local_c0 = (bin_tree_t *)0xffffffff;\n            uVar23 = 1;\nLAB_00030e9c:\n            pbVar12 = duplicate_tree(pbVar12,dfa);\n            if (pbVar12 != (bin_tree_t *)0x0) {\nLAB_00030eb9:\n              if ((pbVar12->token).field_0x4 == '\x11') goto LAB_00030c76;\nLAB_00030c8a:\n              if (local_c0 != (bin_tree_t *)0xffffffff) {\n                t._4_1_ = 10;\n                goto LAB_00030a18;\n              }\n              goto LAB_00030a13;\n            }\n            goto LAB_00030be0;\n          }\nLAB_00030d10:\n          if (*err != _REG_NOERROR) goto _L3134;\nLAB_00030d1e:\n          local_b0 = (bin_tree_t *)0x0;\n          pbVar11 = local_b0;\n        }\nLAB_00030b08:\n        local_b0 = pbVar11;\n        bVar25 = token->field_0x4;\n        uVar23 = (uint)bVar25;\n      } while (((syntax & 0x1000000) == 0) || ((bVar25 != 0xb && (bVar25 != 0x17))));\n      if (local_b0 != (bin_tree_t *)0x0) {\n        postorder(local_b0,free_tree,(void *)0x0);\n      }\n      goto LAB_00030b48;\n    }\n    break;\n  case '\v':\n  case '\x12':\n  case '\x13':\n_L3121:\n    if ((syntax & 0x20) == 0) {\n      if ((syntax & 0x10) != 0) {\n        iVar10 = peek_token(token,regexp,syntax);\n        regexp->cur_idx = regexp->cur_idx + iVar10;\n        local_b0 = parse_expression(regexp,preg,token,syntax,nest,err);\n        goto LAB_00030965;\n      }\n      if (cVar9 == '\t') goto _L3123;\n      goto _L3118;\n    }\n    goto LAB_00030b48;\n  case '\f':\n    local_c0 = (bin_tree_t *)(token->opr).ctx_type;\n    if ((((uint)local_c0 & 0x30f) != 0) && (bVar25 = dfa->field_0x58, (bVar25 & 0x10) == 0)) {\n      dfa->field_0x58 = bVar25 | 0x10;\n      if ((bVar25 & 8) == 0) {\n        dfa->word_char[0] = 0;\n        dfa->word_char[1] = 0x3ff0000;\n        dfa->word_char[2] = 0x87fffffe;\n        dfa->word_char[3] = 0x7fffffe;\n        if ((bVar25 & 4) != 0) {\n          dfa->word_char[4] = 0;\n          dfa->word_char[5] = 0;\n          dfa->word_char[6] = 0;\n          dfa->word_char[7] = 0;\n          local_c0 = (bin_tree_t *)(token->opr).idx;\n          goto LAB_00031089;\n        }\n        iVar15 = 0x80;\n        iVar10 = 4;\n      }\n      else {\n        iVar15 = 0;\n        iVar10 = 0;\n      }\n      ppuVar17 = __ctype_b_loc();\n      pbVar21 = dfa->word_char + iVar10 + -0x18;\n      puVar18 = *ppuVar17 + iVar15;\n      do {\n        iVar10 = 0;\n        do {\n          if (((puVar18[iVar10] & 8) != 0) || (iVar15 + iVar10 == 0x5f)) {\n            pbVar21[0x18] = pbVar21[0x18] | 1 << ((byte)iVar10 & 0x1f);\n          }\n          iVar10 = iVar10 + 1;\n        } while (iVar10 != 0x20);\n        iVar15 = iVar15 + 0x20;\n        pbVar21 = pbVar21 + 1;\n        puVar18 = puVar18 + 0x20;\n      } while (&dfa->state_table != (re_state_table_entry **)pbVar21);\n    }\nLAB_00031089:\n    ppbVar1 = &dfa->str_tree_storage;\n    piVar2 = &dfa->str_tree_storage_idx;\n    if (((int)local_c0 - WORD_DELIM & 0xfffffeff) == 0) {\n      if (local_c0 == (bin_tree_t *)0x100) {\n        (token->opr).idx = 6;\n        local_c0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                     (re_token_t *)0x0,(re_dfa_t *)token);\n        (token->opr).idx = 9;\n      }\n      else {\n        (token->opr).idx = 5;\n        local_c0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                     (re_token_t *)0x0,(re_dfa_t *)token);\n        (token->opr).idx = 10;\n      }\n      pbVar12 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                  (re_token_t *)0x0,(re_dfa_t *)token);\n      t._4_1_ = 10;\n      local_b0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,local_c0,\n                                   (re_token_t *)pbVar12,(re_dfa_t *)&t);\n      if (local_c0 == (bin_tree_t *)0x0 || pbVar12 == (bin_tree_t *)0x0) break;\n    }\n    else {\n      local_b0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                   (re_token_t *)0x0,(re_dfa_t *)token);\n    }\n    if (local_b0 != (bin_tree_t *)0x0) {\n      iVar10 = peek_token(token,regexp,syntax);\n      regexp->cur_idx = regexp->cur_idx + iVar10;\n      goto LAB_00030965;\n    }\n    break;\n  case '\x14':\n    aVar13.sbcset = (re_bitset_ptr_t)calloc(0x20,1);\n    cset.sbcset = (re_bitset_ptr_t)calloc(0x28,1);\n    if (aVar13.sbcset == (uint *)0x0 || (re_charset_t *)cset.sbcset == (re_charset_t *)0x0) {\n      free(aVar13.sbcset);\n      free(cset.sbcset);\n      *err = _REG_ESPACE;\n      local_b0 = (bin_tree_t *)0x0;\n      goto LAB_00030965;\n    }\n    iVar10 = 0x31289;\n    local_c0 = (bin_tree_t *)peek_token_bracket(token,regexp,syntax);\n    cVar9 = token->field_0x4;\n    if (cVar9 != '\x02') {\n      bVar7 = false;\n      if (cVar9 != '\x19') {\nLAB_000312a6:\n        if (cVar9 == '\x15') {\n          token->field_0x4 = 1;\n        }\n        local_90 = 0;\n        syntax_00 = 1;\nLAB_000312e4:\n        start_elem.type = COLL_SYM;\n        start_elem.opr.name = start_name_buf;\n        rVar14 = parse_bracket_element\n                           (&start_elem,regexp,token,(int)local_c0,(re_dfa_t *)syntax,syntax_00,\n                            SUB41(iVar10,0));\n        if (rVar14 == _REG_NOERROR) {\n          iVar10 = peek_token_bracket(token,regexp,syntax);\n          if ((start_elem.type - EQUIV_CLASS & 0xfffffffd) == 0) {\nLAB_0003135b:\n            if (start_elem.type < (CHAR_CLASS|MB_CHAR)) {\n                    /* WARNING: Could not recover jumptable at 0x00031371. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar12 = (bin_tree_t *)\n                        (*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                  *(int *)(&UNK_0003ad38 + start_elem.type * 4)))();\n              return pbVar12;\n            }\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("0","lib/regcomp.c",0xcf3,"parse_bracket_exp");\n          }\n          if (token->field_0x4 == '\x02') {\nLAB_00031615:\n            *err = _REG_EBRACK;\n          }\n          else {\n            if (token->field_0x4 != '\x16') goto LAB_0003135b;\n            regexp->cur_idx = regexp->cur_idx + iVar10;\n            accept_hyphen = 0xc3;\n            iVar15 = peek_token_bracket(&t,regexp,syntax);\n            if (t._4_1_ == '\x02') goto LAB_00031615;\n            if (t._4_1_ == '\x15') {\n              regexp->cur_idx = regexp->cur_idx - iVar10;\n              token->field_0x4 = 1;\n              goto LAB_0003135b;\n            }\n            br_token._4_4_ = end_name_buf;\n            br_token.opr.idx = 3;\n            rVar14 = parse_bracket_element\n                               ((bracket_elem_t *)&br_token,regexp,&t,iVar15,(re_dfa_t *)syntax,1,\n                                (_Bool)accept_hyphen);\n            if (rVar14 == _REG_NOERROR) {\n              iVar10 = 0x31728;\n              local_c0 = (bin_tree_t *)peek_token_bracket(token,regexp,syntax);\n              aVar16.sbcset = cset.sbcset;\n              if (dfa->mb_cur_max < 2) {\n                aVar16.sbcset = (re_bitset_ptr_t)0x0;\n              }\n              if (((start_elem.type - EQUIV_CLASS & 0xfffffffd) == 0) ||\n                 ((br_token.opr.idx - 2U & 0xfffffffd) == 0)) {\nLAB_00031b91:\n                *err = _REG_ERANGE;\n              }\n              else {\n                if (start_elem.type != COLL_SYM) {\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) {\n                    uVar23 = 0xffffffff;\n                    pcVar24 = (char *)br_token._4_4_;\n                    do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');\n                    if (1 < ~uVar23 - 1) goto LAB_00031b44;\n                    b = '\0';\n                    if (start_elem.type == SB_CHAR) goto LAB_0003178a;\nLAB_000317a2:\n                    uVar22 = *(uchar *)br_token._4_4_;\n                  }\n                  else {\n                    if (start_elem.type == SB_CHAR) {\nLAB_0003178a:\n                      b = start_elem.opr.ch;\n                      goto LAB_0003178f;\n                    }\n                    b = '\0';\n                    uVar22 = '\0';\n                    uVar8 = '\0';\n                    if (br_token.opr.sbcset != (re_bitset_ptr_t)0x0) goto LAB_000317a5;\nLAB_00031b87:\n                    b = uVar8;\n                    uVar22 = br_token._4_1_;\n                  }\nLAB_000317a5:\n                  if ((start_elem.type == SB_CHAR) ||\n                     (aVar19 = start_elem.opr, start_elem.type == COLL_SYM)) {\n                    iVar10 = 0x31b70;\n                    aVar19.wch = parse_byte(b,aVar16.mbcset);\n                  }\n                  if ((br_token.opr.sbcset == (re_bitset_ptr_t)0x0) ||\n                     (local_8c = (uchar *)br_token._4_4_,\n                     br_token.opr.sbcset == (re_bitset_ptr_t)0x3)) {\n                    iVar10 = 0x31b5e;\n                    local_8c = (uchar *)parse_byte(uVar22,aVar16.mbcset);\n                  }\n                  if ((aVar19.name == (uchar *)0xffffffff) || (local_8c == (uchar *)0xffffffff))\n                  goto LAB_00031b44;\n                  if (((syntax & 0x10000) != 0) && (local_8c < aVar19.name)) goto LAB_00031b91;\n                  if ((re_charset_t *)aVar16.sbcset != (re_charset_t *)0x0) {\n                    iVar15 = (aVar16.mbcset)->nranges;\n                    __ptr = (aVar16.mbcset)->range_starts;\n                    if (iVar15 == local_90) {\n                      local_90 = local_90 * 2 + 1;\n                      iVar10 = local_90;\n                      __ptr = (wchar_t *)realloc(__ptr,local_90 * 4);\n                      __ptr_00 = (wchar_t *)realloc((aVar16.mbcset)->range_ends,local_90 * 4);\n                      if ((__ptr == (wchar_t *)0x0) || (__ptr_00 == (wchar_t *)0x0)) {\n                        free(__ptr);\n                        free(__ptr_00);\n                        *err = _REG_ESPACE;\n                        goto LAB_000314ef;\n                      }\n                      (aVar16.mbcset)->range_ends = __ptr_00;\n                      iVar15 = (aVar16.mbcset)->nranges;\n                      (aVar16.mbcset)->range_starts = __ptr;\n                    }\n                    ((anon_union_4_3_ebfdf496_for_opr *)(__ptr + iVar15))->name = (uchar *)aVar19;\n                    (aVar16.mbcset)->nranges = iVar15 + 1;\n                    (aVar16.mbcset)->range_ends[iVar15] = (wchar_t)local_8c;\n                  }\n                  puVar20 = (uchar *)0x0;\n                  do {\n                    if ((aVar19.name <= puVar20) && (puVar20 <= local_8c)) {\n                      aVar13.sbcset[(int)puVar20 >> 5] =\n                           aVar13.sbcset[(int)puVar20 >> 5] | 1 << ((byte)puVar20 & 0x1f);\n                    }\n                    puVar20 = puVar20 + 1;\n                  } while (puVar20 != (uchar *)0x100);\n                  *err = _REG_NOERROR;\n                  if (token->field_0x4 == '\x02') goto LAB_00031615;\n                  if (token->field_0x4 != '\x15') goto code_r0x000314d1;\n                  regexp->cur_idx = regexp->cur_idx + (int)local_c0;\n                  if (bVar7) {\n                    aVar16.sbcset = aVar13.sbcset;\n                    do {\n                      *aVar16.sbcset = ~*aVar16.sbcset;\n                      aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                    } while ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges != aVar16.sbcset);\n                  }\n                  iVar10 = dfa->mb_cur_max;\n                  if (1 < iVar10) {\n                    pbVar6 = dfa->sb_char;\n                    iVar15 = 0;\n                    do {\n                      aVar13.sbcset[iVar15] = aVar13.sbcset[iVar15] & pbVar6[iVar15];\n                      iVar15 = iVar15 + 1;\n                    } while (iVar15 != 8);\n                  }\n                  if ((((((cset.mbcset)->nmbchars != 0) || ((cset.mbcset)->ncoll_syms != 0)) ||\n                       ((cset.mbcset)->nequiv_classes != 0)) || ((cset.mbcset)->nranges != 0)) ||\n                     ((1 < iVar10 &&\n                      (((cset.mbcset)->nchar_classes != 0 || ((*(byte *)(cset.idx + 0x10) & 1) != 0)\n                       ))))) {\n                    dfa->field_0x58 = dfa->field_0x58 | 2;\n                    br_token._4_1_ = 6;\n                    br_token.opr.sbcset = cset.sbcset;\n                    local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                 (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                 (re_dfa_t *)&br_token);\n                    aVar16.sbcset = aVar13.sbcset;\n                    if (local_b0 != (bin_tree_t *)0x0) {\n                      while (*aVar16.sbcset == 0) {\n                        aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                        if ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges == aVar16.sbcset) {\n                          free(aVar13.sbcset);\n                          goto LAB_0003093e;\n                        }\n                      }\n                      br_token._4_1_ = 3;\n                      br_token.opr.sbcset = aVar13.sbcset;\n                      pbVar12 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                  (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                  (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                  (re_dfa_t *)&br_token);\n                      if (pbVar12 != (bin_tree_t *)0x0) {\n                        t._4_1_ = 10;\n                        dfa_1 = (re_dfa_t *)&t;\n                        goto LAB_000319aa;\n                      }\n                    }\nLAB_000319be:\n                    *err = _REG_ESPACE;\n                    goto LAB_000314ef;\n                  }\n                  free_charset(cset.mbcset);\n                  br_token._4_1_ = 3;\n                  dfa_1 = (re_dfa_t *)&br_token;\n                  pbVar12 = (bin_tree_t *)0x0;\n                  local_b0 = (bin_tree_t *)0x0;\n                  br_token.opr.sbcset = aVar13.sbcset;\nLAB_000319aa:\n                  local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                               (bin_tree_t *)&dfa->str_tree_storage_idx,pbVar12,\n                                               (re_token_t *)local_b0,dfa_1);\n                  if (local_b0 == (bin_tree_t *)0x0) goto LAB_000319be;\n                  goto LAB_0003093e;\n                }\n                uVar23 = 0xffffffff;\n                aVar19 = start_elem.opr;\n                do {\n                  if (uVar23 == 0) break;\n                  uVar23 = uVar23 - 1;\n                  uVar22 = *aVar19.name;\n                  aVar19.name = (uchar *)((char *)(aVar19.wch + L'\x01') + (uint)bVar25 * -2);\n                } while (uVar22 != '\0');\n                if (~uVar23 - 1 < 2) {\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) {\n                    uVar23 = 0xffffffff;\n                    pcVar24 = (char *)br_token._4_4_;\n                    do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');\n                    if (1 < ~uVar23 - 1) goto LAB_00031b44;\n                  }\n                  b = *start_elem.opr.name;\nLAB_0003178f:\n                  uVar8 = b;\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x0) goto LAB_00031b87;\n                  uVar22 = '\0';\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) goto LAB_000317a2;\n                  goto LAB_000317a5;\n                }\nLAB_00031b44:\n                *err = _REG_ECOLLATE;\n              }\n            }\n            else {\n              *err = rVar14;\n            }\n          }\n        }\n        else {\n          *err = rVar14;\n        }\n        goto LAB_000314ef;\n      }\n      *(byte *)(cset.idx + 0x10) = *(byte *)(cset.idx + 0x10) | 1;\n      if ((syntax & 0x100) != 0) {\n        *aVar13.sbcset = *aVar13.sbcset | 0x400;\n      }\n      regexp->cur_idx = regexp->cur_idx + (int)local_c0;\n      iVar10 = 0x315ee;\n      local_c0 = (bin_tree_t *)peek_token_bracket(token,regexp,syntax);\n      cVar9 = token->field_0x4;\n      if (cVar9 != '\x02') {\n        bVar7 = true;\n        goto LAB_000312a6;\n      }\n    }\n    *err = _REG_BADPAT;\nLAB_000314ef:\n    free(aVar13.sbcset);\n    free_charset(cset.mbcset);\n    if (*err == _REG_NOERROR) {\n      local_b0 = (bin_tree_t *)0x0;\n      goto LAB_0003093e;\n    }\n_L3134:\n    local_b0 = (bin_tree_t *)0x0;\n    goto LAB_00030965;\n  case '\x17':\n    if ((syntax & 0x1000000) == 0) goto _L3121;\nLAB_00030b48:\n    local_b0 = (bin_tree_t *)0x0;\n    *err = _REG_BADRPT;\n    goto LAB_00030965;\n  case ' ':\n  case '!':\n    local_b0 = build_charclass_op(dfa,regexp->trans,"alnum","_",cVar9 == '!',err);\n    rVar14 = *err;\n    goto joined_r0x00030f59;\n  case '\"':\n  case '#':\n    local_b0 = build_charclass_op(dfa,regexp->trans,"space","",cVar9 == '#',err);\n    rVar14 = *err;\njoined_r0x00030f59:\n    if ((rVar14 != _REG_NOERROR) && (local_b0 == (bin_tree_t *)0x0)) goto _L3134;\n    goto LAB_0003093e;\n  case '$':\n    local_b0 = (bin_tree_t *)0x0;\n    *err = _REG_EESCAPE;\n    goto LAB_00030965;\n  }" { (case_statement "default:\n    goto _L3134;" default : (goto_statement "goto _L3134;" goto statement_identifier ;)) (case_statement "case '\x01':\n    piVar2 = &dfa->str_tree_storage_idx;\n    ppbVar1 = &dfa->str_tree_storage;\n    local_b0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                 (re_token_t *)0x0,(re_dfa_t *)token);\n    if (local_b0 != (bin_tree_t *)0x0) {\n      if (dfa->mb_cur_max < 2) goto LAB_0003093e;\n      do {\n        iVar10 = regexp->cur_idx;\n        if (((regexp->stop <= iVar10) || (iVar10 == regexp->valid_len)) ||\n           (regexp->wcs[iVar10] != 0xffffffff)) goto LAB_0003093e;\n        iVar10 = peek_token(token,regexp,syntax);\n        regexp->cur_idx = regexp->cur_idx + iVar10;\n        pbVar12 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                    (re_token_t *)0x0,(re_dfa_t *)token);\n        t._4_1_ = 0x10;\n        local_b0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,local_b0,\n                                     (re_token_t *)pbVar12,(re_dfa_t *)&t);\n      } while (pbVar12 != (bin_tree_t *)0x0 && local_b0 != (bin_tree_t *)0x0);\n    }\n    break;" case (char_literal "'\x01'" ' escape_sequence ') : (expression_statement "piVar2 = &dfa->str_tree_storage_idx;" (assignment_expression "piVar2 = &dfa->str_tree_storage_idx" identifier = (pointer_expression "&dfa->str_tree_storage_idx" & (field_expression "dfa->str_tree_storage_idx" identifier -> field_identifier))) ;) (expression_statement "ppbVar1 = &dfa->str_tree_storage;" (assignment_expression "ppbVar1 = &dfa->str_tree_storage" identifier = (pointer_expression "&dfa->str_tree_storage" & (field_expression "dfa->str_tree_storage" identifier -> field_identifier))) ;) (expression_statement "local_b0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                 (re_token_t *)0x0,(re_dfa_t *)token);" (assignment_expression "local_b0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                 (re_token_t *)0x0,(re_dfa_t *)token)" identifier = (call_expression "create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                 (re_token_t *)0x0,(re_dfa_t *)token)" identifier (argument_list "((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                 (re_token_t *)0x0,(re_dfa_t *)token)" ( (cast_expression "(re_dfa_t *)ppbVar1" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(bin_tree_t *)piVar2" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(re_token_t *)0x0" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(re_dfa_t *)token" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (local_b0 != (bin_tree_t *)0x0) {\n      if (dfa->mb_cur_max < 2) goto LAB_0003093e;\n      do {\n        iVar10 = regexp->cur_idx;\n        if (((regexp->stop <= iVar10) || (iVar10 == regexp->valid_len)) ||\n           (regexp->wcs[iVar10] != 0xffffffff)) goto LAB_0003093e;\n        iVar10 = peek_token(token,regexp,syntax);\n        regexp->cur_idx = regexp->cur_idx + iVar10;\n        pbVar12 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                    (re_token_t *)0x0,(re_dfa_t *)token);\n        t._4_1_ = 0x10;\n        local_b0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,local_b0,\n                                     (re_token_t *)pbVar12,(re_dfa_t *)&t);\n      } while (pbVar12 != (bin_tree_t *)0x0 && local_b0 != (bin_tree_t *)0x0);\n    }" if (parenthesized_expression "(local_b0 != (bin_tree_t *)0x0)" ( (binary_expression "local_b0 != (bin_tree_t *)0x0" identifier != (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (dfa->mb_cur_max < 2) goto LAB_0003093e;\n      do {\n        iVar10 = regexp->cur_idx;\n        if (((regexp->stop <= iVar10) || (iVar10 == regexp->valid_len)) ||\n           (regexp->wcs[iVar10] != 0xffffffff)) goto LAB_0003093e;\n        iVar10 = peek_token(token,regexp,syntax);\n        regexp->cur_idx = regexp->cur_idx + iVar10;\n        pbVar12 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                    (re_token_t *)0x0,(re_dfa_t *)token);\n        t._4_1_ = 0x10;\n        local_b0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,local_b0,\n                                     (re_token_t *)pbVar12,(re_dfa_t *)&t);\n      } while (pbVar12 != (bin_tree_t *)0x0 && local_b0 != (bin_tree_t *)0x0);\n    }" { (if_statement "if (dfa->mb_cur_max < 2) goto LAB_0003093e;" if (parenthesized_expression "(dfa->mb_cur_max < 2)" ( (binary_expression "dfa->mb_cur_max < 2" (field_expression "dfa->mb_cur_max" identifier -> field_identifier) < number_literal) )) (goto_statement "goto LAB_0003093e;" goto statement_identifier ;)) (do_statement "do {\n        iVar10 = regexp->cur_idx;\n        if (((regexp->stop <= iVar10) || (iVar10 == regexp->valid_len)) ||\n           (regexp->wcs[iVar10] != 0xffffffff)) goto LAB_0003093e;\n        iVar10 = peek_token(token,regexp,syntax);\n        regexp->cur_idx = regexp->cur_idx + iVar10;\n        pbVar12 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                    (re_token_t *)0x0,(re_dfa_t *)token);\n        t._4_1_ = 0x10;\n        local_b0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,local_b0,\n                                     (re_token_t *)pbVar12,(re_dfa_t *)&t);\n      } while (pbVar12 != (bin_tree_t *)0x0 && local_b0 != (bin_tree_t *)0x0);" do (compound_statement "{\n        iVar10 = regexp->cur_idx;\n        if (((regexp->stop <= iVar10) || (iVar10 == regexp->valid_len)) ||\n           (regexp->wcs[iVar10] != 0xffffffff)) goto LAB_0003093e;\n        iVar10 = peek_token(token,regexp,syntax);\n        regexp->cur_idx = regexp->cur_idx + iVar10;\n        pbVar12 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                    (re_token_t *)0x0,(re_dfa_t *)token);\n        t._4_1_ = 0x10;\n        local_b0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,local_b0,\n                                     (re_token_t *)pbVar12,(re_dfa_t *)&t);\n      }" { (expression_statement "iVar10 = regexp->cur_idx;" (assignment_expression "iVar10 = regexp->cur_idx" identifier = (field_expression "regexp->cur_idx" identifier -> field_identifier)) ;) (if_statement "if (((regexp->stop <= iVar10) || (iVar10 == regexp->valid_len)) ||\n           (regexp->wcs[iVar10] != 0xffffffff)) goto LAB_0003093e;" if (parenthesized_expression "(((regexp->stop <= iVar10) || (iVar10 == regexp->valid_len)) ||\n           (regexp->wcs[iVar10] != 0xffffffff))" ( (binary_expression "((regexp->stop <= iVar10) || (iVar10 == regexp->valid_len)) ||\n           (regexp->wcs[iVar10] != 0xffffffff)" (parenthesized_expression "((regexp->stop <= iVar10) || (iVar10 == regexp->valid_len))" ( (binary_expression "(regexp->stop <= iVar10) || (iVar10 == regexp->valid_len)" (parenthesized_expression "(regexp->stop <= iVar10)" ( (binary_expression "regexp->stop <= iVar10" (field_expression "regexp->stop" identifier -> field_identifier) <= identifier) )) || (parenthesized_expression "(iVar10 == regexp->valid_len)" ( (binary_expression "iVar10 == regexp->valid_len" identifier == (field_expression "regexp->valid_len" identifier -> field_identifier)) ))) )) || (parenthesized_expression "(regexp->wcs[iVar10] != 0xffffffff)" ( (binary_expression "regexp->wcs[iVar10] != 0xffffffff" (subscript_expression "regexp->wcs[iVar10]" (field_expression "regexp->wcs" identifier -> field_identifier) [ identifier ]) != number_literal) ))) )) (goto_statement "goto LAB_0003093e;" goto statement_identifier ;)) (expression_statement "iVar10 = peek_token(token,regexp,syntax);" (assignment_expression "iVar10 = peek_token(token,regexp,syntax)" identifier = (call_expression "peek_token(token,regexp,syntax)" identifier (argument_list "(token,regexp,syntax)" ( identifier , identifier , identifier )))) ;) (expression_statement "regexp->cur_idx = regexp->cur_idx + iVar10;" (assignment_expression "regexp->cur_idx = regexp->cur_idx + iVar10" (field_expression "regexp->cur_idx" identifier -> field_identifier) = (binary_expression "regexp->cur_idx + iVar10" (field_expression "regexp->cur_idx" identifier -> field_identifier) + identifier)) ;) (expression_statement "pbVar12 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                    (re_token_t *)0x0,(re_dfa_t *)token);" (assignment_expression "pbVar12 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                    (re_token_t *)0x0,(re_dfa_t *)token)" identifier = (call_expression "create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                    (re_token_t *)0x0,(re_dfa_t *)token)" identifier (argument_list "((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                    (re_token_t *)0x0,(re_dfa_t *)token)" ( (cast_expression "(re_dfa_t *)ppbVar1" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(bin_tree_t *)piVar2" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(re_token_t *)0x0" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(re_dfa_t *)token" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "t._4_1_ = 0x10;" (assignment_expression "t._4_1_ = 0x10" (field_expression "t._4_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "local_b0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,local_b0,\n                                     (re_token_t *)pbVar12,(re_dfa_t *)&t);" (assignment_expression "local_b0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,local_b0,\n                                     (re_token_t *)pbVar12,(re_dfa_t *)&t)" identifier = (call_expression "create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,local_b0,\n                                     (re_token_t *)pbVar12,(re_dfa_t *)&t)" identifier (argument_list "((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,local_b0,\n                                     (re_token_t *)pbVar12,(re_dfa_t *)&t)" ( (cast_expression "(re_dfa_t *)ppbVar1" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(bin_tree_t *)piVar2" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (cast_expression "(re_token_t *)pbVar12" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(re_dfa_t *)&t" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&t" & identifier)) )))) ;) }) while (parenthesized_expression "(pbVar12 != (bin_tree_t *)0x0 && local_b0 != (bin_tree_t *)0x0)" ( (binary_expression "pbVar12 != (bin_tree_t *)0x0 && local_b0 != (bin_tree_t *)0x0" (binary_expression "pbVar12 != (bin_tree_t *)0x0" identifier != (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (binary_expression "local_b0 != (bin_tree_t *)0x0" identifier != (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) ;) })) (break_statement "break;" break ;)) (case_statement "case '\x04':\n    uVar23 = 1 << ((token->opr).c & 0x1f);\n    if ((dfa->completed_bkref_map & uVar23) == 0) {\n      local_b0 = (bin_tree_t *)0x0;\n      *err = _REG_ESUBREG;\n      goto LAB_00030965;\n    }\n    dfa->used_bkref_map = dfa->used_bkref_map | uVar23;\n    local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                 (bin_tree_t *)&dfa->str_tree_storage_idx,(bin_tree_t *)0x0,\n                                 (re_token_t *)0x0,(re_dfa_t *)token);\n    if (local_b0 != (bin_tree_t *)0x0) {\n      dfa->nbackref = dfa->nbackref + 1;\n      dfa->field_0x58 = dfa->field_0x58 | 2;\n      goto LAB_0003093e;\n    }\n    break;" case (char_literal "'\x04'" ' escape_sequence ') : (expression_statement "uVar23 = 1 << ((token->opr).c & 0x1f);" (assignment_expression "uVar23 = 1 << ((token->opr).c & 0x1f)" identifier = (binary_expression "1 << ((token->opr).c & 0x1f)" number_literal << (parenthesized_expression "((token->opr).c & 0x1f)" ( (binary_expression "(token->opr).c & 0x1f" (field_expression "(token->opr).c" (parenthesized_expression "(token->opr)" ( (field_expression "token->opr" identifier -> field_identifier) )) . field_identifier) & number_literal) )))) ;) (if_statement "if ((dfa->completed_bkref_map & uVar23) == 0) {\n      local_b0 = (bin_tree_t *)0x0;\n      *err = _REG_ESUBREG;\n      goto LAB_00030965;\n    }" if (parenthesized_expression "((dfa->completed_bkref_map & uVar23) == 0)" ( (binary_expression "(dfa->completed_bkref_map & uVar23) == 0" (parenthesized_expression "(dfa->completed_bkref_map & uVar23)" ( (binary_expression "dfa->completed_bkref_map & uVar23" (field_expression "dfa->completed_bkref_map" identifier -> field_identifier) & identifier) )) == number_literal) )) (compound_statement "{\n      local_b0 = (bin_tree_t *)0x0;\n      *err = _REG_ESUBREG;\n      goto LAB_00030965;\n    }" { (expression_statement "local_b0 = (bin_tree_t *)0x0;" (assignment_expression "local_b0 = (bin_tree_t *)0x0" identifier = (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*err = _REG_ESUBREG;" (assignment_expression "*err = _REG_ESUBREG" (pointer_expression "*err" * identifier) = identifier) ;) (goto_statement "goto LAB_00030965;" goto statement_identifier ;) })) (expression_statement "dfa->used_bkref_map = dfa->used_bkref_map | uVar23;" (assignment_expression "dfa->used_bkref_map = dfa->used_bkref_map | uVar23" (field_expression "dfa->used_bkref_map" identifier -> field_identifier) = (binary_expression "dfa->used_bkref_map | uVar23" (field_expression "dfa->used_bkref_map" identifier -> field_identifier) | identifier)) ;) (expression_statement "local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                 (bin_tree_t *)&dfa->str_tree_storage_idx,(bin_tree_t *)0x0,\n                                 (re_token_t *)0x0,(re_dfa_t *)token);" (assignment_expression "local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                 (bin_tree_t *)&dfa->str_tree_storage_idx,(bin_tree_t *)0x0,\n                                 (re_token_t *)0x0,(re_dfa_t *)token)" identifier = (call_expression "create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                 (bin_tree_t *)&dfa->str_tree_storage_idx,(bin_tree_t *)0x0,\n                                 (re_token_t *)0x0,(re_dfa_t *)token)" identifier (argument_list "((re_dfa_t *)&dfa->str_tree_storage,\n                                 (bin_tree_t *)&dfa->str_tree_storage_idx,(bin_tree_t *)0x0,\n                                 (re_token_t *)0x0,(re_dfa_t *)token)" ( (cast_expression "(re_dfa_t *)&dfa->str_tree_storage" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&dfa->str_tree_storage" & (field_expression "dfa->str_tree_storage" identifier -> field_identifier))) , (cast_expression "(bin_tree_t *)&dfa->str_tree_storage_idx" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&dfa->str_tree_storage_idx" & (field_expression "dfa->str_tree_storage_idx" identifier -> field_identifier))) , (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(re_token_t *)0x0" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(re_dfa_t *)token" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (local_b0 != (bin_tree_t *)0x0) {\n      dfa->nbackref = dfa->nbackref + 1;\n      dfa->field_0x58 = dfa->field_0x58 | 2;\n      goto LAB_0003093e;\n    }" if (parenthesized_expression "(local_b0 != (bin_tree_t *)0x0)" ( (binary_expression "local_b0 != (bin_tree_t *)0x0" identifier != (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      dfa->nbackref = dfa->nbackref + 1;\n      dfa->field_0x58 = dfa->field_0x58 | 2;\n      goto LAB_0003093e;\n    }" { (expression_statement "dfa->nbackref = dfa->nbackref + 1;" (assignment_expression "dfa->nbackref = dfa->nbackref + 1" (field_expression "dfa->nbackref" identifier -> field_identifier) = (binary_expression "dfa->nbackref + 1" (field_expression "dfa->nbackref" identifier -> field_identifier) + number_literal)) ;) (expression_statement "dfa->field_0x58 = dfa->field_0x58 | 2;" (assignment_expression "dfa->field_0x58 = dfa->field_0x58 | 2" (field_expression "dfa->field_0x58" identifier -> field_identifier) = (binary_expression "dfa->field_0x58 | 2" (field_expression "dfa->field_0x58" identifier -> field_identifier) | number_literal)) ;) (goto_statement "goto LAB_0003093e;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case '\x05':\n    local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                 (bin_tree_t *)&dfa->str_tree_storage_idx,(bin_tree_t *)0x0,\n                                 (re_token_t *)0x0,(re_dfa_t *)token);\n    if (local_b0 == (bin_tree_t *)0x0) break;\n    if (1 < dfa->mb_cur_max) {\n      dfa->field_0x58 = dfa->field_0x58 | 2;\n    }\n    goto LAB_0003093e;" case (char_literal "'\x05'" ' escape_sequence ') : (expression_statement "local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                 (bin_tree_t *)&dfa->str_tree_storage_idx,(bin_tree_t *)0x0,\n                                 (re_token_t *)0x0,(re_dfa_t *)token);" (assignment_expression "local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                 (bin_tree_t *)&dfa->str_tree_storage_idx,(bin_tree_t *)0x0,\n                                 (re_token_t *)0x0,(re_dfa_t *)token)" identifier = (call_expression "create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                 (bin_tree_t *)&dfa->str_tree_storage_idx,(bin_tree_t *)0x0,\n                                 (re_token_t *)0x0,(re_dfa_t *)token)" identifier (argument_list "((re_dfa_t *)&dfa->str_tree_storage,\n                                 (bin_tree_t *)&dfa->str_tree_storage_idx,(bin_tree_t *)0x0,\n                                 (re_token_t *)0x0,(re_dfa_t *)token)" ( (cast_expression "(re_dfa_t *)&dfa->str_tree_storage" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&dfa->str_tree_storage" & (field_expression "dfa->str_tree_storage" identifier -> field_identifier))) , (cast_expression "(bin_tree_t *)&dfa->str_tree_storage_idx" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&dfa->str_tree_storage_idx" & (field_expression "dfa->str_tree_storage_idx" identifier -> field_identifier))) , (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(re_token_t *)0x0" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(re_dfa_t *)token" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (local_b0 == (bin_tree_t *)0x0) break;" if (parenthesized_expression "(local_b0 == (bin_tree_t *)0x0)" ( (binary_expression "local_b0 == (bin_tree_t *)0x0" identifier == (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (if_statement "if (1 < dfa->mb_cur_max) {\n      dfa->field_0x58 = dfa->field_0x58 | 2;\n    }" if (parenthesized_expression "(1 < dfa->mb_cur_max)" ( (binary_expression "1 < dfa->mb_cur_max" number_literal < (field_expression "dfa->mb_cur_max" identifier -> field_identifier)) )) (compound_statement "{\n      dfa->field_0x58 = dfa->field_0x58 | 2;\n    }" { (expression_statement "dfa->field_0x58 = dfa->field_0x58 | 2;" (assignment_expression "dfa->field_0x58 = dfa->field_0x58 | 2" (field_expression "dfa->field_0x58" identifier -> field_identifier) = (binary_expression "dfa->field_0x58 | 2" (field_expression "dfa->field_0x58" identifier -> field_identifier) | number_literal)) ;) })) (goto_statement "goto LAB_0003093e;" goto statement_identifier ;)) (case_statement "case '\b':\n    rVar5 = preg->re_nsub;\n    pbVar12 = (bin_tree_t *)0x0;\n    preg->re_nsub = rVar5 + 1;\n    IVar26 = 0x30fbf;\n    iVar10 = peek_token(token,regexp,syntax | 0x800000);\n    regexp->cur_idx = regexp->cur_idx + iVar10;\n    if (token->field_0x4 == '\t') {\nLAB_00030fd0:\n      if (rVar5 < WORD_LAST) {\n        dfa->completed_bkref_map = dfa->completed_bkref_map | 1 << ((byte)rVar5 & 0x1f);\n      }\n      t._4_1_ = 0x11;\n      local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                   (bin_tree_t *)&dfa->str_tree_storage_idx,pbVar12,\n                                   (re_token_t *)0x0,(re_dfa_t *)&t);\n      if (local_b0 != (bin_tree_t *)0x0) {\n        (local_b0->token).opr.ctx_type = rVar5;\n        goto LAB_0003093e;\n      }\n      break;\n    }\n    pbVar12 = parse_reg_exp(regexp,(regex_t *)syntax,(re_token_t *)(nest + 1),(reg_syntax_t)err,\n                            IVar26,in_stack_ffffff34);\n    if (*err == _REG_NOERROR) {\n      if (token->field_0x4 == '\t') goto LAB_00030fd0;\n      if (pbVar12 != (bin_tree_t *)0x0) {\n        postorder(pbVar12,free_tree,(void *)0x0);\n      }\n      *err = _REG_EPAREN;\n    }\n    goto _L3134;" case (char_literal "'\b'" ' escape_sequence ') : (expression_statement "rVar5 = preg->re_nsub;" (assignment_expression "rVar5 = preg->re_nsub" identifier = (field_expression "preg->re_nsub" identifier -> field_identifier)) ;) (expression_statement "pbVar12 = (bin_tree_t *)0x0;" (assignment_expression "pbVar12 = (bin_tree_t *)0x0" identifier = (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "preg->re_nsub = rVar5 + 1;" (assignment_expression "preg->re_nsub = rVar5 + 1" (field_expression "preg->re_nsub" identifier -> field_identifier) = (binary_expression "rVar5 + 1" identifier + number_literal)) ;) (expression_statement "IVar26 = 0x30fbf;" (assignment_expression "IVar26 = 0x30fbf" identifier = number_literal) ;) (expression_statement "iVar10 = peek_token(token,regexp,syntax | 0x800000);" (assignment_expression "iVar10 = peek_token(token,regexp,syntax | 0x800000)" identifier = (call_expression "peek_token(token,regexp,syntax | 0x800000)" identifier (argument_list "(token,regexp,syntax | 0x800000)" ( identifier , identifier , (binary_expression "syntax | 0x800000" identifier | number_literal) )))) ;) (expression_statement "regexp->cur_idx = regexp->cur_idx + iVar10;" (assignment_expression "regexp->cur_idx = regexp->cur_idx + iVar10" (field_expression "regexp->cur_idx" identifier -> field_identifier) = (binary_expression "regexp->cur_idx + iVar10" (field_expression "regexp->cur_idx" identifier -> field_identifier) + identifier)) ;) (if_statement "if (token->field_0x4 == '\t') {\nLAB_00030fd0:\n      if (rVar5 < WORD_LAST) {\n        dfa->completed_bkref_map = dfa->completed_bkref_map | 1 << ((byte)rVar5 & 0x1f);\n      }\n      t._4_1_ = 0x11;\n      local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                   (bin_tree_t *)&dfa->str_tree_storage_idx,pbVar12,\n                                   (re_token_t *)0x0,(re_dfa_t *)&t);\n      if (local_b0 != (bin_tree_t *)0x0) {\n        (local_b0->token).opr.ctx_type = rVar5;\n        goto LAB_0003093e;\n      }\n      break;\n    }" if (parenthesized_expression "(token->field_0x4 == '\t')" ( (binary_expression "token->field_0x4 == '\t'" (field_expression "token->field_0x4" identifier -> field_identifier) == (char_literal "'\t'" ' escape_sequence ')) )) (compound_statement "{\nLAB_00030fd0:\n      if (rVar5 < WORD_LAST) {\n        dfa->completed_bkref_map = dfa->completed_bkref_map | 1 << ((byte)rVar5 & 0x1f);\n      }\n      t._4_1_ = 0x11;\n      local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                   (bin_tree_t *)&dfa->str_tree_storage_idx,pbVar12,\n                                   (re_token_t *)0x0,(re_dfa_t *)&t);\n      if (local_b0 != (bin_tree_t *)0x0) {\n        (local_b0->token).opr.ctx_type = rVar5;\n        goto LAB_0003093e;\n      }\n      break;\n    }" { (labeled_statement "LAB_00030fd0:\n      if (rVar5 < WORD_LAST) {\n        dfa->completed_bkref_map = dfa->completed_bkref_map | 1 << ((byte)rVar5 & 0x1f);\n      }" statement_identifier : (if_statement "if (rVar5 < WORD_LAST) {\n        dfa->completed_bkref_map = dfa->completed_bkref_map | 1 << ((byte)rVar5 & 0x1f);\n      }" if (parenthesized_expression "(rVar5 < WORD_LAST)" ( (binary_expression "rVar5 < WORD_LAST" identifier < identifier) )) (compound_statement "{\n        dfa->completed_bkref_map = dfa->completed_bkref_map | 1 << ((byte)rVar5 & 0x1f);\n      }" { (expression_statement "dfa->completed_bkref_map = dfa->completed_bkref_map | 1 << ((byte)rVar5 & 0x1f);" (assignment_expression "dfa->completed_bkref_map = dfa->completed_bkref_map | 1 << ((byte)rVar5 & 0x1f)" (field_expression "dfa->completed_bkref_map" identifier -> field_identifier) = (binary_expression "dfa->completed_bkref_map | 1 << ((byte)rVar5 & 0x1f)" (field_expression "dfa->completed_bkref_map" identifier -> field_identifier) | (binary_expression "1 << ((byte)rVar5 & 0x1f)" number_literal << (parenthesized_expression "((byte)rVar5 & 0x1f)" ( (binary_expression "(byte)rVar5 & 0x1f" (cast_expression "(byte)rVar5" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))))) ;) }))) (expression_statement "t._4_1_ = 0x11;" (assignment_expression "t._4_1_ = 0x11" (field_expression "t._4_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                   (bin_tree_t *)&dfa->str_tree_storage_idx,pbVar12,\n                                   (re_token_t *)0x0,(re_dfa_t *)&t);" (assignment_expression "local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                   (bin_tree_t *)&dfa->str_tree_storage_idx,pbVar12,\n                                   (re_token_t *)0x0,(re_dfa_t *)&t)" identifier = (call_expression "create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                   (bin_tree_t *)&dfa->str_tree_storage_idx,pbVar12,\n                                   (re_token_t *)0x0,(re_dfa_t *)&t)" identifier (argument_list "((re_dfa_t *)&dfa->str_tree_storage,\n                                   (bin_tree_t *)&dfa->str_tree_storage_idx,pbVar12,\n                                   (re_token_t *)0x0,(re_dfa_t *)&t)" ( (cast_expression "(re_dfa_t *)&dfa->str_tree_storage" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&dfa->str_tree_storage" & (field_expression "dfa->str_tree_storage" identifier -> field_identifier))) , (cast_expression "(bin_tree_t *)&dfa->str_tree_storage_idx" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&dfa->str_tree_storage_idx" & (field_expression "dfa->str_tree_storage_idx" identifier -> field_identifier))) , identifier , (cast_expression "(re_token_t *)0x0" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(re_dfa_t *)&t" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&t" & identifier)) )))) ;) (if_statement "if (local_b0 != (bin_tree_t *)0x0) {\n        (local_b0->token).opr.ctx_type = rVar5;\n        goto LAB_0003093e;\n      }" if (parenthesized_expression "(local_b0 != (bin_tree_t *)0x0)" ( (binary_expression "local_b0 != (bin_tree_t *)0x0" identifier != (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (local_b0->token).opr.ctx_type = rVar5;\n        goto LAB_0003093e;\n      }" { (expression_statement "(local_b0->token).opr.ctx_type = rVar5;" (assignment_expression "(local_b0->token).opr.ctx_type = rVar5" (field_expression "(local_b0->token).opr.ctx_type" (field_expression "(local_b0->token).opr" (parenthesized_expression "(local_b0->token)" ( (field_expression "local_b0->token" identifier -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) (goto_statement "goto LAB_0003093e;" goto statement_identifier ;) })) (break_statement "break;" break ;) })) (expression_statement "pbVar12 = parse_reg_exp(regexp,(regex_t *)syntax,(re_token_t *)(nest + 1),(reg_syntax_t)err,\n                            IVar26,in_stack_ffffff34);" (assignment_expression "pbVar12 = parse_reg_exp(regexp,(regex_t *)syntax,(re_token_t *)(nest + 1),(reg_syntax_t)err,\n                            IVar26,in_stack_ffffff34)" identifier = (call_expression "parse_reg_exp(regexp,(regex_t *)syntax,(re_token_t *)(nest + 1),(reg_syntax_t)err,\n                            IVar26,in_stack_ffffff34)" identifier (argument_list "(regexp,(regex_t *)syntax,(re_token_t *)(nest + 1),(reg_syntax_t)err,\n                            IVar26,in_stack_ffffff34)" ( identifier , (cast_expression "(regex_t *)syntax" ( (type_descriptor "regex_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(re_token_t *)(nest + 1)" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(nest + 1)" ( (binary_expression "nest + 1" identifier + number_literal) ))) , (cast_expression "(reg_syntax_t)err" ( (type_descriptor "reg_syntax_t" type_identifier) ) identifier) , identifier , identifier )))) ;) (if_statement "if (*err == _REG_NOERROR) {\n      if (token->field_0x4 == '\t') goto LAB_00030fd0;\n      if (pbVar12 != (bin_tree_t *)0x0) {\n        postorder(pbVar12,free_tree,(void *)0x0);\n      }\n      *err = _REG_EPAREN;\n    }" if (parenthesized_expression "(*err == _REG_NOERROR)" ( (binary_expression "*err == _REG_NOERROR" (pointer_expression "*err" * identifier) == identifier) )) (compound_statement "{\n      if (token->field_0x4 == '\t') goto LAB_00030fd0;\n      if (pbVar12 != (bin_tree_t *)0x0) {\n        postorder(pbVar12,free_tree,(void *)0x0);\n      }\n      *err = _REG_EPAREN;\n    }" { (if_statement "if (token->field_0x4 == '\t') goto LAB_00030fd0;" if (parenthesized_expression "(token->field_0x4 == '\t')" ( (binary_expression "token->field_0x4 == '\t'" (field_expression "token->field_0x4" identifier -> field_identifier) == (char_literal "'\t'" ' escape_sequence ')) )) (goto_statement "goto LAB_00030fd0;" goto statement_identifier ;)) (if_statement "if (pbVar12 != (bin_tree_t *)0x0) {\n        postorder(pbVar12,free_tree,(void *)0x0);\n      }" if (parenthesized_expression "(pbVar12 != (bin_tree_t *)0x0)" ( (binary_expression "pbVar12 != (bin_tree_t *)0x0" identifier != (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        postorder(pbVar12,free_tree,(void *)0x0);\n      }" { (expression_statement "postorder(pbVar12,free_tree,(void *)0x0);" (call_expression "postorder(pbVar12,free_tree,(void *)0x0)" identifier (argument_list "(pbVar12,free_tree,(void *)0x0)" ( identifier , identifier , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) })) (expression_statement "*err = _REG_EPAREN;" (assignment_expression "*err = _REG_EPAREN" (pointer_expression "*err" * identifier) = identifier) ;) })) (goto_statement "goto _L3134;" goto statement_identifier ;)) (case_statement "case '\t':\n_L3123:\n    if ((syntax & 0x20000) == 0) {\n      local_b0 = (bin_tree_t *)0x0;\n      *err = _REG_ERPAREN;\n      goto LAB_00030965;\n    }" case (char_literal "'\t'" ' escape_sequence ') : (labeled_statement "_L3123:\n    if ((syntax & 0x20000) == 0) {\n      local_b0 = (bin_tree_t *)0x0;\n      *err = _REG_ERPAREN;\n      goto LAB_00030965;\n    }" statement_identifier : (if_statement "if ((syntax & 0x20000) == 0) {\n      local_b0 = (bin_tree_t *)0x0;\n      *err = _REG_ERPAREN;\n      goto LAB_00030965;\n    }" if (parenthesized_expression "((syntax & 0x20000) == 0)" ( (binary_expression "(syntax & 0x20000) == 0" (parenthesized_expression "(syntax & 0x20000)" ( (binary_expression "syntax & 0x20000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      local_b0 = (bin_tree_t *)0x0;\n      *err = _REG_ERPAREN;\n      goto LAB_00030965;\n    }" { (expression_statement "local_b0 = (bin_tree_t *)0x0;" (assignment_expression "local_b0 = (bin_tree_t *)0x0" identifier = (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*err = _REG_ERPAREN;" (assignment_expression "*err = _REG_ERPAREN" (pointer_expression "*err" * identifier) = identifier) ;) (goto_statement "goto LAB_00030965;" goto statement_identifier ;) })))) (case_statement "case '\x18':\n_L3118:\n    token->field_0x4 = 1;\n    local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                 (bin_tree_t *)&dfa->str_tree_storage_idx,(bin_tree_t *)0x0,\n                                 (re_token_t *)0x0,(re_dfa_t *)token);\n    if (local_b0 != (bin_tree_t *)0x0) {\nLAB_0003093e:\n      iVar10 = peek_token(token,regexp,syntax);\n      regexp->cur_idx = regexp->cur_idx + iVar10;\n      uVar23 = (uint)(byte)token->field_0x4;\n      do {\n        bVar25 = (byte)uVar23;\n        if ((0x17 < bVar25) || ((0x8c0800U >> (uVar23 & 0x1f) & 1) == 0)) goto LAB_00030965;\n        IVar26 = regexp->cur_idx;\n        aVar13 = token->opr;\n        uVar4 = *(undefined4 *)&token->field_0x4;\n        local_a4 = local_b0;\n        pbVar12 = local_b0;\n        if (bVar25 == 0x17) {\n          uVar23 = fetch_number(regexp,token,syntax);\n          if (uVar23 == 0xffffffff) {\n            if ((token->field_0x4 == '\x01') && ((token->opr).c == ',')) {\n              uVar23 = 0;\nLAB_00030d4d:\n              local_c0 = (bin_tree_t *)fetch_number(regexp,token,syntax);\n              if (local_c0 == (bin_tree_t *)0xfffffffe) goto LAB_00030cd8;\n              if (((local_c0 == (bin_tree_t *)0xffffffff) || ((int)uVar23 <= (int)local_c0)) &&\n                 (token->field_0x4 == '\x18')) {\n                pbVar11 = (bin_tree_t *)uVar23;\n                if (local_c0 != (bin_tree_t *)0xffffffff) goto LAB_00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\nLAB_00030e40:\n            *err = _REG_BADBR;\n          }\n          else {\n            if (uVar23 != 0xfffffffe) {\n              local_c0 = (bin_tree_t *)uVar23;\n              if (token->field_0x4 != '\x18') {\n                if (token->field_0x4 != '\x01') goto LAB_00030cd8;\n                if ((token->opr).c == ',') goto LAB_00030d4d;\n                if ((syntax & 0x200000) == 0) goto LAB_00030e40;\n                goto LAB_00030ce9;\n              }\nLAB_00030dfc:\n              pbVar11 = local_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)pbVar11) {\n                *err = _REG_ESIZE;\n                goto LAB_00030e4a;\n              }\n              iVar10 = peek_token(token,regexp,syntax);\n              regexp->cur_idx = regexp->cur_idx + iVar10;\n              if (local_b0 == (bin_tree_t *)0x0) goto LAB_00030d10;\n              if (local_c0 != (bin_tree_t *)0x0 || uVar23 != 0) {\n                if ((int)uVar23 < 1) {\n                  local_a4 = (bin_tree_t *)0x0;\n                  goto LAB_00030eb9;\n                }\n                if (uVar23 != 1) {\n                  iVar10 = 2;\n                  do {\n                    pbVar12 = duplicate_tree(pbVar12,dfa);\n                    t._4_1_ = 0x10;\n                    local_a4 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,local_a4,\n                                                 (re_token_t *)pbVar12,(re_dfa_t *)&t);\n                    if ((pbVar12 == (bin_tree_t *)0x0) || (local_a4 == (bin_tree_t *)0x0))\n                    goto LAB_00030be0;\n                    iVar10 = iVar10 + 1;\n                  } while (iVar10 <= (int)uVar23);\n                }\n                pbVar11 = local_a4;\n                if (local_c0 != (bin_tree_t *)uVar23) goto LAB_00030e9c;\n                goto LAB_00030b08;\n              }\n              postorder(local_b0,free_tree,(void *)0x0);\n              if (*err == _REG_NOERROR) goto LAB_00030d1e;\n              goto LAB_00030bea;\n            }\nLAB_00030cd8:\n            if ((syntax & 0x200000) == 0) {\n              if (token->field_0x4 != '\x02') goto LAB_00030e40;\n              *err = _REG_EBRACE;\n              goto LAB_00030e4a;\n            }\nLAB_00030ce9:\n            regexp->cur_idx = IVar26;\n            token->opr = aVar13;\n            *(undefined4 *)&token->field_0x4 = uVar4;\n            token->field_0x4 = 1;\n            pbVar11 = local_b0;\nLAB_00030af2:\n            if ((*err == _REG_NOERROR) || (pbVar11 != (bin_tree_t *)0x0)) goto LAB_00030b08;\n          }\nLAB_00030e4a:\n          if (local_b0 == (bin_tree_t *)0x0) goto _L3134;\nLAB_00030bea:\n          postorder(local_b0,free_tree,(void *)0x0);\n          local_b0 = (bin_tree_t *)0x0;\n          goto LAB_00030965;\n        }\n        uVar23 = (uint)(bVar25 == 0x12);\n        if (bVar25 == 0x13) {\n          iVar10 = peek_token(token,regexp,syntax);\n          regexp->cur_idx = regexp->cur_idx + iVar10;\n          if (local_b0 == (bin_tree_t *)0x0) goto LAB_00030d10;\n          if ((local_b0->token).field_0x4 == '\x11') {\n            local_c0 = (bin_tree_t *)0x1;\n            local_a4 = (bin_tree_t *)0x0;\n            goto LAB_00030c76;\n          }\n          local_c0 = (bin_tree_t *)0x1;\n          t._4_1_ = 10;\n          local_a4 = (bin_tree_t *)0x0;\nLAB_00030a18:\n          ppbVar1 = &dfa->str_tree_storage;\n          piVar2 = &dfa->str_tree_storage_idx;\n          pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar12,\n                                      (re_token_t *)0x0,(re_dfa_t *)&t);\n          if (pbVar11 == (bin_tree_t *)0x0) {\nLAB_00030be0:\n            *err = _REG_ESPACE;\n            goto LAB_00030bea;\n          }\n          for (iVar10 = uVar23 + 2; iVar10 <= (int)local_c0; iVar10 = iVar10 + 1) {\n            pbVar12 = duplicate_tree(pbVar12,dfa);\n            t._4_1_ = 0x10;\n            pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar11,\n                                        (re_token_t *)pbVar12,(re_dfa_t *)&t);\n            if ((pbVar12 == (bin_tree_t *)0x0) || (pbVar11 == (bin_tree_t *)0x0)) goto LAB_00030be0;\n            t._4_1_ = 10;\n            pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar11,\n                                        (re_token_t *)0x0,(re_dfa_t *)&t);\n            if (pbVar11 == (bin_tree_t *)0x0) goto LAB_00030be0;\n          }\n          if (local_a4 != (bin_tree_t *)0x0) {\n            t._4_1_ = 0x10;\n            pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,local_a4,\n                                        (re_token_t *)pbVar11,(re_dfa_t *)&t);\n            goto LAB_00030af2;\n          }\n        }\n        else {\n          iVar10 = peek_token(token,regexp,syntax);\n          regexp->cur_idx = regexp->cur_idx + iVar10;\n          if (local_b0 != (bin_tree_t *)0x0) {\n            if (bVar25 != 0x12) {\n              if ((local_b0->token).field_0x4 == '\x11') {\n                local_c0 = (bin_tree_t *)0xffffffff;\n                uVar23 = 0;\n                local_a4 = (bin_tree_t *)0x0;\nLAB_00030c76:\n                postorder(pbVar12,mark_opt_subexp,(pbVar12->token).opr.sbcset);\n                goto LAB_00030c8a;\n              }\n              local_c0 = (bin_tree_t *)0xffffffff;\n              uVar23 = 0;\n              local_a4 = (bin_tree_t *)0x0;\nLAB_00030a13:\n              t._4_1_ = 0xb;\n              goto LAB_00030a18;\n            }\n            local_c0 = (bin_tree_t *)0xffffffff;\n            uVar23 = 1;\nLAB_00030e9c:\n            pbVar12 = duplicate_tree(pbVar12,dfa);\n            if (pbVar12 != (bin_tree_t *)0x0) {\nLAB_00030eb9:\n              if ((pbVar12->token).field_0x4 == '\x11') goto LAB_00030c76;\nLAB_00030c8a:\n              if (local_c0 != (bin_tree_t *)0xffffffff) {\n                t._4_1_ = 10;\n                goto LAB_00030a18;\n              }\n              goto LAB_00030a13;\n            }\n            goto LAB_00030be0;\n          }\nLAB_00030d10:\n          if (*err != _REG_NOERROR) goto _L3134;\nLAB_00030d1e:\n          local_b0 = (bin_tree_t *)0x0;\n          pbVar11 = local_b0;\n        }\nLAB_00030b08:\n        local_b0 = pbVar11;\n        bVar25 = token->field_0x4;\n        uVar23 = (uint)bVar25;\n      } while (((syntax & 0x1000000) == 0) || ((bVar25 != 0xb && (bVar25 != 0x17))));\n      if (local_b0 != (bin_tree_t *)0x0) {\n        postorder(local_b0,free_tree,(void *)0x0);\n      }\n      goto LAB_00030b48;\n    }\n    break;" case (char_literal "'\x18'" ' escape_sequence ') : (labeled_statement "_L3118:\n    token->field_0x4 = 1;" statement_identifier : (expression_statement "token->field_0x4 = 1;" (assignment_expression "token->field_0x4 = 1" (field_expression "token->field_0x4" identifier -> field_identifier) = number_literal) ;)) (expression_statement "local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                 (bin_tree_t *)&dfa->str_tree_storage_idx,(bin_tree_t *)0x0,\n                                 (re_token_t *)0x0,(re_dfa_t *)token);" (assignment_expression "local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                 (bin_tree_t *)&dfa->str_tree_storage_idx,(bin_tree_t *)0x0,\n                                 (re_token_t *)0x0,(re_dfa_t *)token)" identifier = (call_expression "create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                 (bin_tree_t *)&dfa->str_tree_storage_idx,(bin_tree_t *)0x0,\n                                 (re_token_t *)0x0,(re_dfa_t *)token)" identifier (argument_list "((re_dfa_t *)&dfa->str_tree_storage,\n                                 (bin_tree_t *)&dfa->str_tree_storage_idx,(bin_tree_t *)0x0,\n                                 (re_token_t *)0x0,(re_dfa_t *)token)" ( (cast_expression "(re_dfa_t *)&dfa->str_tree_storage" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&dfa->str_tree_storage" & (field_expression "dfa->str_tree_storage" identifier -> field_identifier))) , (cast_expression "(bin_tree_t *)&dfa->str_tree_storage_idx" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&dfa->str_tree_storage_idx" & (field_expression "dfa->str_tree_storage_idx" identifier -> field_identifier))) , (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(re_token_t *)0x0" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(re_dfa_t *)token" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (local_b0 != (bin_tree_t *)0x0) {\nLAB_0003093e:\n      iVar10 = peek_token(token,regexp,syntax);\n      regexp->cur_idx = regexp->cur_idx + iVar10;\n      uVar23 = (uint)(byte)token->field_0x4;\n      do {\n        bVar25 = (byte)uVar23;\n        if ((0x17 < bVar25) || ((0x8c0800U >> (uVar23 & 0x1f) & 1) == 0)) goto LAB_00030965;\n        IVar26 = regexp->cur_idx;\n        aVar13 = token->opr;\n        uVar4 = *(undefined4 *)&token->field_0x4;\n        local_a4 = local_b0;\n        pbVar12 = local_b0;\n        if (bVar25 == 0x17) {\n          uVar23 = fetch_number(regexp,token,syntax);\n          if (uVar23 == 0xffffffff) {\n            if ((token->field_0x4 == '\x01') && ((token->opr).c == ',')) {\n              uVar23 = 0;\nLAB_00030d4d:\n              local_c0 = (bin_tree_t *)fetch_number(regexp,token,syntax);\n              if (local_c0 == (bin_tree_t *)0xfffffffe) goto LAB_00030cd8;\n              if (((local_c0 == (bin_tree_t *)0xffffffff) || ((int)uVar23 <= (int)local_c0)) &&\n                 (token->field_0x4 == '\x18')) {\n                pbVar11 = (bin_tree_t *)uVar23;\n                if (local_c0 != (bin_tree_t *)0xffffffff) goto LAB_00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\nLAB_00030e40:\n            *err = _REG_BADBR;\n          }\n          else {\n            if (uVar23 != 0xfffffffe) {\n              local_c0 = (bin_tree_t *)uVar23;\n              if (token->field_0x4 != '\x18') {\n                if (token->field_0x4 != '\x01') goto LAB_00030cd8;\n                if ((token->opr).c == ',') goto LAB_00030d4d;\n                if ((syntax & 0x200000) == 0) goto LAB_00030e40;\n                goto LAB_00030ce9;\n              }\nLAB_00030dfc:\n              pbVar11 = local_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)pbVar11) {\n                *err = _REG_ESIZE;\n                goto LAB_00030e4a;\n              }\n              iVar10 = peek_token(token,regexp,syntax);\n              regexp->cur_idx = regexp->cur_idx + iVar10;\n              if (local_b0 == (bin_tree_t *)0x0) goto LAB_00030d10;\n              if (local_c0 != (bin_tree_t *)0x0 || uVar23 != 0) {\n                if ((int)uVar23 < 1) {\n                  local_a4 = (bin_tree_t *)0x0;\n                  goto LAB_00030eb9;\n                }\n                if (uVar23 != 1) {\n                  iVar10 = 2;\n                  do {\n                    pbVar12 = duplicate_tree(pbVar12,dfa);\n                    t._4_1_ = 0x10;\n                    local_a4 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,local_a4,\n                                                 (re_token_t *)pbVar12,(re_dfa_t *)&t);\n                    if ((pbVar12 == (bin_tree_t *)0x0) || (local_a4 == (bin_tree_t *)0x0))\n                    goto LAB_00030be0;\n                    iVar10 = iVar10 + 1;\n                  } while (iVar10 <= (int)uVar23);\n                }\n                pbVar11 = local_a4;\n                if (local_c0 != (bin_tree_t *)uVar23) goto LAB_00030e9c;\n                goto LAB_00030b08;\n              }\n              postorder(local_b0,free_tree,(void *)0x0);\n              if (*err == _REG_NOERROR) goto LAB_00030d1e;\n              goto LAB_00030bea;\n            }\nLAB_00030cd8:\n            if ((syntax & 0x200000) == 0) {\n              if (token->field_0x4 != '\x02') goto LAB_00030e40;\n              *err = _REG_EBRACE;\n              goto LAB_00030e4a;\n            }\nLAB_00030ce9:\n            regexp->cur_idx = IVar26;\n            token->opr = aVar13;\n            *(undefined4 *)&token->field_0x4 = uVar4;\n            token->field_0x4 = 1;\n            pbVar11 = local_b0;\nLAB_00030af2:\n            if ((*err == _REG_NOERROR) || (pbVar11 != (bin_tree_t *)0x0)) goto LAB_00030b08;\n          }\nLAB_00030e4a:\n          if (local_b0 == (bin_tree_t *)0x0) goto _L3134;\nLAB_00030bea:\n          postorder(local_b0,free_tree,(void *)0x0);\n          local_b0 = (bin_tree_t *)0x0;\n          goto LAB_00030965;\n        }\n        uVar23 = (uint)(bVar25 == 0x12);\n        if (bVar25 == 0x13) {\n          iVar10 = peek_token(token,regexp,syntax);\n          regexp->cur_idx = regexp->cur_idx + iVar10;\n          if (local_b0 == (bin_tree_t *)0x0) goto LAB_00030d10;\n          if ((local_b0->token).field_0x4 == '\x11') {\n            local_c0 = (bin_tree_t *)0x1;\n            local_a4 = (bin_tree_t *)0x0;\n            goto LAB_00030c76;\n          }\n          local_c0 = (bin_tree_t *)0x1;\n          t._4_1_ = 10;\n          local_a4 = (bin_tree_t *)0x0;\nLAB_00030a18:\n          ppbVar1 = &dfa->str_tree_storage;\n          piVar2 = &dfa->str_tree_storage_idx;\n          pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar12,\n                                      (re_token_t *)0x0,(re_dfa_t *)&t);\n          if (pbVar11 == (bin_tree_t *)0x0) {\nLAB_00030be0:\n            *err = _REG_ESPACE;\n            goto LAB_00030bea;\n          }\n          for (iVar10 = uVar23 + 2; iVar10 <= (int)local_c0; iVar10 = iVar10 + 1) {\n            pbVar12 = duplicate_tree(pbVar12,dfa);\n            t._4_1_ = 0x10;\n            pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar11,\n                                        (re_token_t *)pbVar12,(re_dfa_t *)&t);\n            if ((pbVar12 == (bin_tree_t *)0x0) || (pbVar11 == (bin_tree_t *)0x0)) goto LAB_00030be0;\n            t._4_1_ = 10;\n            pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar11,\n                                        (re_token_t *)0x0,(re_dfa_t *)&t);\n            if (pbVar11 == (bin_tree_t *)0x0) goto LAB_00030be0;\n          }\n          if (local_a4 != (bin_tree_t *)0x0) {\n            t._4_1_ = 0x10;\n            pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,local_a4,\n                                        (re_token_t *)pbVar11,(re_dfa_t *)&t);\n            goto LAB_00030af2;\n          }\n        }\n        else {\n          iVar10 = peek_token(token,regexp,syntax);\n          regexp->cur_idx = regexp->cur_idx + iVar10;\n          if (local_b0 != (bin_tree_t *)0x0) {\n            if (bVar25 != 0x12) {\n              if ((local_b0->token).field_0x4 == '\x11') {\n                local_c0 = (bin_tree_t *)0xffffffff;\n                uVar23 = 0;\n                local_a4 = (bin_tree_t *)0x0;\nLAB_00030c76:\n                postorder(pbVar12,mark_opt_subexp,(pbVar12->token).opr.sbcset);\n                goto LAB_00030c8a;\n              }\n              local_c0 = (bin_tree_t *)0xffffffff;\n              uVar23 = 0;\n              local_a4 = (bin_tree_t *)0x0;\nLAB_00030a13:\n              t._4_1_ = 0xb;\n              goto LAB_00030a18;\n            }\n            local_c0 = (bin_tree_t *)0xffffffff;\n            uVar23 = 1;\nLAB_00030e9c:\n            pbVar12 = duplicate_tree(pbVar12,dfa);\n            if (pbVar12 != (bin_tree_t *)0x0) {\nLAB_00030eb9:\n              if ((pbVar12->token).field_0x4 == '\x11') goto LAB_00030c76;\nLAB_00030c8a:\n              if (local_c0 != (bin_tree_t *)0xffffffff) {\n                t._4_1_ = 10;\n                goto LAB_00030a18;\n              }\n              goto LAB_00030a13;\n            }\n            goto LAB_00030be0;\n          }\nLAB_00030d10:\n          if (*err != _REG_NOERROR) goto _L3134;\nLAB_00030d1e:\n          local_b0 = (bin_tree_t *)0x0;\n          pbVar11 = local_b0;\n        }\nLAB_00030b08:\n        local_b0 = pbVar11;\n        bVar25 = token->field_0x4;\n        uVar23 = (uint)bVar25;\n      } while (((syntax & 0x1000000) == 0) || ((bVar25 != 0xb && (bVar25 != 0x17))));\n      if (local_b0 != (bin_tree_t *)0x0) {\n        postorder(local_b0,free_tree,(void *)0x0);\n      }\n      goto LAB_00030b48;\n    }" if (parenthesized_expression "(local_b0 != (bin_tree_t *)0x0)" ( (binary_expression "local_b0 != (bin_tree_t *)0x0" identifier != (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0003093e:\n      iVar10 = peek_token(token,regexp,syntax);\n      regexp->cur_idx = regexp->cur_idx + iVar10;\n      uVar23 = (uint)(byte)token->field_0x4;\n      do {\n        bVar25 = (byte)uVar23;\n        if ((0x17 < bVar25) || ((0x8c0800U >> (uVar23 & 0x1f) & 1) == 0)) goto LAB_00030965;\n        IVar26 = regexp->cur_idx;\n        aVar13 = token->opr;\n        uVar4 = *(undefined4 *)&token->field_0x4;\n        local_a4 = local_b0;\n        pbVar12 = local_b0;\n        if (bVar25 == 0x17) {\n          uVar23 = fetch_number(regexp,token,syntax);\n          if (uVar23 == 0xffffffff) {\n            if ((token->field_0x4 == '\x01') && ((token->opr).c == ',')) {\n              uVar23 = 0;\nLAB_00030d4d:\n              local_c0 = (bin_tree_t *)fetch_number(regexp,token,syntax);\n              if (local_c0 == (bin_tree_t *)0xfffffffe) goto LAB_00030cd8;\n              if (((local_c0 == (bin_tree_t *)0xffffffff) || ((int)uVar23 <= (int)local_c0)) &&\n                 (token->field_0x4 == '\x18')) {\n                pbVar11 = (bin_tree_t *)uVar23;\n                if (local_c0 != (bin_tree_t *)0xffffffff) goto LAB_00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\nLAB_00030e40:\n            *err = _REG_BADBR;\n          }\n          else {\n            if (uVar23 != 0xfffffffe) {\n              local_c0 = (bin_tree_t *)uVar23;\n              if (token->field_0x4 != '\x18') {\n                if (token->field_0x4 != '\x01') goto LAB_00030cd8;\n                if ((token->opr).c == ',') goto LAB_00030d4d;\n                if ((syntax & 0x200000) == 0) goto LAB_00030e40;\n                goto LAB_00030ce9;\n              }\nLAB_00030dfc:\n              pbVar11 = local_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)pbVar11) {\n                *err = _REG_ESIZE;\n                goto LAB_00030e4a;\n              }\n              iVar10 = peek_token(token,regexp,syntax);\n              regexp->cur_idx = regexp->cur_idx + iVar10;\n              if (local_b0 == (bin_tree_t *)0x0) goto LAB_00030d10;\n              if (local_c0 != (bin_tree_t *)0x0 || uVar23 != 0) {\n                if ((int)uVar23 < 1) {\n                  local_a4 = (bin_tree_t *)0x0;\n                  goto LAB_00030eb9;\n                }\n                if (uVar23 != 1) {\n                  iVar10 = 2;\n                  do {\n                    pbVar12 = duplicate_tree(pbVar12,dfa);\n                    t._4_1_ = 0x10;\n                    local_a4 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,local_a4,\n                                                 (re_token_t *)pbVar12,(re_dfa_t *)&t);\n                    if ((pbVar12 == (bin_tree_t *)0x0) || (local_a4 == (bin_tree_t *)0x0))\n                    goto LAB_00030be0;\n                    iVar10 = iVar10 + 1;\n                  } while (iVar10 <= (int)uVar23);\n                }\n                pbVar11 = local_a4;\n                if (local_c0 != (bin_tree_t *)uVar23) goto LAB_00030e9c;\n                goto LAB_00030b08;\n              }\n              postorder(local_b0,free_tree,(void *)0x0);\n              if (*err == _REG_NOERROR) goto LAB_00030d1e;\n              goto LAB_00030bea;\n            }\nLAB_00030cd8:\n            if ((syntax & 0x200000) == 0) {\n              if (token->field_0x4 != '\x02') goto LAB_00030e40;\n              *err = _REG_EBRACE;\n              goto LAB_00030e4a;\n            }\nLAB_00030ce9:\n            regexp->cur_idx = IVar26;\n            token->opr = aVar13;\n            *(undefined4 *)&token->field_0x4 = uVar4;\n            token->field_0x4 = 1;\n            pbVar11 = local_b0;\nLAB_00030af2:\n            if ((*err == _REG_NOERROR) || (pbVar11 != (bin_tree_t *)0x0)) goto LAB_00030b08;\n          }\nLAB_00030e4a:\n          if (local_b0 == (bin_tree_t *)0x0) goto _L3134;\nLAB_00030bea:\n          postorder(local_b0,free_tree,(void *)0x0);\n          local_b0 = (bin_tree_t *)0x0;\n          goto LAB_00030965;\n        }\n        uVar23 = (uint)(bVar25 == 0x12);\n        if (bVar25 == 0x13) {\n          iVar10 = peek_token(token,regexp,syntax);\n          regexp->cur_idx = regexp->cur_idx + iVar10;\n          if (local_b0 == (bin_tree_t *)0x0) goto LAB_00030d10;\n          if ((local_b0->token).field_0x4 == '\x11') {\n            local_c0 = (bin_tree_t *)0x1;\n            local_a4 = (bin_tree_t *)0x0;\n            goto LAB_00030c76;\n          }\n          local_c0 = (bin_tree_t *)0x1;\n          t._4_1_ = 10;\n          local_a4 = (bin_tree_t *)0x0;\nLAB_00030a18:\n          ppbVar1 = &dfa->str_tree_storage;\n          piVar2 = &dfa->str_tree_storage_idx;\n          pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar12,\n                                      (re_token_t *)0x0,(re_dfa_t *)&t);\n          if (pbVar11 == (bin_tree_t *)0x0) {\nLAB_00030be0:\n            *err = _REG_ESPACE;\n            goto LAB_00030bea;\n          }\n          for (iVar10 = uVar23 + 2; iVar10 <= (int)local_c0; iVar10 = iVar10 + 1) {\n            pbVar12 = duplicate_tree(pbVar12,dfa);\n            t._4_1_ = 0x10;\n            pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar11,\n                                        (re_token_t *)pbVar12,(re_dfa_t *)&t);\n            if ((pbVar12 == (bin_tree_t *)0x0) || (pbVar11 == (bin_tree_t *)0x0)) goto LAB_00030be0;\n            t._4_1_ = 10;\n            pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar11,\n                                        (re_token_t *)0x0,(re_dfa_t *)&t);\n            if (pbVar11 == (bin_tree_t *)0x0) goto LAB_00030be0;\n          }\n          if (local_a4 != (bin_tree_t *)0x0) {\n            t._4_1_ = 0x10;\n            pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,local_a4,\n                                        (re_token_t *)pbVar11,(re_dfa_t *)&t);\n            goto LAB_00030af2;\n          }\n        }\n        else {\n          iVar10 = peek_token(token,regexp,syntax);\n          regexp->cur_idx = regexp->cur_idx + iVar10;\n          if (local_b0 != (bin_tree_t *)0x0) {\n            if (bVar25 != 0x12) {\n              if ((local_b0->token).field_0x4 == '\x11') {\n                local_c0 = (bin_tree_t *)0xffffffff;\n                uVar23 = 0;\n                local_a4 = (bin_tree_t *)0x0;\nLAB_00030c76:\n                postorder(pbVar12,mark_opt_subexp,(pbVar12->token).opr.sbcset);\n                goto LAB_00030c8a;\n              }\n              local_c0 = (bin_tree_t *)0xffffffff;\n              uVar23 = 0;\n              local_a4 = (bin_tree_t *)0x0;\nLAB_00030a13:\n              t._4_1_ = 0xb;\n              goto LAB_00030a18;\n            }\n            local_c0 = (bin_tree_t *)0xffffffff;\n            uVar23 = 1;\nLAB_00030e9c:\n            pbVar12 = duplicate_tree(pbVar12,dfa);\n            if (pbVar12 != (bin_tree_t *)0x0) {\nLAB_00030eb9:\n              if ((pbVar12->token).field_0x4 == '\x11') goto LAB_00030c76;\nLAB_00030c8a:\n              if (local_c0 != (bin_tree_t *)0xffffffff) {\n                t._4_1_ = 10;\n                goto LAB_00030a18;\n              }\n              goto LAB_00030a13;\n            }\n            goto LAB_00030be0;\n          }\nLAB_00030d10:\n          if (*err != _REG_NOERROR) goto _L3134;\nLAB_00030d1e:\n          local_b0 = (bin_tree_t *)0x0;\n          pbVar11 = local_b0;\n        }\nLAB_00030b08:\n        local_b0 = pbVar11;\n        bVar25 = token->field_0x4;\n        uVar23 = (uint)bVar25;\n      } while (((syntax & 0x1000000) == 0) || ((bVar25 != 0xb && (bVar25 != 0x17))));\n      if (local_b0 != (bin_tree_t *)0x0) {\n        postorder(local_b0,free_tree,(void *)0x0);\n      }\n      goto LAB_00030b48;\n    }" { (labeled_statement "LAB_0003093e:\n      iVar10 = peek_token(token,regexp,syntax);" statement_identifier : (expression_statement "iVar10 = peek_token(token,regexp,syntax);" (assignment_expression "iVar10 = peek_token(token,regexp,syntax)" identifier = (call_expression "peek_token(token,regexp,syntax)" identifier (argument_list "(token,regexp,syntax)" ( identifier , identifier , identifier )))) ;)) (expression_statement "regexp->cur_idx = regexp->cur_idx + iVar10;" (assignment_expression "regexp->cur_idx = regexp->cur_idx + iVar10" (field_expression "regexp->cur_idx" identifier -> field_identifier) = (binary_expression "regexp->cur_idx + iVar10" (field_expression "regexp->cur_idx" identifier -> field_identifier) + identifier)) ;) (expression_statement "uVar23 = (uint)(byte)token->field_0x4;" (assignment_expression "uVar23 = (uint)(byte)token->field_0x4" identifier = (cast_expression "(uint)(byte)token->field_0x4" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)token->field_0x4" ( (type_descriptor "byte" type_identifier) ) (field_expression "token->field_0x4" identifier -> field_identifier)))) ;) (do_statement "do {\n        bVar25 = (byte)uVar23;\n        if ((0x17 < bVar25) || ((0x8c0800U >> (uVar23 & 0x1f) & 1) == 0)) goto LAB_00030965;\n        IVar26 = regexp->cur_idx;\n        aVar13 = token->opr;\n        uVar4 = *(undefined4 *)&token->field_0x4;\n        local_a4 = local_b0;\n        pbVar12 = local_b0;\n        if (bVar25 == 0x17) {\n          uVar23 = fetch_number(regexp,token,syntax);\n          if (uVar23 == 0xffffffff) {\n            if ((token->field_0x4 == '\x01') && ((token->opr).c == ',')) {\n              uVar23 = 0;\nLAB_00030d4d:\n              local_c0 = (bin_tree_t *)fetch_number(regexp,token,syntax);\n              if (local_c0 == (bin_tree_t *)0xfffffffe) goto LAB_00030cd8;\n              if (((local_c0 == (bin_tree_t *)0xffffffff) || ((int)uVar23 <= (int)local_c0)) &&\n                 (token->field_0x4 == '\x18')) {\n                pbVar11 = (bin_tree_t *)uVar23;\n                if (local_c0 != (bin_tree_t *)0xffffffff) goto LAB_00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\nLAB_00030e40:\n            *err = _REG_BADBR;\n          }\n          else {\n            if (uVar23 != 0xfffffffe) {\n              local_c0 = (bin_tree_t *)uVar23;\n              if (token->field_0x4 != '\x18') {\n                if (token->field_0x4 != '\x01') goto LAB_00030cd8;\n                if ((token->opr).c == ',') goto LAB_00030d4d;\n                if ((syntax & 0x200000) == 0) goto LAB_00030e40;\n                goto LAB_00030ce9;\n              }\nLAB_00030dfc:\n              pbVar11 = local_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)pbVar11) {\n                *err = _REG_ESIZE;\n                goto LAB_00030e4a;\n              }\n              iVar10 = peek_token(token,regexp,syntax);\n              regexp->cur_idx = regexp->cur_idx + iVar10;\n              if (local_b0 == (bin_tree_t *)0x0) goto LAB_00030d10;\n              if (local_c0 != (bin_tree_t *)0x0 || uVar23 != 0) {\n                if ((int)uVar23 < 1) {\n                  local_a4 = (bin_tree_t *)0x0;\n                  goto LAB_00030eb9;\n                }\n                if (uVar23 != 1) {\n                  iVar10 = 2;\n                  do {\n                    pbVar12 = duplicate_tree(pbVar12,dfa);\n                    t._4_1_ = 0x10;\n                    local_a4 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,local_a4,\n                                                 (re_token_t *)pbVar12,(re_dfa_t *)&t);\n                    if ((pbVar12 == (bin_tree_t *)0x0) || (local_a4 == (bin_tree_t *)0x0))\n                    goto LAB_00030be0;\n                    iVar10 = iVar10 + 1;\n                  } while (iVar10 <= (int)uVar23);\n                }\n                pbVar11 = local_a4;\n                if (local_c0 != (bin_tree_t *)uVar23) goto LAB_00030e9c;\n                goto LAB_00030b08;\n              }\n              postorder(local_b0,free_tree,(void *)0x0);\n              if (*err == _REG_NOERROR) goto LAB_00030d1e;\n              goto LAB_00030bea;\n            }\nLAB_00030cd8:\n            if ((syntax & 0x200000) == 0) {\n              if (token->field_0x4 != '\x02') goto LAB_00030e40;\n              *err = _REG_EBRACE;\n              goto LAB_00030e4a;\n            }\nLAB_00030ce9:\n            regexp->cur_idx = IVar26;\n            token->opr = aVar13;\n            *(undefined4 *)&token->field_0x4 = uVar4;\n            token->field_0x4 = 1;\n            pbVar11 = local_b0;\nLAB_00030af2:\n            if ((*err == _REG_NOERROR) || (pbVar11 != (bin_tree_t *)0x0)) goto LAB_00030b08;\n          }\nLAB_00030e4a:\n          if (local_b0 == (bin_tree_t *)0x0) goto _L3134;\nLAB_00030bea:\n          postorder(local_b0,free_tree,(void *)0x0);\n          local_b0 = (bin_tree_t *)0x0;\n          goto LAB_00030965;\n        }\n        uVar23 = (uint)(bVar25 == 0x12);\n        if (bVar25 == 0x13) {\n          iVar10 = peek_token(token,regexp,syntax);\n          regexp->cur_idx = regexp->cur_idx + iVar10;\n          if (local_b0 == (bin_tree_t *)0x0) goto LAB_00030d10;\n          if ((local_b0->token).field_0x4 == '\x11') {\n            local_c0 = (bin_tree_t *)0x1;\n            local_a4 = (bin_tree_t *)0x0;\n            goto LAB_00030c76;\n          }\n          local_c0 = (bin_tree_t *)0x1;\n          t._4_1_ = 10;\n          local_a4 = (bin_tree_t *)0x0;\nLAB_00030a18:\n          ppbVar1 = &dfa->str_tree_storage;\n          piVar2 = &dfa->str_tree_storage_idx;\n          pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar12,\n                                      (re_token_t *)0x0,(re_dfa_t *)&t);\n          if (pbVar11 == (bin_tree_t *)0x0) {\nLAB_00030be0:\n            *err = _REG_ESPACE;\n            goto LAB_00030bea;\n          }\n          for (iVar10 = uVar23 + 2; iVar10 <= (int)local_c0; iVar10 = iVar10 + 1) {\n            pbVar12 = duplicate_tree(pbVar12,dfa);\n            t._4_1_ = 0x10;\n            pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar11,\n                                        (re_token_t *)pbVar12,(re_dfa_t *)&t);\n            if ((pbVar12 == (bin_tree_t *)0x0) || (pbVar11 == (bin_tree_t *)0x0)) goto LAB_00030be0;\n            t._4_1_ = 10;\n            pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar11,\n                                        (re_token_t *)0x0,(re_dfa_t *)&t);\n            if (pbVar11 == (bin_tree_t *)0x0) goto LAB_00030be0;\n          }\n          if (local_a4 != (bin_tree_t *)0x0) {\n            t._4_1_ = 0x10;\n            pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,local_a4,\n                                        (re_token_t *)pbVar11,(re_dfa_t *)&t);\n            goto LAB_00030af2;\n          }\n        }\n        else {\n          iVar10 = peek_token(token,regexp,syntax);\n          regexp->cur_idx = regexp->cur_idx + iVar10;\n          if (local_b0 != (bin_tree_t *)0x0) {\n            if (bVar25 != 0x12) {\n              if ((local_b0->token).field_0x4 == '\x11') {\n                local_c0 = (bin_tree_t *)0xffffffff;\n                uVar23 = 0;\n                local_a4 = (bin_tree_t *)0x0;\nLAB_00030c76:\n                postorder(pbVar12,mark_opt_subexp,(pbVar12->token).opr.sbcset);\n                goto LAB_00030c8a;\n              }\n              local_c0 = (bin_tree_t *)0xffffffff;\n              uVar23 = 0;\n              local_a4 = (bin_tree_t *)0x0;\nLAB_00030a13:\n              t._4_1_ = 0xb;\n              goto LAB_00030a18;\n            }\n            local_c0 = (bin_tree_t *)0xffffffff;\n            uVar23 = 1;\nLAB_00030e9c:\n            pbVar12 = duplicate_tree(pbVar12,dfa);\n            if (pbVar12 != (bin_tree_t *)0x0) {\nLAB_00030eb9:\n              if ((pbVar12->token).field_0x4 == '\x11') goto LAB_00030c76;\nLAB_00030c8a:\n              if (local_c0 != (bin_tree_t *)0xffffffff) {\n                t._4_1_ = 10;\n                goto LAB_00030a18;\n              }\n              goto LAB_00030a13;\n            }\n            goto LAB_00030be0;\n          }\nLAB_00030d10:\n          if (*err != _REG_NOERROR) goto _L3134;\nLAB_00030d1e:\n          local_b0 = (bin_tree_t *)0x0;\n          pbVar11 = local_b0;\n        }\nLAB_00030b08:\n        local_b0 = pbVar11;\n        bVar25 = token->field_0x4;\n        uVar23 = (uint)bVar25;\n      } while (((syntax & 0x1000000) == 0) || ((bVar25 != 0xb && (bVar25 != 0x17))));" do (compound_statement "{\n        bVar25 = (byte)uVar23;\n        if ((0x17 < bVar25) || ((0x8c0800U >> (uVar23 & 0x1f) & 1) == 0)) goto LAB_00030965;\n        IVar26 = regexp->cur_idx;\n        aVar13 = token->opr;\n        uVar4 = *(undefined4 *)&token->field_0x4;\n        local_a4 = local_b0;\n        pbVar12 = local_b0;\n        if (bVar25 == 0x17) {\n          uVar23 = fetch_number(regexp,token,syntax);\n          if (uVar23 == 0xffffffff) {\n            if ((token->field_0x4 == '\x01') && ((token->opr).c == ',')) {\n              uVar23 = 0;\nLAB_00030d4d:\n              local_c0 = (bin_tree_t *)fetch_number(regexp,token,syntax);\n              if (local_c0 == (bin_tree_t *)0xfffffffe) goto LAB_00030cd8;\n              if (((local_c0 == (bin_tree_t *)0xffffffff) || ((int)uVar23 <= (int)local_c0)) &&\n                 (token->field_0x4 == '\x18')) {\n                pbVar11 = (bin_tree_t *)uVar23;\n                if (local_c0 != (bin_tree_t *)0xffffffff) goto LAB_00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\nLAB_00030e40:\n            *err = _REG_BADBR;\n          }\n          else {\n            if (uVar23 != 0xfffffffe) {\n              local_c0 = (bin_tree_t *)uVar23;\n              if (token->field_0x4 != '\x18') {\n                if (token->field_0x4 != '\x01') goto LAB_00030cd8;\n                if ((token->opr).c == ',') goto LAB_00030d4d;\n                if ((syntax & 0x200000) == 0) goto LAB_00030e40;\n                goto LAB_00030ce9;\n              }\nLAB_00030dfc:\n              pbVar11 = local_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)pbVar11) {\n                *err = _REG_ESIZE;\n                goto LAB_00030e4a;\n              }\n              iVar10 = peek_token(token,regexp,syntax);\n              regexp->cur_idx = regexp->cur_idx + iVar10;\n              if (local_b0 == (bin_tree_t *)0x0) goto LAB_00030d10;\n              if (local_c0 != (bin_tree_t *)0x0 || uVar23 != 0) {\n                if ((int)uVar23 < 1) {\n                  local_a4 = (bin_tree_t *)0x0;\n                  goto LAB_00030eb9;\n                }\n                if (uVar23 != 1) {\n                  iVar10 = 2;\n                  do {\n                    pbVar12 = duplicate_tree(pbVar12,dfa);\n                    t._4_1_ = 0x10;\n                    local_a4 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,local_a4,\n                                                 (re_token_t *)pbVar12,(re_dfa_t *)&t);\n                    if ((pbVar12 == (bin_tree_t *)0x0) || (local_a4 == (bin_tree_t *)0x0))\n                    goto LAB_00030be0;\n                    iVar10 = iVar10 + 1;\n                  } while (iVar10 <= (int)uVar23);\n                }\n                pbVar11 = local_a4;\n                if (local_c0 != (bin_tree_t *)uVar23) goto LAB_00030e9c;\n                goto LAB_00030b08;\n              }\n              postorder(local_b0,free_tree,(void *)0x0);\n              if (*err == _REG_NOERROR) goto LAB_00030d1e;\n              goto LAB_00030bea;\n            }\nLAB_00030cd8:\n            if ((syntax & 0x200000) == 0) {\n              if (token->field_0x4 != '\x02') goto LAB_00030e40;\n              *err = _REG_EBRACE;\n              goto LAB_00030e4a;\n            }\nLAB_00030ce9:\n            regexp->cur_idx = IVar26;\n            token->opr = aVar13;\n            *(undefined4 *)&token->field_0x4 = uVar4;\n            token->field_0x4 = 1;\n            pbVar11 = local_b0;\nLAB_00030af2:\n            if ((*err == _REG_NOERROR) || (pbVar11 != (bin_tree_t *)0x0)) goto LAB_00030b08;\n          }\nLAB_00030e4a:\n          if (local_b0 == (bin_tree_t *)0x0) goto _L3134;\nLAB_00030bea:\n          postorder(local_b0,free_tree,(void *)0x0);\n          local_b0 = (bin_tree_t *)0x0;\n          goto LAB_00030965;\n        }\n        uVar23 = (uint)(bVar25 == 0x12);\n        if (bVar25 == 0x13) {\n          iVar10 = peek_token(token,regexp,syntax);\n          regexp->cur_idx = regexp->cur_idx + iVar10;\n          if (local_b0 == (bin_tree_t *)0x0) goto LAB_00030d10;\n          if ((local_b0->token).field_0x4 == '\x11') {\n            local_c0 = (bin_tree_t *)0x1;\n            local_a4 = (bin_tree_t *)0x0;\n            goto LAB_00030c76;\n          }\n          local_c0 = (bin_tree_t *)0x1;\n          t._4_1_ = 10;\n          local_a4 = (bin_tree_t *)0x0;\nLAB_00030a18:\n          ppbVar1 = &dfa->str_tree_storage;\n          piVar2 = &dfa->str_tree_storage_idx;\n          pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar12,\n                                      (re_token_t *)0x0,(re_dfa_t *)&t);\n          if (pbVar11 == (bin_tree_t *)0x0) {\nLAB_00030be0:\n            *err = _REG_ESPACE;\n            goto LAB_00030bea;\n          }\n          for (iVar10 = uVar23 + 2; iVar10 <= (int)local_c0; iVar10 = iVar10 + 1) {\n            pbVar12 = duplicate_tree(pbVar12,dfa);\n            t._4_1_ = 0x10;\n            pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar11,\n                                        (re_token_t *)pbVar12,(re_dfa_t *)&t);\n            if ((pbVar12 == (bin_tree_t *)0x0) || (pbVar11 == (bin_tree_t *)0x0)) goto LAB_00030be0;\n            t._4_1_ = 10;\n            pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar11,\n                                        (re_token_t *)0x0,(re_dfa_t *)&t);\n            if (pbVar11 == (bin_tree_t *)0x0) goto LAB_00030be0;\n          }\n          if (local_a4 != (bin_tree_t *)0x0) {\n            t._4_1_ = 0x10;\n            pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,local_a4,\n                                        (re_token_t *)pbVar11,(re_dfa_t *)&t);\n            goto LAB_00030af2;\n          }\n        }\n        else {\n          iVar10 = peek_token(token,regexp,syntax);\n          regexp->cur_idx = regexp->cur_idx + iVar10;\n          if (local_b0 != (bin_tree_t *)0x0) {\n            if (bVar25 != 0x12) {\n              if ((local_b0->token).field_0x4 == '\x11') {\n                local_c0 = (bin_tree_t *)0xffffffff;\n                uVar23 = 0;\n                local_a4 = (bin_tree_t *)0x0;\nLAB_00030c76:\n                postorder(pbVar12,mark_opt_subexp,(pbVar12->token).opr.sbcset);\n                goto LAB_00030c8a;\n              }\n              local_c0 = (bin_tree_t *)0xffffffff;\n              uVar23 = 0;\n              local_a4 = (bin_tree_t *)0x0;\nLAB_00030a13:\n              t._4_1_ = 0xb;\n              goto LAB_00030a18;\n            }\n            local_c0 = (bin_tree_t *)0xffffffff;\n            uVar23 = 1;\nLAB_00030e9c:\n            pbVar12 = duplicate_tree(pbVar12,dfa);\n            if (pbVar12 != (bin_tree_t *)0x0) {\nLAB_00030eb9:\n              if ((pbVar12->token).field_0x4 == '\x11') goto LAB_00030c76;\nLAB_00030c8a:\n              if (local_c0 != (bin_tree_t *)0xffffffff) {\n                t._4_1_ = 10;\n                goto LAB_00030a18;\n              }\n              goto LAB_00030a13;\n            }\n            goto LAB_00030be0;\n          }\nLAB_00030d10:\n          if (*err != _REG_NOERROR) goto _L3134;\nLAB_00030d1e:\n          local_b0 = (bin_tree_t *)0x0;\n          pbVar11 = local_b0;\n        }\nLAB_00030b08:\n        local_b0 = pbVar11;\n        bVar25 = token->field_0x4;\n        uVar23 = (uint)bVar25;\n      }" { (expression_statement "bVar25 = (byte)uVar23;" (assignment_expression "bVar25 = (byte)uVar23" identifier = (cast_expression "(byte)uVar23" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (if_statement "if ((0x17 < bVar25) || ((0x8c0800U >> (uVar23 & 0x1f) & 1) == 0)) goto LAB_00030965;" if (parenthesized_expression "((0x17 < bVar25) || ((0x8c0800U >> (uVar23 & 0x1f) & 1) == 0))" ( (binary_expression "(0x17 < bVar25) || ((0x8c0800U >> (uVar23 & 0x1f) & 1) == 0)" (parenthesized_expression "(0x17 < bVar25)" ( (binary_expression "0x17 < bVar25" number_literal < identifier) )) || (parenthesized_expression "((0x8c0800U >> (uVar23 & 0x1f) & 1) == 0)" ( (binary_expression "(0x8c0800U >> (uVar23 & 0x1f) & 1) == 0" (parenthesized_expression "(0x8c0800U >> (uVar23 & 0x1f) & 1)" ( (binary_expression "0x8c0800U >> (uVar23 & 0x1f) & 1" (binary_expression "0x8c0800U >> (uVar23 & 0x1f)" number_literal >> (parenthesized_expression "(uVar23 & 0x1f)" ( (binary_expression "uVar23 & 0x1f" identifier & number_literal) ))) & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_00030965;" goto statement_identifier ;)) (expression_statement "IVar26 = regexp->cur_idx;" (assignment_expression "IVar26 = regexp->cur_idx" identifier = (field_expression "regexp->cur_idx" identifier -> field_identifier)) ;) (expression_statement "aVar13 = token->opr;" (assignment_expression "aVar13 = token->opr" identifier = (field_expression "token->opr" identifier -> field_identifier)) ;) (expression_statement "uVar4 = *(undefined4 *)&token->field_0x4;" (assignment_expression "uVar4 = *(undefined4 *)&token->field_0x4" identifier = (pointer_expression "*(undefined4 *)&token->field_0x4" * (cast_expression "(undefined4 *)&token->field_0x4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&token->field_0x4" & (field_expression "token->field_0x4" identifier -> field_identifier))))) ;) (expression_statement "local_a4 = local_b0;" (assignment_expression "local_a4 = local_b0" identifier = identifier) ;) (expression_statement "pbVar12 = local_b0;" (assignment_expression "pbVar12 = local_b0" identifier = identifier) ;) (if_statement "if (bVar25 == 0x17) {\n          uVar23 = fetch_number(regexp,token,syntax);\n          if (uVar23 == 0xffffffff) {\n            if ((token->field_0x4 == '\x01') && ((token->opr).c == ',')) {\n              uVar23 = 0;\nLAB_00030d4d:\n              local_c0 = (bin_tree_t *)fetch_number(regexp,token,syntax);\n              if (local_c0 == (bin_tree_t *)0xfffffffe) goto LAB_00030cd8;\n              if (((local_c0 == (bin_tree_t *)0xffffffff) || ((int)uVar23 <= (int)local_c0)) &&\n                 (token->field_0x4 == '\x18')) {\n                pbVar11 = (bin_tree_t *)uVar23;\n                if (local_c0 != (bin_tree_t *)0xffffffff) goto LAB_00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\nLAB_00030e40:\n            *err = _REG_BADBR;\n          }\n          else {\n            if (uVar23 != 0xfffffffe) {\n              local_c0 = (bin_tree_t *)uVar23;\n              if (token->field_0x4 != '\x18') {\n                if (token->field_0x4 != '\x01') goto LAB_00030cd8;\n                if ((token->opr).c == ',') goto LAB_00030d4d;\n                if ((syntax & 0x200000) == 0) goto LAB_00030e40;\n                goto LAB_00030ce9;\n              }\nLAB_00030dfc:\n              pbVar11 = local_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)pbVar11) {\n                *err = _REG_ESIZE;\n                goto LAB_00030e4a;\n              }\n              iVar10 = peek_token(token,regexp,syntax);\n              regexp->cur_idx = regexp->cur_idx + iVar10;\n              if (local_b0 == (bin_tree_t *)0x0) goto LAB_00030d10;\n              if (local_c0 != (bin_tree_t *)0x0 || uVar23 != 0) {\n                if ((int)uVar23 < 1) {\n                  local_a4 = (bin_tree_t *)0x0;\n                  goto LAB_00030eb9;\n                }\n                if (uVar23 != 1) {\n                  iVar10 = 2;\n                  do {\n                    pbVar12 = duplicate_tree(pbVar12,dfa);\n                    t._4_1_ = 0x10;\n                    local_a4 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,local_a4,\n                                                 (re_token_t *)pbVar12,(re_dfa_t *)&t);\n                    if ((pbVar12 == (bin_tree_t *)0x0) || (local_a4 == (bin_tree_t *)0x0))\n                    goto LAB_00030be0;\n                    iVar10 = iVar10 + 1;\n                  } while (iVar10 <= (int)uVar23);\n                }\n                pbVar11 = local_a4;\n                if (local_c0 != (bin_tree_t *)uVar23) goto LAB_00030e9c;\n                goto LAB_00030b08;\n              }\n              postorder(local_b0,free_tree,(void *)0x0);\n              if (*err == _REG_NOERROR) goto LAB_00030d1e;\n              goto LAB_00030bea;\n            }\nLAB_00030cd8:\n            if ((syntax & 0x200000) == 0) {\n              if (token->field_0x4 != '\x02') goto LAB_00030e40;\n              *err = _REG_EBRACE;\n              goto LAB_00030e4a;\n            }\nLAB_00030ce9:\n            regexp->cur_idx = IVar26;\n            token->opr = aVar13;\n            *(undefined4 *)&token->field_0x4 = uVar4;\n            token->field_0x4 = 1;\n            pbVar11 = local_b0;\nLAB_00030af2:\n            if ((*err == _REG_NOERROR) || (pbVar11 != (bin_tree_t *)0x0)) goto LAB_00030b08;\n          }\nLAB_00030e4a:\n          if (local_b0 == (bin_tree_t *)0x0) goto _L3134;\nLAB_00030bea:\n          postorder(local_b0,free_tree,(void *)0x0);\n          local_b0 = (bin_tree_t *)0x0;\n          goto LAB_00030965;\n        }" if (parenthesized_expression "(bVar25 == 0x17)" ( (binary_expression "bVar25 == 0x17" identifier == number_literal) )) (compound_statement "{\n          uVar23 = fetch_number(regexp,token,syntax);\n          if (uVar23 == 0xffffffff) {\n            if ((token->field_0x4 == '\x01') && ((token->opr).c == ',')) {\n              uVar23 = 0;\nLAB_00030d4d:\n              local_c0 = (bin_tree_t *)fetch_number(regexp,token,syntax);\n              if (local_c0 == (bin_tree_t *)0xfffffffe) goto LAB_00030cd8;\n              if (((local_c0 == (bin_tree_t *)0xffffffff) || ((int)uVar23 <= (int)local_c0)) &&\n                 (token->field_0x4 == '\x18')) {\n                pbVar11 = (bin_tree_t *)uVar23;\n                if (local_c0 != (bin_tree_t *)0xffffffff) goto LAB_00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\nLAB_00030e40:\n            *err = _REG_BADBR;\n          }\n          else {\n            if (uVar23 != 0xfffffffe) {\n              local_c0 = (bin_tree_t *)uVar23;\n              if (token->field_0x4 != '\x18') {\n                if (token->field_0x4 != '\x01') goto LAB_00030cd8;\n                if ((token->opr).c == ',') goto LAB_00030d4d;\n                if ((syntax & 0x200000) == 0) goto LAB_00030e40;\n                goto LAB_00030ce9;\n              }\nLAB_00030dfc:\n              pbVar11 = local_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)pbVar11) {\n                *err = _REG_ESIZE;\n                goto LAB_00030e4a;\n              }\n              iVar10 = peek_token(token,regexp,syntax);\n              regexp->cur_idx = regexp->cur_idx + iVar10;\n              if (local_b0 == (bin_tree_t *)0x0) goto LAB_00030d10;\n              if (local_c0 != (bin_tree_t *)0x0 || uVar23 != 0) {\n                if ((int)uVar23 < 1) {\n                  local_a4 = (bin_tree_t *)0x0;\n                  goto LAB_00030eb9;\n                }\n                if (uVar23 != 1) {\n                  iVar10 = 2;\n                  do {\n                    pbVar12 = duplicate_tree(pbVar12,dfa);\n                    t._4_1_ = 0x10;\n                    local_a4 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,local_a4,\n                                                 (re_token_t *)pbVar12,(re_dfa_t *)&t);\n                    if ((pbVar12 == (bin_tree_t *)0x0) || (local_a4 == (bin_tree_t *)0x0))\n                    goto LAB_00030be0;\n                    iVar10 = iVar10 + 1;\n                  } while (iVar10 <= (int)uVar23);\n                }\n                pbVar11 = local_a4;\n                if (local_c0 != (bin_tree_t *)uVar23) goto LAB_00030e9c;\n                goto LAB_00030b08;\n              }\n              postorder(local_b0,free_tree,(void *)0x0);\n              if (*err == _REG_NOERROR) goto LAB_00030d1e;\n              goto LAB_00030bea;\n            }\nLAB_00030cd8:\n            if ((syntax & 0x200000) == 0) {\n              if (token->field_0x4 != '\x02') goto LAB_00030e40;\n              *err = _REG_EBRACE;\n              goto LAB_00030e4a;\n            }\nLAB_00030ce9:\n            regexp->cur_idx = IVar26;\n            token->opr = aVar13;\n            *(undefined4 *)&token->field_0x4 = uVar4;\n            token->field_0x4 = 1;\n            pbVar11 = local_b0;\nLAB_00030af2:\n            if ((*err == _REG_NOERROR) || (pbVar11 != (bin_tree_t *)0x0)) goto LAB_00030b08;\n          }\nLAB_00030e4a:\n          if (local_b0 == (bin_tree_t *)0x0) goto _L3134;\nLAB_00030bea:\n          postorder(local_b0,free_tree,(void *)0x0);\n          local_b0 = (bin_tree_t *)0x0;\n          goto LAB_00030965;\n        }" { (expression_statement "uVar23 = fetch_number(regexp,token,syntax);" (assignment_expression "uVar23 = fetch_number(regexp,token,syntax)" identifier = (call_expression "fetch_number(regexp,token,syntax)" identifier (argument_list "(regexp,token,syntax)" ( identifier , identifier , identifier )))) ;) (if_statement "if (uVar23 == 0xffffffff) {\n            if ((token->field_0x4 == '\x01') && ((token->opr).c == ',')) {\n              uVar23 = 0;\nLAB_00030d4d:\n              local_c0 = (bin_tree_t *)fetch_number(regexp,token,syntax);\n              if (local_c0 == (bin_tree_t *)0xfffffffe) goto LAB_00030cd8;\n              if (((local_c0 == (bin_tree_t *)0xffffffff) || ((int)uVar23 <= (int)local_c0)) &&\n                 (token->field_0x4 == '\x18')) {\n                pbVar11 = (bin_tree_t *)uVar23;\n                if (local_c0 != (bin_tree_t *)0xffffffff) goto LAB_00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\nLAB_00030e40:\n            *err = _REG_BADBR;\n          }\n          else {\n            if (uVar23 != 0xfffffffe) {\n              local_c0 = (bin_tree_t *)uVar23;\n              if (token->field_0x4 != '\x18') {\n                if (token->field_0x4 != '\x01') goto LAB_00030cd8;\n                if ((token->opr).c == ',') goto LAB_00030d4d;\n                if ((syntax & 0x200000) == 0) goto LAB_00030e40;\n                goto LAB_00030ce9;\n              }\nLAB_00030dfc:\n              pbVar11 = local_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)pbVar11) {\n                *err = _REG_ESIZE;\n                goto LAB_00030e4a;\n              }\n              iVar10 = peek_token(token,regexp,syntax);\n              regexp->cur_idx = regexp->cur_idx + iVar10;\n              if (local_b0 == (bin_tree_t *)0x0) goto LAB_00030d10;\n              if (local_c0 != (bin_tree_t *)0x0 || uVar23 != 0) {\n                if ((int)uVar23 < 1) {\n                  local_a4 = (bin_tree_t *)0x0;\n                  goto LAB_00030eb9;\n                }\n                if (uVar23 != 1) {\n                  iVar10 = 2;\n                  do {\n                    pbVar12 = duplicate_tree(pbVar12,dfa);\n                    t._4_1_ = 0x10;\n                    local_a4 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,local_a4,\n                                                 (re_token_t *)pbVar12,(re_dfa_t *)&t);\n                    if ((pbVar12 == (bin_tree_t *)0x0) || (local_a4 == (bin_tree_t *)0x0))\n                    goto LAB_00030be0;\n                    iVar10 = iVar10 + 1;\n                  } while (iVar10 <= (int)uVar23);\n                }\n                pbVar11 = local_a4;\n                if (local_c0 != (bin_tree_t *)uVar23) goto LAB_00030e9c;\n                goto LAB_00030b08;\n              }\n              postorder(local_b0,free_tree,(void *)0x0);\n              if (*err == _REG_NOERROR) goto LAB_00030d1e;\n              goto LAB_00030bea;\n            }\nLAB_00030cd8:\n            if ((syntax & 0x200000) == 0) {\n              if (token->field_0x4 != '\x02') goto LAB_00030e40;\n              *err = _REG_EBRACE;\n              goto LAB_00030e4a;\n            }\nLAB_00030ce9:\n            regexp->cur_idx = IVar26;\n            token->opr = aVar13;\n            *(undefined4 *)&token->field_0x4 = uVar4;\n            token->field_0x4 = 1;\n            pbVar11 = local_b0;\nLAB_00030af2:\n            if ((*err == _REG_NOERROR) || (pbVar11 != (bin_tree_t *)0x0)) goto LAB_00030b08;\n          }" if (parenthesized_expression "(uVar23 == 0xffffffff)" ( (binary_expression "uVar23 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n            if ((token->field_0x4 == '\x01') && ((token->opr).c == ',')) {\n              uVar23 = 0;\nLAB_00030d4d:\n              local_c0 = (bin_tree_t *)fetch_number(regexp,token,syntax);\n              if (local_c0 == (bin_tree_t *)0xfffffffe) goto LAB_00030cd8;\n              if (((local_c0 == (bin_tree_t *)0xffffffff) || ((int)uVar23 <= (int)local_c0)) &&\n                 (token->field_0x4 == '\x18')) {\n                pbVar11 = (bin_tree_t *)uVar23;\n                if (local_c0 != (bin_tree_t *)0xffffffff) goto LAB_00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\nLAB_00030e40:\n            *err = _REG_BADBR;\n          }" { (if_statement "if ((token->field_0x4 == '\x01') && ((token->opr).c == ',')) {\n              uVar23 = 0;\nLAB_00030d4d:\n              local_c0 = (bin_tree_t *)fetch_number(regexp,token,syntax);\n              if (local_c0 == (bin_tree_t *)0xfffffffe) goto LAB_00030cd8;\n              if (((local_c0 == (bin_tree_t *)0xffffffff) || ((int)uVar23 <= (int)local_c0)) &&\n                 (token->field_0x4 == '\x18')) {\n                pbVar11 = (bin_tree_t *)uVar23;\n                if (local_c0 != (bin_tree_t *)0xffffffff) goto LAB_00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }" if (parenthesized_expression "((token->field_0x4 == '\x01') && ((token->opr).c == ','))" ( (binary_expression "(token->field_0x4 == '\x01') && ((token->opr).c == ',')" (parenthesized_expression "(token->field_0x4 == '\x01')" ( (binary_expression "token->field_0x4 == '\x01'" (field_expression "token->field_0x4" identifier -> field_identifier) == (char_literal "'\x01'" ' escape_sequence ')) )) && (parenthesized_expression "((token->opr).c == ',')" ( (binary_expression "(token->opr).c == ','" (field_expression "(token->opr).c" (parenthesized_expression "(token->opr)" ( (field_expression "token->opr" identifier -> field_identifier) )) . field_identifier) == (char_literal "','" ' character ')) ))) )) (compound_statement "{\n              uVar23 = 0;\nLAB_00030d4d:\n              local_c0 = (bin_tree_t *)fetch_number(regexp,token,syntax);\n              if (local_c0 == (bin_tree_t *)0xfffffffe) goto LAB_00030cd8;\n              if (((local_c0 == (bin_tree_t *)0xffffffff) || ((int)uVar23 <= (int)local_c0)) &&\n                 (token->field_0x4 == '\x18')) {\n                pbVar11 = (bin_tree_t *)uVar23;\n                if (local_c0 != (bin_tree_t *)0xffffffff) goto LAB_00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }" { (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00030d4d:\n              local_c0 = (bin_tree_t *)fetch_number(regexp,token,syntax);" statement_identifier : (expression_statement "local_c0 = (bin_tree_t *)fetch_number(regexp,token,syntax);" (assignment_expression "local_c0 = (bin_tree_t *)fetch_number(regexp,token,syntax)" identifier = (cast_expression "(bin_tree_t *)fetch_number(regexp,token,syntax)" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "fetch_number(regexp,token,syntax)" identifier (argument_list "(regexp,token,syntax)" ( identifier , identifier , identifier ))))) ;)) (if_statement "if (local_c0 == (bin_tree_t *)0xfffffffe) goto LAB_00030cd8;" if (parenthesized_expression "(local_c0 == (bin_tree_t *)0xfffffffe)" ( (binary_expression "local_c0 == (bin_tree_t *)0xfffffffe" identifier == (cast_expression "(bin_tree_t *)0xfffffffe" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00030cd8;" goto statement_identifier ;)) (if_statement "if (((local_c0 == (bin_tree_t *)0xffffffff) || ((int)uVar23 <= (int)local_c0)) &&\n                 (token->field_0x4 == '\x18')) {\n                pbVar11 = (bin_tree_t *)uVar23;\n                if (local_c0 != (bin_tree_t *)0xffffffff) goto LAB_00030dfc;\n                goto joined_r0x00030e0b;\n              }" if (parenthesized_expression "(((local_c0 == (bin_tree_t *)0xffffffff) || ((int)uVar23 <= (int)local_c0)) &&\n                 (token->field_0x4 == '\x18'))" ( (binary_expression "((local_c0 == (bin_tree_t *)0xffffffff) || ((int)uVar23 <= (int)local_c0)) &&\n                 (token->field_0x4 == '\x18')" (parenthesized_expression "((local_c0 == (bin_tree_t *)0xffffffff) || ((int)uVar23 <= (int)local_c0))" ( (binary_expression "(local_c0 == (bin_tree_t *)0xffffffff) || ((int)uVar23 <= (int)local_c0)" (parenthesized_expression "(local_c0 == (bin_tree_t *)0xffffffff)" ( (binary_expression "local_c0 == (bin_tree_t *)0xffffffff" identifier == (cast_expression "(bin_tree_t *)0xffffffff" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "((int)uVar23 <= (int)local_c0)" ( (binary_expression "(int)uVar23 <= (int)local_c0" (cast_expression "(int)uVar23" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)local_c0" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) && (parenthesized_expression "(token->field_0x4 == '\x18')" ( (binary_expression "token->field_0x4 == '\x18'" (field_expression "token->field_0x4" identifier -> field_identifier) == (char_literal "'\x18'" ' escape_sequence ')) ))) )) (compound_statement "{\n                pbVar11 = (bin_tree_t *)uVar23;\n                if (local_c0 != (bin_tree_t *)0xffffffff) goto LAB_00030dfc;\n                goto joined_r0x00030e0b;\n              }" { (expression_statement "pbVar11 = (bin_tree_t *)uVar23;" (assignment_expression "pbVar11 = (bin_tree_t *)uVar23" identifier = (cast_expression "(bin_tree_t *)uVar23" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (local_c0 != (bin_tree_t *)0xffffffff) goto LAB_00030dfc;" if (parenthesized_expression "(local_c0 != (bin_tree_t *)0xffffffff)" ( (binary_expression "local_c0 != (bin_tree_t *)0xffffffff" identifier != (cast_expression "(bin_tree_t *)0xffffffff" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00030dfc;" goto statement_identifier ;)) (goto_statement "goto joined_r0x00030e0b;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00030e40:\n            *err = _REG_BADBR;" statement_identifier : (expression_statement "*err = _REG_BADBR;" (assignment_expression "*err = _REG_BADBR" (pointer_expression "*err" * identifier) = identifier) ;)) }) (else_clause "else {\n            if (uVar23 != 0xfffffffe) {\n              local_c0 = (bin_tree_t *)uVar23;\n              if (token->field_0x4 != '\x18') {\n                if (token->field_0x4 != '\x01') goto LAB_00030cd8;\n                if ((token->opr).c == ',') goto LAB_00030d4d;\n                if ((syntax & 0x200000) == 0) goto LAB_00030e40;\n                goto LAB_00030ce9;\n              }\nLAB_00030dfc:\n              pbVar11 = local_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)pbVar11) {\n                *err = _REG_ESIZE;\n                goto LAB_00030e4a;\n              }\n              iVar10 = peek_token(token,regexp,syntax);\n              regexp->cur_idx = regexp->cur_idx + iVar10;\n              if (local_b0 == (bin_tree_t *)0x0) goto LAB_00030d10;\n              if (local_c0 != (bin_tree_t *)0x0 || uVar23 != 0) {\n                if ((int)uVar23 < 1) {\n                  local_a4 = (bin_tree_t *)0x0;\n                  goto LAB_00030eb9;\n                }\n                if (uVar23 != 1) {\n                  iVar10 = 2;\n                  do {\n                    pbVar12 = duplicate_tree(pbVar12,dfa);\n                    t._4_1_ = 0x10;\n                    local_a4 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,local_a4,\n                                                 (re_token_t *)pbVar12,(re_dfa_t *)&t);\n                    if ((pbVar12 == (bin_tree_t *)0x0) || (local_a4 == (bin_tree_t *)0x0))\n                    goto LAB_00030be0;\n                    iVar10 = iVar10 + 1;\n                  } while (iVar10 <= (int)uVar23);\n                }\n                pbVar11 = local_a4;\n                if (local_c0 != (bin_tree_t *)uVar23) goto LAB_00030e9c;\n                goto LAB_00030b08;\n              }\n              postorder(local_b0,free_tree,(void *)0x0);\n              if (*err == _REG_NOERROR) goto LAB_00030d1e;\n              goto LAB_00030bea;\n            }\nLAB_00030cd8:\n            if ((syntax & 0x200000) == 0) {\n              if (token->field_0x4 != '\x02') goto LAB_00030e40;\n              *err = _REG_EBRACE;\n              goto LAB_00030e4a;\n            }\nLAB_00030ce9:\n            regexp->cur_idx = IVar26;\n            token->opr = aVar13;\n            *(undefined4 *)&token->field_0x4 = uVar4;\n            token->field_0x4 = 1;\n            pbVar11 = local_b0;\nLAB_00030af2:\n            if ((*err == _REG_NOERROR) || (pbVar11 != (bin_tree_t *)0x0)) goto LAB_00030b08;\n          }" else (compound_statement "{\n            if (uVar23 != 0xfffffffe) {\n              local_c0 = (bin_tree_t *)uVar23;\n              if (token->field_0x4 != '\x18') {\n                if (token->field_0x4 != '\x01') goto LAB_00030cd8;\n                if ((token->opr).c == ',') goto LAB_00030d4d;\n                if ((syntax & 0x200000) == 0) goto LAB_00030e40;\n                goto LAB_00030ce9;\n              }\nLAB_00030dfc:\n              pbVar11 = local_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)pbVar11) {\n                *err = _REG_ESIZE;\n                goto LAB_00030e4a;\n              }\n              iVar10 = peek_token(token,regexp,syntax);\n              regexp->cur_idx = regexp->cur_idx + iVar10;\n              if (local_b0 == (bin_tree_t *)0x0) goto LAB_00030d10;\n              if (local_c0 != (bin_tree_t *)0x0 || uVar23 != 0) {\n                if ((int)uVar23 < 1) {\n                  local_a4 = (bin_tree_t *)0x0;\n                  goto LAB_00030eb9;\n                }\n                if (uVar23 != 1) {\n                  iVar10 = 2;\n                  do {\n                    pbVar12 = duplicate_tree(pbVar12,dfa);\n                    t._4_1_ = 0x10;\n                    local_a4 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,local_a4,\n                                                 (re_token_t *)pbVar12,(re_dfa_t *)&t);\n                    if ((pbVar12 == (bin_tree_t *)0x0) || (local_a4 == (bin_tree_t *)0x0))\n                    goto LAB_00030be0;\n                    iVar10 = iVar10 + 1;\n                  } while (iVar10 <= (int)uVar23);\n                }\n                pbVar11 = local_a4;\n                if (local_c0 != (bin_tree_t *)uVar23) goto LAB_00030e9c;\n                goto LAB_00030b08;\n              }\n              postorder(local_b0,free_tree,(void *)0x0);\n              if (*err == _REG_NOERROR) goto LAB_00030d1e;\n              goto LAB_00030bea;\n            }\nLAB_00030cd8:\n            if ((syntax & 0x200000) == 0) {\n              if (token->field_0x4 != '\x02') goto LAB_00030e40;\n              *err = _REG_EBRACE;\n              goto LAB_00030e4a;\n            }\nLAB_00030ce9:\n            regexp->cur_idx = IVar26;\n            token->opr = aVar13;\n            *(undefined4 *)&token->field_0x4 = uVar4;\n            token->field_0x4 = 1;\n            pbVar11 = local_b0;\nLAB_00030af2:\n            if ((*err == _REG_NOERROR) || (pbVar11 != (bin_tree_t *)0x0)) goto LAB_00030b08;\n          }" { (if_statement "if (uVar23 != 0xfffffffe) {\n              local_c0 = (bin_tree_t *)uVar23;\n              if (token->field_0x4 != '\x18') {\n                if (token->field_0x4 != '\x01') goto LAB_00030cd8;\n                if ((token->opr).c == ',') goto LAB_00030d4d;\n                if ((syntax & 0x200000) == 0) goto LAB_00030e40;\n                goto LAB_00030ce9;\n              }\nLAB_00030dfc:\n              pbVar11 = local_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)pbVar11) {\n                *err = _REG_ESIZE;\n                goto LAB_00030e4a;\n              }\n              iVar10 = peek_token(token,regexp,syntax);\n              regexp->cur_idx = regexp->cur_idx + iVar10;\n              if (local_b0 == (bin_tree_t *)0x0) goto LAB_00030d10;\n              if (local_c0 != (bin_tree_t *)0x0 || uVar23 != 0) {\n                if ((int)uVar23 < 1) {\n                  local_a4 = (bin_tree_t *)0x0;\n                  goto LAB_00030eb9;\n                }\n                if (uVar23 != 1) {\n                  iVar10 = 2;\n                  do {\n                    pbVar12 = duplicate_tree(pbVar12,dfa);\n                    t._4_1_ = 0x10;\n                    local_a4 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,local_a4,\n                                                 (re_token_t *)pbVar12,(re_dfa_t *)&t);\n                    if ((pbVar12 == (bin_tree_t *)0x0) || (local_a4 == (bin_tree_t *)0x0))\n                    goto LAB_00030be0;\n                    iVar10 = iVar10 + 1;\n                  } while (iVar10 <= (int)uVar23);\n                }\n                pbVar11 = local_a4;\n                if (local_c0 != (bin_tree_t *)uVar23) goto LAB_00030e9c;\n                goto LAB_00030b08;\n              }\n              postorder(local_b0,free_tree,(void *)0x0);\n              if (*err == _REG_NOERROR) goto LAB_00030d1e;\n              goto LAB_00030bea;\n            }" if (parenthesized_expression "(uVar23 != 0xfffffffe)" ( (binary_expression "uVar23 != 0xfffffffe" identifier != number_literal) )) (compound_statement "{\n              local_c0 = (bin_tree_t *)uVar23;\n              if (token->field_0x4 != '\x18') {\n                if (token->field_0x4 != '\x01') goto LAB_00030cd8;\n                if ((token->opr).c == ',') goto LAB_00030d4d;\n                if ((syntax & 0x200000) == 0) goto LAB_00030e40;\n                goto LAB_00030ce9;\n              }\nLAB_00030dfc:\n              pbVar11 = local_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)pbVar11) {\n                *err = _REG_ESIZE;\n                goto LAB_00030e4a;\n              }\n              iVar10 = peek_token(token,regexp,syntax);\n              regexp->cur_idx = regexp->cur_idx + iVar10;\n              if (local_b0 == (bin_tree_t *)0x0) goto LAB_00030d10;\n              if (local_c0 != (bin_tree_t *)0x0 || uVar23 != 0) {\n                if ((int)uVar23 < 1) {\n                  local_a4 = (bin_tree_t *)0x0;\n                  goto LAB_00030eb9;\n                }\n                if (uVar23 != 1) {\n                  iVar10 = 2;\n                  do {\n                    pbVar12 = duplicate_tree(pbVar12,dfa);\n                    t._4_1_ = 0x10;\n                    local_a4 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,local_a4,\n                                                 (re_token_t *)pbVar12,(re_dfa_t *)&t);\n                    if ((pbVar12 == (bin_tree_t *)0x0) || (local_a4 == (bin_tree_t *)0x0))\n                    goto LAB_00030be0;\n                    iVar10 = iVar10 + 1;\n                  } while (iVar10 <= (int)uVar23);\n                }\n                pbVar11 = local_a4;\n                if (local_c0 != (bin_tree_t *)uVar23) goto LAB_00030e9c;\n                goto LAB_00030b08;\n              }\n              postorder(local_b0,free_tree,(void *)0x0);\n              if (*err == _REG_NOERROR) goto LAB_00030d1e;\n              goto LAB_00030bea;\n            }" { (expression_statement "local_c0 = (bin_tree_t *)uVar23;" (assignment_expression "local_c0 = (bin_tree_t *)uVar23" identifier = (cast_expression "(bin_tree_t *)uVar23" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (token->field_0x4 != '\x18') {\n                if (token->field_0x4 != '\x01') goto LAB_00030cd8;\n                if ((token->opr).c == ',') goto LAB_00030d4d;\n                if ((syntax & 0x200000) == 0) goto LAB_00030e40;\n                goto LAB_00030ce9;\n              }" if (parenthesized_expression "(token->field_0x4 != '\x18')" ( (binary_expression "token->field_0x4 != '\x18'" (field_expression "token->field_0x4" identifier -> field_identifier) != (char_literal "'\x18'" ' escape_sequence ')) )) (compound_statement "{\n                if (token->field_0x4 != '\x01') goto LAB_00030cd8;\n                if ((token->opr).c == ',') goto LAB_00030d4d;\n                if ((syntax & 0x200000) == 0) goto LAB_00030e40;\n                goto LAB_00030ce9;\n              }" { (if_statement "if (token->field_0x4 != '\x01') goto LAB_00030cd8;" if (parenthesized_expression "(token->field_0x4 != '\x01')" ( (binary_expression "token->field_0x4 != '\x01'" (field_expression "token->field_0x4" identifier -> field_identifier) != (char_literal "'\x01'" ' escape_sequence ')) )) (goto_statement "goto LAB_00030cd8;" goto statement_identifier ;)) (if_statement "if ((token->opr).c == ',') goto LAB_00030d4d;" if (parenthesized_expression "((token->opr).c == ',')" ( (binary_expression "(token->opr).c == ','" (field_expression "(token->opr).c" (parenthesized_expression "(token->opr)" ( (field_expression "token->opr" identifier -> field_identifier) )) . field_identifier) == (char_literal "','" ' character ')) )) (goto_statement "goto LAB_00030d4d;" goto statement_identifier ;)) (if_statement "if ((syntax & 0x200000) == 0) goto LAB_00030e40;" if (parenthesized_expression "((syntax & 0x200000) == 0)" ( (binary_expression "(syntax & 0x200000) == 0" (parenthesized_expression "(syntax & 0x200000)" ( (binary_expression "syntax & 0x200000" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00030e40;" goto statement_identifier ;)) (goto_statement "goto LAB_00030ce9;" goto statement_identifier ;) })) (labeled_statement "LAB_00030dfc:\n              pbVar11 = local_c0;" statement_identifier : (expression_statement "pbVar11 = local_c0;" (assignment_expression "pbVar11 = local_c0" identifier = identifier) ;)) (labeled_statement "joined_r0x00030e0b:\n              if (0x7fff < (int)pbVar11) {\n                *err = _REG_ESIZE;\n                goto LAB_00030e4a;\n              }" statement_identifier : (if_statement "if (0x7fff < (int)pbVar11) {\n                *err = _REG_ESIZE;\n                goto LAB_00030e4a;\n              }" if (parenthesized_expression "(0x7fff < (int)pbVar11)" ( (binary_expression "0x7fff < (int)pbVar11" number_literal < (cast_expression "(int)pbVar11" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                *err = _REG_ESIZE;\n                goto LAB_00030e4a;\n              }" { (expression_statement "*err = _REG_ESIZE;" (assignment_expression "*err = _REG_ESIZE" (pointer_expression "*err" * identifier) = identifier) ;) (goto_statement "goto LAB_00030e4a;" goto statement_identifier ;) }))) (expression_statement "iVar10 = peek_token(token,regexp,syntax);" (assignment_expression "iVar10 = peek_token(token,regexp,syntax)" identifier = (call_expression "peek_token(token,regexp,syntax)" identifier (argument_list "(token,regexp,syntax)" ( identifier , identifier , identifier )))) ;) (expression_statement "regexp->cur_idx = regexp->cur_idx + iVar10;" (assignment_expression "regexp->cur_idx = regexp->cur_idx + iVar10" (field_expression "regexp->cur_idx" identifier -> field_identifier) = (binary_expression "regexp->cur_idx + iVar10" (field_expression "regexp->cur_idx" identifier -> field_identifier) + identifier)) ;) (if_statement "if (local_b0 == (bin_tree_t *)0x0) goto LAB_00030d10;" if (parenthesized_expression "(local_b0 == (bin_tree_t *)0x0)" ( (binary_expression "local_b0 == (bin_tree_t *)0x0" identifier == (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00030d10;" goto statement_identifier ;)) (if_statement "if (local_c0 != (bin_tree_t *)0x0 || uVar23 != 0) {\n                if ((int)uVar23 < 1) {\n                  local_a4 = (bin_tree_t *)0x0;\n                  goto LAB_00030eb9;\n                }\n                if (uVar23 != 1) {\n                  iVar10 = 2;\n                  do {\n                    pbVar12 = duplicate_tree(pbVar12,dfa);\n                    t._4_1_ = 0x10;\n                    local_a4 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,local_a4,\n                                                 (re_token_t *)pbVar12,(re_dfa_t *)&t);\n                    if ((pbVar12 == (bin_tree_t *)0x0) || (local_a4 == (bin_tree_t *)0x0))\n                    goto LAB_00030be0;\n                    iVar10 = iVar10 + 1;\n                  } while (iVar10 <= (int)uVar23);\n                }\n                pbVar11 = local_a4;\n                if (local_c0 != (bin_tree_t *)uVar23) goto LAB_00030e9c;\n                goto LAB_00030b08;\n              }" if (parenthesized_expression "(local_c0 != (bin_tree_t *)0x0 || uVar23 != 0)" ( (binary_expression "local_c0 != (bin_tree_t *)0x0 || uVar23 != 0" (binary_expression "local_c0 != (bin_tree_t *)0x0" identifier != (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (binary_expression "uVar23 != 0" identifier != number_literal)) )) (compound_statement "{\n                if ((int)uVar23 < 1) {\n                  local_a4 = (bin_tree_t *)0x0;\n                  goto LAB_00030eb9;\n                }\n                if (uVar23 != 1) {\n                  iVar10 = 2;\n                  do {\n                    pbVar12 = duplicate_tree(pbVar12,dfa);\n                    t._4_1_ = 0x10;\n                    local_a4 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,local_a4,\n                                                 (re_token_t *)pbVar12,(re_dfa_t *)&t);\n                    if ((pbVar12 == (bin_tree_t *)0x0) || (local_a4 == (bin_tree_t *)0x0))\n                    goto LAB_00030be0;\n                    iVar10 = iVar10 + 1;\n                  } while (iVar10 <= (int)uVar23);\n                }\n                pbVar11 = local_a4;\n                if (local_c0 != (bin_tree_t *)uVar23) goto LAB_00030e9c;\n                goto LAB_00030b08;\n              }" { (if_statement "if ((int)uVar23 < 1) {\n                  local_a4 = (bin_tree_t *)0x0;\n                  goto LAB_00030eb9;\n                }" if (parenthesized_expression "((int)uVar23 < 1)" ( (binary_expression "(int)uVar23 < 1" (cast_expression "(int)uVar23" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                  local_a4 = (bin_tree_t *)0x0;\n                  goto LAB_00030eb9;\n                }" { (expression_statement "local_a4 = (bin_tree_t *)0x0;" (assignment_expression "local_a4 = (bin_tree_t *)0x0" identifier = (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00030eb9;" goto statement_identifier ;) })) (if_statement "if (uVar23 != 1) {\n                  iVar10 = 2;\n                  do {\n                    pbVar12 = duplicate_tree(pbVar12,dfa);\n                    t._4_1_ = 0x10;\n                    local_a4 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,local_a4,\n                                                 (re_token_t *)pbVar12,(re_dfa_t *)&t);\n                    if ((pbVar12 == (bin_tree_t *)0x0) || (local_a4 == (bin_tree_t *)0x0))\n                    goto LAB_00030be0;\n                    iVar10 = iVar10 + 1;\n                  } while (iVar10 <= (int)uVar23);\n                }" if (parenthesized_expression "(uVar23 != 1)" ( (binary_expression "uVar23 != 1" identifier != number_literal) )) (compound_statement "{\n                  iVar10 = 2;\n                  do {\n                    pbVar12 = duplicate_tree(pbVar12,dfa);\n                    t._4_1_ = 0x10;\n                    local_a4 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,local_a4,\n                                                 (re_token_t *)pbVar12,(re_dfa_t *)&t);\n                    if ((pbVar12 == (bin_tree_t *)0x0) || (local_a4 == (bin_tree_t *)0x0))\n                    goto LAB_00030be0;\n                    iVar10 = iVar10 + 1;\n                  } while (iVar10 <= (int)uVar23);\n                }" { (expression_statement "iVar10 = 2;" (assignment_expression "iVar10 = 2" identifier = number_literal) ;) (do_statement "do {\n                    pbVar12 = duplicate_tree(pbVar12,dfa);\n                    t._4_1_ = 0x10;\n                    local_a4 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,local_a4,\n                                                 (re_token_t *)pbVar12,(re_dfa_t *)&t);\n                    if ((pbVar12 == (bin_tree_t *)0x0) || (local_a4 == (bin_tree_t *)0x0))\n                    goto LAB_00030be0;\n                    iVar10 = iVar10 + 1;\n                  } while (iVar10 <= (int)uVar23);" do (compound_statement "{\n                    pbVar12 = duplicate_tree(pbVar12,dfa);\n                    t._4_1_ = 0x10;\n                    local_a4 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,local_a4,\n                                                 (re_token_t *)pbVar12,(re_dfa_t *)&t);\n                    if ((pbVar12 == (bin_tree_t *)0x0) || (local_a4 == (bin_tree_t *)0x0))\n                    goto LAB_00030be0;\n                    iVar10 = iVar10 + 1;\n                  }" { (expression_statement "pbVar12 = duplicate_tree(pbVar12,dfa);" (assignment_expression "pbVar12 = duplicate_tree(pbVar12,dfa)" identifier = (call_expression "duplicate_tree(pbVar12,dfa)" identifier (argument_list "(pbVar12,dfa)" ( identifier , identifier )))) ;) (expression_statement "t._4_1_ = 0x10;" (assignment_expression "t._4_1_ = 0x10" (field_expression "t._4_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "local_a4 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,local_a4,\n                                                 (re_token_t *)pbVar12,(re_dfa_t *)&t);" (assignment_expression "local_a4 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,local_a4,\n                                                 (re_token_t *)pbVar12,(re_dfa_t *)&t)" identifier = (call_expression "create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,local_a4,\n                                                 (re_token_t *)pbVar12,(re_dfa_t *)&t)" identifier (argument_list "((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,local_a4,\n                                                 (re_token_t *)pbVar12,(re_dfa_t *)&t)" ( (cast_expression "(re_dfa_t *)&dfa->str_tree_storage" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&dfa->str_tree_storage" & (field_expression "dfa->str_tree_storage" identifier -> field_identifier))) , (cast_expression "(bin_tree_t *)&dfa->str_tree_storage_idx" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&dfa->str_tree_storage_idx" & (field_expression "dfa->str_tree_storage_idx" identifier -> field_identifier))) , identifier , (cast_expression "(re_token_t *)pbVar12" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(re_dfa_t *)&t" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&t" & identifier)) )))) ;) (if_statement "if ((pbVar12 == (bin_tree_t *)0x0) || (local_a4 == (bin_tree_t *)0x0))\n                    goto LAB_00030be0;" if (parenthesized_expression "((pbVar12 == (bin_tree_t *)0x0) || (local_a4 == (bin_tree_t *)0x0))" ( (binary_expression "(pbVar12 == (bin_tree_t *)0x0) || (local_a4 == (bin_tree_t *)0x0)" (parenthesized_expression "(pbVar12 == (bin_tree_t *)0x0)" ( (binary_expression "pbVar12 == (bin_tree_t *)0x0" identifier == (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(local_a4 == (bin_tree_t *)0x0)" ( (binary_expression "local_a4 == (bin_tree_t *)0x0" identifier == (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (goto_statement "goto LAB_00030be0;" goto statement_identifier ;)) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar10 <= (int)uVar23)" ( (binary_expression "iVar10 <= (int)uVar23" identifier <= (cast_expression "(int)uVar23" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "pbVar11 = local_a4;" (assignment_expression "pbVar11 = local_a4" identifier = identifier) ;) (if_statement "if (local_c0 != (bin_tree_t *)uVar23) goto LAB_00030e9c;" if (parenthesized_expression "(local_c0 != (bin_tree_t *)uVar23)" ( (binary_expression "local_c0 != (bin_tree_t *)uVar23" identifier != (cast_expression "(bin_tree_t *)uVar23" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (goto_statement "goto LAB_00030e9c;" goto statement_identifier ;)) (goto_statement "goto LAB_00030b08;" goto statement_identifier ;) })) (expression_statement "postorder(local_b0,free_tree,(void *)0x0);" (call_expression "postorder(local_b0,free_tree,(void *)0x0)" identifier (argument_list "(local_b0,free_tree,(void *)0x0)" ( identifier , identifier , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (if_statement "if (*err == _REG_NOERROR) goto LAB_00030d1e;" if (parenthesized_expression "(*err == _REG_NOERROR)" ( (binary_expression "*err == _REG_NOERROR" (pointer_expression "*err" * identifier) == identifier) )) (goto_statement "goto LAB_00030d1e;" goto statement_identifier ;)) (goto_statement "goto LAB_00030bea;" goto statement_identifier ;) })) (labeled_statement "LAB_00030cd8:\n            if ((syntax & 0x200000) == 0) {\n              if (token->field_0x4 != '\x02') goto LAB_00030e40;\n              *err = _REG_EBRACE;\n              goto LAB_00030e4a;\n            }" statement_identifier : (if_statement "if ((syntax & 0x200000) == 0) {\n              if (token->field_0x4 != '\x02') goto LAB_00030e40;\n              *err = _REG_EBRACE;\n              goto LAB_00030e4a;\n            }" if (parenthesized_expression "((syntax & 0x200000) == 0)" ( (binary_expression "(syntax & 0x200000) == 0" (parenthesized_expression "(syntax & 0x200000)" ( (binary_expression "syntax & 0x200000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              if (token->field_0x4 != '\x02') goto LAB_00030e40;\n              *err = _REG_EBRACE;\n              goto LAB_00030e4a;\n            }" { (if_statement "if (token->field_0x4 != '\x02') goto LAB_00030e40;" if (parenthesized_expression "(token->field_0x4 != '\x02')" ( (binary_expression "token->field_0x4 != '\x02'" (field_expression "token->field_0x4" identifier -> field_identifier) != (char_literal "'\x02'" ' escape_sequence ')) )) (goto_statement "goto LAB_00030e40;" goto statement_identifier ;)) (expression_statement "*err = _REG_EBRACE;" (assignment_expression "*err = _REG_EBRACE" (pointer_expression "*err" * identifier) = identifier) ;) (goto_statement "goto LAB_00030e4a;" goto statement_identifier ;) }))) (labeled_statement "LAB_00030ce9:\n            regexp->cur_idx = IVar26;" statement_identifier : (expression_statement "regexp->cur_idx = IVar26;" (assignment_expression "regexp->cur_idx = IVar26" (field_expression "regexp->cur_idx" identifier -> field_identifier) = identifier) ;)) (expression_statement "token->opr = aVar13;" (assignment_expression "token->opr = aVar13" (field_expression "token->opr" identifier -> field_identifier) = identifier) ;) (expression_statement "*(undefined4 *)&token->field_0x4 = uVar4;" (assignment_expression "*(undefined4 *)&token->field_0x4 = uVar4" (pointer_expression "*(undefined4 *)&token->field_0x4" * (cast_expression "(undefined4 *)&token->field_0x4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&token->field_0x4" & (field_expression "token->field_0x4" identifier -> field_identifier)))) = identifier) ;) (expression_statement "token->field_0x4 = 1;" (assignment_expression "token->field_0x4 = 1" (field_expression "token->field_0x4" identifier -> field_identifier) = number_literal) ;) (expression_statement "pbVar11 = local_b0;" (assignment_expression "pbVar11 = local_b0" identifier = identifier) ;) (labeled_statement "LAB_00030af2:\n            if ((*err == _REG_NOERROR) || (pbVar11 != (bin_tree_t *)0x0)) goto LAB_00030b08;" statement_identifier : (if_statement "if ((*err == _REG_NOERROR) || (pbVar11 != (bin_tree_t *)0x0)) goto LAB_00030b08;" if (parenthesized_expression "((*err == _REG_NOERROR) || (pbVar11 != (bin_tree_t *)0x0))" ( (binary_expression "(*err == _REG_NOERROR) || (pbVar11 != (bin_tree_t *)0x0)" (parenthesized_expression "(*err == _REG_NOERROR)" ( (binary_expression "*err == _REG_NOERROR" (pointer_expression "*err" * identifier) == identifier) )) || (parenthesized_expression "(pbVar11 != (bin_tree_t *)0x0)" ( (binary_expression "pbVar11 != (bin_tree_t *)0x0" identifier != (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (goto_statement "goto LAB_00030b08;" goto statement_identifier ;))) }))) (labeled_statement "LAB_00030e4a:\n          if (local_b0 == (bin_tree_t *)0x0) goto _L3134;" statement_identifier : (if_statement "if (local_b0 == (bin_tree_t *)0x0) goto _L3134;" if (parenthesized_expression "(local_b0 == (bin_tree_t *)0x0)" ( (binary_expression "local_b0 == (bin_tree_t *)0x0" identifier == (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto _L3134;" goto statement_identifier ;))) (labeled_statement "LAB_00030bea:\n          postorder(local_b0,free_tree,(void *)0x0);" statement_identifier : (expression_statement "postorder(local_b0,free_tree,(void *)0x0);" (call_expression "postorder(local_b0,free_tree,(void *)0x0)" identifier (argument_list "(local_b0,free_tree,(void *)0x0)" ( identifier , identifier , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;)) (expression_statement "local_b0 = (bin_tree_t *)0x0;" (assignment_expression "local_b0 = (bin_tree_t *)0x0" identifier = (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00030965;" goto statement_identifier ;) })) (expression_statement "uVar23 = (uint)(bVar25 == 0x12);" (assignment_expression "uVar23 = (uint)(bVar25 == 0x12)" identifier = (call_expression "(uint)(bVar25 == 0x12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(bVar25 == 0x12)" ( (binary_expression "bVar25 == 0x12" identifier == number_literal) )))) ;) (if_statement "if (bVar25 == 0x13) {\n          iVar10 = peek_token(token,regexp,syntax);\n          regexp->cur_idx = regexp->cur_idx + iVar10;\n          if (local_b0 == (bin_tree_t *)0x0) goto LAB_00030d10;\n          if ((local_b0->token).field_0x4 == '\x11') {\n            local_c0 = (bin_tree_t *)0x1;\n            local_a4 = (bin_tree_t *)0x0;\n            goto LAB_00030c76;\n          }\n          local_c0 = (bin_tree_t *)0x1;\n          t._4_1_ = 10;\n          local_a4 = (bin_tree_t *)0x0;\nLAB_00030a18:\n          ppbVar1 = &dfa->str_tree_storage;\n          piVar2 = &dfa->str_tree_storage_idx;\n          pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar12,\n                                      (re_token_t *)0x0,(re_dfa_t *)&t);\n          if (pbVar11 == (bin_tree_t *)0x0) {\nLAB_00030be0:\n            *err = _REG_ESPACE;\n            goto LAB_00030bea;\n          }\n          for (iVar10 = uVar23 + 2; iVar10 <= (int)local_c0; iVar10 = iVar10 + 1) {\n            pbVar12 = duplicate_tree(pbVar12,dfa);\n            t._4_1_ = 0x10;\n            pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar11,\n                                        (re_token_t *)pbVar12,(re_dfa_t *)&t);\n            if ((pbVar12 == (bin_tree_t *)0x0) || (pbVar11 == (bin_tree_t *)0x0)) goto LAB_00030be0;\n            t._4_1_ = 10;\n            pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar11,\n                                        (re_token_t *)0x0,(re_dfa_t *)&t);\n            if (pbVar11 == (bin_tree_t *)0x0) goto LAB_00030be0;\n          }\n          if (local_a4 != (bin_tree_t *)0x0) {\n            t._4_1_ = 0x10;\n            pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,local_a4,\n                                        (re_token_t *)pbVar11,(re_dfa_t *)&t);\n            goto LAB_00030af2;\n          }\n        }\n        else {\n          iVar10 = peek_token(token,regexp,syntax);\n          regexp->cur_idx = regexp->cur_idx + iVar10;\n          if (local_b0 != (bin_tree_t *)0x0) {\n            if (bVar25 != 0x12) {\n              if ((local_b0->token).field_0x4 == '\x11') {\n                local_c0 = (bin_tree_t *)0xffffffff;\n                uVar23 = 0;\n                local_a4 = (bin_tree_t *)0x0;\nLAB_00030c76:\n                postorder(pbVar12,mark_opt_subexp,(pbVar12->token).opr.sbcset);\n                goto LAB_00030c8a;\n              }\n              local_c0 = (bin_tree_t *)0xffffffff;\n              uVar23 = 0;\n              local_a4 = (bin_tree_t *)0x0;\nLAB_00030a13:\n              t._4_1_ = 0xb;\n              goto LAB_00030a18;\n            }\n            local_c0 = (bin_tree_t *)0xffffffff;\n            uVar23 = 1;\nLAB_00030e9c:\n            pbVar12 = duplicate_tree(pbVar12,dfa);\n            if (pbVar12 != (bin_tree_t *)0x0) {\nLAB_00030eb9:\n              if ((pbVar12->token).field_0x4 == '\x11') goto LAB_00030c76;\nLAB_00030c8a:\n              if (local_c0 != (bin_tree_t *)0xffffffff) {\n                t._4_1_ = 10;\n                goto LAB_00030a18;\n              }\n              goto LAB_00030a13;\n            }\n            goto LAB_00030be0;\n          }\nLAB_00030d10:\n          if (*err != _REG_NOERROR) goto _L3134;\nLAB_00030d1e:\n          local_b0 = (bin_tree_t *)0x0;\n          pbVar11 = local_b0;\n        }" if (parenthesized_expression "(bVar25 == 0x13)" ( (binary_expression "bVar25 == 0x13" identifier == number_literal) )) (compound_statement "{\n          iVar10 = peek_token(token,regexp,syntax);\n          regexp->cur_idx = regexp->cur_idx + iVar10;\n          if (local_b0 == (bin_tree_t *)0x0) goto LAB_00030d10;\n          if ((local_b0->token).field_0x4 == '\x11') {\n            local_c0 = (bin_tree_t *)0x1;\n            local_a4 = (bin_tree_t *)0x0;\n            goto LAB_00030c76;\n          }\n          local_c0 = (bin_tree_t *)0x1;\n          t._4_1_ = 10;\n          local_a4 = (bin_tree_t *)0x0;\nLAB_00030a18:\n          ppbVar1 = &dfa->str_tree_storage;\n          piVar2 = &dfa->str_tree_storage_idx;\n          pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar12,\n                                      (re_token_t *)0x0,(re_dfa_t *)&t);\n          if (pbVar11 == (bin_tree_t *)0x0) {\nLAB_00030be0:\n            *err = _REG_ESPACE;\n            goto LAB_00030bea;\n          }\n          for (iVar10 = uVar23 + 2; iVar10 <= (int)local_c0; iVar10 = iVar10 + 1) {\n            pbVar12 = duplicate_tree(pbVar12,dfa);\n            t._4_1_ = 0x10;\n            pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar11,\n                                        (re_token_t *)pbVar12,(re_dfa_t *)&t);\n            if ((pbVar12 == (bin_tree_t *)0x0) || (pbVar11 == (bin_tree_t *)0x0)) goto LAB_00030be0;\n            t._4_1_ = 10;\n            pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar11,\n                                        (re_token_t *)0x0,(re_dfa_t *)&t);\n            if (pbVar11 == (bin_tree_t *)0x0) goto LAB_00030be0;\n          }\n          if (local_a4 != (bin_tree_t *)0x0) {\n            t._4_1_ = 0x10;\n            pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,local_a4,\n                                        (re_token_t *)pbVar11,(re_dfa_t *)&t);\n            goto LAB_00030af2;\n          }\n        }" { (expression_statement "iVar10 = peek_token(token,regexp,syntax);" (assignment_expression "iVar10 = peek_token(token,regexp,syntax)" identifier = (call_expression "peek_token(token,regexp,syntax)" identifier (argument_list "(token,regexp,syntax)" ( identifier , identifier , identifier )))) ;) (expression_statement "regexp->cur_idx = regexp->cur_idx + iVar10;" (assignment_expression "regexp->cur_idx = regexp->cur_idx + iVar10" (field_expression "regexp->cur_idx" identifier -> field_identifier) = (binary_expression "regexp->cur_idx + iVar10" (field_expression "regexp->cur_idx" identifier -> field_identifier) + identifier)) ;) (if_statement "if (local_b0 == (bin_tree_t *)0x0) goto LAB_00030d10;" if (parenthesized_expression "(local_b0 == (bin_tree_t *)0x0)" ( (binary_expression "local_b0 == (bin_tree_t *)0x0" identifier == (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00030d10;" goto statement_identifier ;)) (if_statement "if ((local_b0->token).field_0x4 == '\x11') {\n            local_c0 = (bin_tree_t *)0x1;\n            local_a4 = (bin_tree_t *)0x0;\n            goto LAB_00030c76;\n          }" if (parenthesized_expression "((local_b0->token).field_0x4 == '\x11')" ( (binary_expression "(local_b0->token).field_0x4 == '\x11'" (field_expression "(local_b0->token).field_0x4" (parenthesized_expression "(local_b0->token)" ( (field_expression "local_b0->token" identifier -> field_identifier) )) . field_identifier) == (char_literal "'\x11'" ' escape_sequence ')) )) (compound_statement "{\n            local_c0 = (bin_tree_t *)0x1;\n            local_a4 = (bin_tree_t *)0x0;\n            goto LAB_00030c76;\n          }" { (expression_statement "local_c0 = (bin_tree_t *)0x1;" (assignment_expression "local_c0 = (bin_tree_t *)0x1" identifier = (cast_expression "(bin_tree_t *)0x1" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_a4 = (bin_tree_t *)0x0;" (assignment_expression "local_a4 = (bin_tree_t *)0x0" identifier = (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00030c76;" goto statement_identifier ;) })) (expression_statement "local_c0 = (bin_tree_t *)0x1;" (assignment_expression "local_c0 = (bin_tree_t *)0x1" identifier = (cast_expression "(bin_tree_t *)0x1" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "t._4_1_ = 10;" (assignment_expression "t._4_1_ = 10" (field_expression "t._4_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "local_a4 = (bin_tree_t *)0x0;" (assignment_expression "local_a4 = (bin_tree_t *)0x0" identifier = (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00030a18:\n          ppbVar1 = &dfa->str_tree_storage;" statement_identifier : (expression_statement "ppbVar1 = &dfa->str_tree_storage;" (assignment_expression "ppbVar1 = &dfa->str_tree_storage" identifier = (pointer_expression "&dfa->str_tree_storage" & (field_expression "dfa->str_tree_storage" identifier -> field_identifier))) ;)) (expression_statement "piVar2 = &dfa->str_tree_storage_idx;" (assignment_expression "piVar2 = &dfa->str_tree_storage_idx" identifier = (pointer_expression "&dfa->str_tree_storage_idx" & (field_expression "dfa->str_tree_storage_idx" identifier -> field_identifier))) ;) (expression_statement "pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar12,\n                                      (re_token_t *)0x0,(re_dfa_t *)&t);" (assignment_expression "pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar12,\n                                      (re_token_t *)0x0,(re_dfa_t *)&t)" identifier = (call_expression "create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar12,\n                                      (re_token_t *)0x0,(re_dfa_t *)&t)" identifier (argument_list "((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar12,\n                                      (re_token_t *)0x0,(re_dfa_t *)&t)" ( (cast_expression "(re_dfa_t *)ppbVar1" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(bin_tree_t *)piVar2" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (cast_expression "(re_token_t *)0x0" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(re_dfa_t *)&t" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&t" & identifier)) )))) ;) (if_statement "if (pbVar11 == (bin_tree_t *)0x0) {\nLAB_00030be0:\n            *err = _REG_ESPACE;\n            goto LAB_00030bea;\n          }" if (parenthesized_expression "(pbVar11 == (bin_tree_t *)0x0)" ( (binary_expression "pbVar11 == (bin_tree_t *)0x0" identifier == (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00030be0:\n            *err = _REG_ESPACE;\n            goto LAB_00030bea;\n          }" { (labeled_statement "LAB_00030be0:\n            *err = _REG_ESPACE;" statement_identifier : (expression_statement "*err = _REG_ESPACE;" (assignment_expression "*err = _REG_ESPACE" (pointer_expression "*err" * identifier) = identifier) ;)) (goto_statement "goto LAB_00030bea;" goto statement_identifier ;) })) (for_statement "for (iVar10 = uVar23 + 2; iVar10 <= (int)local_c0; iVar10 = iVar10 + 1) {\n            pbVar12 = duplicate_tree(pbVar12,dfa);\n            t._4_1_ = 0x10;\n            pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar11,\n                                        (re_token_t *)pbVar12,(re_dfa_t *)&t);\n            if ((pbVar12 == (bin_tree_t *)0x0) || (pbVar11 == (bin_tree_t *)0x0)) goto LAB_00030be0;\n            t._4_1_ = 10;\n            pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar11,\n                                        (re_token_t *)0x0,(re_dfa_t *)&t);\n            if (pbVar11 == (bin_tree_t *)0x0) goto LAB_00030be0;\n          }" for ( (assignment_expression "iVar10 = uVar23 + 2" identifier = (binary_expression "uVar23 + 2" identifier + number_literal)) ; (binary_expression "iVar10 <= (int)local_c0" identifier <= (cast_expression "(int)local_c0" ( (type_descriptor "int" primitive_type) ) identifier)) ; (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ) (compound_statement "{\n            pbVar12 = duplicate_tree(pbVar12,dfa);\n            t._4_1_ = 0x10;\n            pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar11,\n                                        (re_token_t *)pbVar12,(re_dfa_t *)&t);\n            if ((pbVar12 == (bin_tree_t *)0x0) || (pbVar11 == (bin_tree_t *)0x0)) goto LAB_00030be0;\n            t._4_1_ = 10;\n            pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar11,\n                                        (re_token_t *)0x0,(re_dfa_t *)&t);\n            if (pbVar11 == (bin_tree_t *)0x0) goto LAB_00030be0;\n          }" { (expression_statement "pbVar12 = duplicate_tree(pbVar12,dfa);" (assignment_expression "pbVar12 = duplicate_tree(pbVar12,dfa)" identifier = (call_expression "duplicate_tree(pbVar12,dfa)" identifier (argument_list "(pbVar12,dfa)" ( identifier , identifier )))) ;) (expression_statement "t._4_1_ = 0x10;" (assignment_expression "t._4_1_ = 0x10" (field_expression "t._4_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar11,\n                                        (re_token_t *)pbVar12,(re_dfa_t *)&t);" (assignment_expression "pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar11,\n                                        (re_token_t *)pbVar12,(re_dfa_t *)&t)" identifier = (call_expression "create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar11,\n                                        (re_token_t *)pbVar12,(re_dfa_t *)&t)" identifier (argument_list "((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar11,\n                                        (re_token_t *)pbVar12,(re_dfa_t *)&t)" ( (cast_expression "(re_dfa_t *)ppbVar1" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(bin_tree_t *)piVar2" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (cast_expression "(re_token_t *)pbVar12" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(re_dfa_t *)&t" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&t" & identifier)) )))) ;) (if_statement "if ((pbVar12 == (bin_tree_t *)0x0) || (pbVar11 == (bin_tree_t *)0x0)) goto LAB_00030be0;" if (parenthesized_expression "((pbVar12 == (bin_tree_t *)0x0) || (pbVar11 == (bin_tree_t *)0x0))" ( (binary_expression "(pbVar12 == (bin_tree_t *)0x0) || (pbVar11 == (bin_tree_t *)0x0)" (parenthesized_expression "(pbVar12 == (bin_tree_t *)0x0)" ( (binary_expression "pbVar12 == (bin_tree_t *)0x0" identifier == (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pbVar11 == (bin_tree_t *)0x0)" ( (binary_expression "pbVar11 == (bin_tree_t *)0x0" identifier == (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (goto_statement "goto LAB_00030be0;" goto statement_identifier ;)) (expression_statement "t._4_1_ = 10;" (assignment_expression "t._4_1_ = 10" (field_expression "t._4_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar11,\n                                        (re_token_t *)0x0,(re_dfa_t *)&t);" (assignment_expression "pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar11,\n                                        (re_token_t *)0x0,(re_dfa_t *)&t)" identifier = (call_expression "create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar11,\n                                        (re_token_t *)0x0,(re_dfa_t *)&t)" identifier (argument_list "((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,pbVar11,\n                                        (re_token_t *)0x0,(re_dfa_t *)&t)" ( (cast_expression "(re_dfa_t *)ppbVar1" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(bin_tree_t *)piVar2" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (cast_expression "(re_token_t *)0x0" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(re_dfa_t *)&t" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&t" & identifier)) )))) ;) (if_statement "if (pbVar11 == (bin_tree_t *)0x0) goto LAB_00030be0;" if (parenthesized_expression "(pbVar11 == (bin_tree_t *)0x0)" ( (binary_expression "pbVar11 == (bin_tree_t *)0x0" identifier == (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00030be0;" goto statement_identifier ;)) })) (if_statement "if (local_a4 != (bin_tree_t *)0x0) {\n            t._4_1_ = 0x10;\n            pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,local_a4,\n                                        (re_token_t *)pbVar11,(re_dfa_t *)&t);\n            goto LAB_00030af2;\n          }" if (parenthesized_expression "(local_a4 != (bin_tree_t *)0x0)" ( (binary_expression "local_a4 != (bin_tree_t *)0x0" identifier != (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            t._4_1_ = 0x10;\n            pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,local_a4,\n                                        (re_token_t *)pbVar11,(re_dfa_t *)&t);\n            goto LAB_00030af2;\n          }" { (expression_statement "t._4_1_ = 0x10;" (assignment_expression "t._4_1_ = 0x10" (field_expression "t._4_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,local_a4,\n                                        (re_token_t *)pbVar11,(re_dfa_t *)&t);" (assignment_expression "pbVar11 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,local_a4,\n                                        (re_token_t *)pbVar11,(re_dfa_t *)&t)" identifier = (call_expression "create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,local_a4,\n                                        (re_token_t *)pbVar11,(re_dfa_t *)&t)" identifier (argument_list "((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,local_a4,\n                                        (re_token_t *)pbVar11,(re_dfa_t *)&t)" ( (cast_expression "(re_dfa_t *)ppbVar1" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(bin_tree_t *)piVar2" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (cast_expression "(re_token_t *)pbVar11" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(re_dfa_t *)&t" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&t" & identifier)) )))) ;) (goto_statement "goto LAB_00030af2;" goto statement_identifier ;) })) }) (else_clause "else {\n          iVar10 = peek_token(token,regexp,syntax);\n          regexp->cur_idx = regexp->cur_idx + iVar10;\n          if (local_b0 != (bin_tree_t *)0x0) {\n            if (bVar25 != 0x12) {\n              if ((local_b0->token).field_0x4 == '\x11') {\n                local_c0 = (bin_tree_t *)0xffffffff;\n                uVar23 = 0;\n                local_a4 = (bin_tree_t *)0x0;\nLAB_00030c76:\n                postorder(pbVar12,mark_opt_subexp,(pbVar12->token).opr.sbcset);\n                goto LAB_00030c8a;\n              }\n              local_c0 = (bin_tree_t *)0xffffffff;\n              uVar23 = 0;\n              local_a4 = (bin_tree_t *)0x0;\nLAB_00030a13:\n              t._4_1_ = 0xb;\n              goto LAB_00030a18;\n            }\n            local_c0 = (bin_tree_t *)0xffffffff;\n            uVar23 = 1;\nLAB_00030e9c:\n            pbVar12 = duplicate_tree(pbVar12,dfa);\n            if (pbVar12 != (bin_tree_t *)0x0) {\nLAB_00030eb9:\n              if ((pbVar12->token).field_0x4 == '\x11') goto LAB_00030c76;\nLAB_00030c8a:\n              if (local_c0 != (bin_tree_t *)0xffffffff) {\n                t._4_1_ = 10;\n                goto LAB_00030a18;\n              }\n              goto LAB_00030a13;\n            }\n            goto LAB_00030be0;\n          }\nLAB_00030d10:\n          if (*err != _REG_NOERROR) goto _L3134;\nLAB_00030d1e:\n          local_b0 = (bin_tree_t *)0x0;\n          pbVar11 = local_b0;\n        }" else (compound_statement "{\n          iVar10 = peek_token(token,regexp,syntax);\n          regexp->cur_idx = regexp->cur_idx + iVar10;\n          if (local_b0 != (bin_tree_t *)0x0) {\n            if (bVar25 != 0x12) {\n              if ((local_b0->token).field_0x4 == '\x11') {\n                local_c0 = (bin_tree_t *)0xffffffff;\n                uVar23 = 0;\n                local_a4 = (bin_tree_t *)0x0;\nLAB_00030c76:\n                postorder(pbVar12,mark_opt_subexp,(pbVar12->token).opr.sbcset);\n                goto LAB_00030c8a;\n              }\n              local_c0 = (bin_tree_t *)0xffffffff;\n              uVar23 = 0;\n              local_a4 = (bin_tree_t *)0x0;\nLAB_00030a13:\n              t._4_1_ = 0xb;\n              goto LAB_00030a18;\n            }\n            local_c0 = (bin_tree_t *)0xffffffff;\n            uVar23 = 1;\nLAB_00030e9c:\n            pbVar12 = duplicate_tree(pbVar12,dfa);\n            if (pbVar12 != (bin_tree_t *)0x0) {\nLAB_00030eb9:\n              if ((pbVar12->token).field_0x4 == '\x11') goto LAB_00030c76;\nLAB_00030c8a:\n              if (local_c0 != (bin_tree_t *)0xffffffff) {\n                t._4_1_ = 10;\n                goto LAB_00030a18;\n              }\n              goto LAB_00030a13;\n            }\n            goto LAB_00030be0;\n          }\nLAB_00030d10:\n          if (*err != _REG_NOERROR) goto _L3134;\nLAB_00030d1e:\n          local_b0 = (bin_tree_t *)0x0;\n          pbVar11 = local_b0;\n        }" { (expression_statement "iVar10 = peek_token(token,regexp,syntax);" (assignment_expression "iVar10 = peek_token(token,regexp,syntax)" identifier = (call_expression "peek_token(token,regexp,syntax)" identifier (argument_list "(token,regexp,syntax)" ( identifier , identifier , identifier )))) ;) (expression_statement "regexp->cur_idx = regexp->cur_idx + iVar10;" (assignment_expression "regexp->cur_idx = regexp->cur_idx + iVar10" (field_expression "regexp->cur_idx" identifier -> field_identifier) = (binary_expression "regexp->cur_idx + iVar10" (field_expression "regexp->cur_idx" identifier -> field_identifier) + identifier)) ;) (if_statement "if (local_b0 != (bin_tree_t *)0x0) {\n            if (bVar25 != 0x12) {\n              if ((local_b0->token).field_0x4 == '\x11') {\n                local_c0 = (bin_tree_t *)0xffffffff;\n                uVar23 = 0;\n                local_a4 = (bin_tree_t *)0x0;\nLAB_00030c76:\n                postorder(pbVar12,mark_opt_subexp,(pbVar12->token).opr.sbcset);\n                goto LAB_00030c8a;\n              }\n              local_c0 = (bin_tree_t *)0xffffffff;\n              uVar23 = 0;\n              local_a4 = (bin_tree_t *)0x0;\nLAB_00030a13:\n              t._4_1_ = 0xb;\n              goto LAB_00030a18;\n            }\n            local_c0 = (bin_tree_t *)0xffffffff;\n            uVar23 = 1;\nLAB_00030e9c:\n            pbVar12 = duplicate_tree(pbVar12,dfa);\n            if (pbVar12 != (bin_tree_t *)0x0) {\nLAB_00030eb9:\n              if ((pbVar12->token).field_0x4 == '\x11') goto LAB_00030c76;\nLAB_00030c8a:\n              if (local_c0 != (bin_tree_t *)0xffffffff) {\n                t._4_1_ = 10;\n                goto LAB_00030a18;\n              }\n              goto LAB_00030a13;\n            }\n            goto LAB_00030be0;\n          }" if (parenthesized_expression "(local_b0 != (bin_tree_t *)0x0)" ( (binary_expression "local_b0 != (bin_tree_t *)0x0" identifier != (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (bVar25 != 0x12) {\n              if ((local_b0->token).field_0x4 == '\x11') {\n                local_c0 = (bin_tree_t *)0xffffffff;\n                uVar23 = 0;\n                local_a4 = (bin_tree_t *)0x0;\nLAB_00030c76:\n                postorder(pbVar12,mark_opt_subexp,(pbVar12->token).opr.sbcset);\n                goto LAB_00030c8a;\n              }\n              local_c0 = (bin_tree_t *)0xffffffff;\n              uVar23 = 0;\n              local_a4 = (bin_tree_t *)0x0;\nLAB_00030a13:\n              t._4_1_ = 0xb;\n              goto LAB_00030a18;\n            }\n            local_c0 = (bin_tree_t *)0xffffffff;\n            uVar23 = 1;\nLAB_00030e9c:\n            pbVar12 = duplicate_tree(pbVar12,dfa);\n            if (pbVar12 != (bin_tree_t *)0x0) {\nLAB_00030eb9:\n              if ((pbVar12->token).field_0x4 == '\x11') goto LAB_00030c76;\nLAB_00030c8a:\n              if (local_c0 != (bin_tree_t *)0xffffffff) {\n                t._4_1_ = 10;\n                goto LAB_00030a18;\n              }\n              goto LAB_00030a13;\n            }\n            goto LAB_00030be0;\n          }" { (if_statement "if (bVar25 != 0x12) {\n              if ((local_b0->token).field_0x4 == '\x11') {\n                local_c0 = (bin_tree_t *)0xffffffff;\n                uVar23 = 0;\n                local_a4 = (bin_tree_t *)0x0;\nLAB_00030c76:\n                postorder(pbVar12,mark_opt_subexp,(pbVar12->token).opr.sbcset);\n                goto LAB_00030c8a;\n              }\n              local_c0 = (bin_tree_t *)0xffffffff;\n              uVar23 = 0;\n              local_a4 = (bin_tree_t *)0x0;\nLAB_00030a13:\n              t._4_1_ = 0xb;\n              goto LAB_00030a18;\n            }" if (parenthesized_expression "(bVar25 != 0x12)" ( (binary_expression "bVar25 != 0x12" identifier != number_literal) )) (compound_statement "{\n              if ((local_b0->token).field_0x4 == '\x11') {\n                local_c0 = (bin_tree_t *)0xffffffff;\n                uVar23 = 0;\n                local_a4 = (bin_tree_t *)0x0;\nLAB_00030c76:\n                postorder(pbVar12,mark_opt_subexp,(pbVar12->token).opr.sbcset);\n                goto LAB_00030c8a;\n              }\n              local_c0 = (bin_tree_t *)0xffffffff;\n              uVar23 = 0;\n              local_a4 = (bin_tree_t *)0x0;\nLAB_00030a13:\n              t._4_1_ = 0xb;\n              goto LAB_00030a18;\n            }" { (if_statement "if ((local_b0->token).field_0x4 == '\x11') {\n                local_c0 = (bin_tree_t *)0xffffffff;\n                uVar23 = 0;\n                local_a4 = (bin_tree_t *)0x0;\nLAB_00030c76:\n                postorder(pbVar12,mark_opt_subexp,(pbVar12->token).opr.sbcset);\n                goto LAB_00030c8a;\n              }" if (parenthesized_expression "((local_b0->token).field_0x4 == '\x11')" ( (binary_expression "(local_b0->token).field_0x4 == '\x11'" (field_expression "(local_b0->token).field_0x4" (parenthesized_expression "(local_b0->token)" ( (field_expression "local_b0->token" identifier -> field_identifier) )) . field_identifier) == (char_literal "'\x11'" ' escape_sequence ')) )) (compound_statement "{\n                local_c0 = (bin_tree_t *)0xffffffff;\n                uVar23 = 0;\n                local_a4 = (bin_tree_t *)0x0;\nLAB_00030c76:\n                postorder(pbVar12,mark_opt_subexp,(pbVar12->token).opr.sbcset);\n                goto LAB_00030c8a;\n              }" { (expression_statement "local_c0 = (bin_tree_t *)0xffffffff;" (assignment_expression "local_c0 = (bin_tree_t *)0xffffffff" identifier = (cast_expression "(bin_tree_t *)0xffffffff" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" identifier = number_literal) ;) (expression_statement "local_a4 = (bin_tree_t *)0x0;" (assignment_expression "local_a4 = (bin_tree_t *)0x0" identifier = (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00030c76:\n                postorder(pbVar12,mark_opt_subexp,(pbVar12->token).opr.sbcset);" statement_identifier : (expression_statement "postorder(pbVar12,mark_opt_subexp,(pbVar12->token).opr.sbcset);" (call_expression "postorder(pbVar12,mark_opt_subexp,(pbVar12->token).opr.sbcset)" identifier (argument_list "(pbVar12,mark_opt_subexp,(pbVar12->token).opr.sbcset)" ( identifier , identifier , (field_expression "(pbVar12->token).opr.sbcset" (field_expression "(pbVar12->token).opr" (parenthesized_expression "(pbVar12->token)" ( (field_expression "pbVar12->token" identifier -> field_identifier) )) . field_identifier) . field_identifier) ))) ;)) (goto_statement "goto LAB_00030c8a;" goto statement_identifier ;) })) (expression_statement "local_c0 = (bin_tree_t *)0xffffffff;" (assignment_expression "local_c0 = (bin_tree_t *)0xffffffff" identifier = (cast_expression "(bin_tree_t *)0xffffffff" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar23 = 0;" (assignment_expression "uVar23 = 0" identifier = number_literal) ;) (expression_statement "local_a4 = (bin_tree_t *)0x0;" (assignment_expression "local_a4 = (bin_tree_t *)0x0" identifier = (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00030a13:\n              t._4_1_ = 0xb;" statement_identifier : (expression_statement "t._4_1_ = 0xb;" (assignment_expression "t._4_1_ = 0xb" (field_expression "t._4_1_" identifier . field_identifier) = number_literal) ;)) (goto_statement "goto LAB_00030a18;" goto statement_identifier ;) })) (expression_statement "local_c0 = (bin_tree_t *)0xffffffff;" (assignment_expression "local_c0 = (bin_tree_t *)0xffffffff" identifier = (cast_expression "(bin_tree_t *)0xffffffff" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar23 = 1;" (assignment_expression "uVar23 = 1" identifier = number_literal) ;) (labeled_statement "LAB_00030e9c:\n            pbVar12 = duplicate_tree(pbVar12,dfa);" statement_identifier : (expression_statement "pbVar12 = duplicate_tree(pbVar12,dfa);" (assignment_expression "pbVar12 = duplicate_tree(pbVar12,dfa)" identifier = (call_expression "duplicate_tree(pbVar12,dfa)" identifier (argument_list "(pbVar12,dfa)" ( identifier , identifier )))) ;)) (if_statement "if (pbVar12 != (bin_tree_t *)0x0) {\nLAB_00030eb9:\n              if ((pbVar12->token).field_0x4 == '\x11') goto LAB_00030c76;\nLAB_00030c8a:\n              if (local_c0 != (bin_tree_t *)0xffffffff) {\n                t._4_1_ = 10;\n                goto LAB_00030a18;\n              }\n              goto LAB_00030a13;\n            }" if (parenthesized_expression "(pbVar12 != (bin_tree_t *)0x0)" ( (binary_expression "pbVar12 != (bin_tree_t *)0x0" identifier != (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00030eb9:\n              if ((pbVar12->token).field_0x4 == '\x11') goto LAB_00030c76;\nLAB_00030c8a:\n              if (local_c0 != (bin_tree_t *)0xffffffff) {\n                t._4_1_ = 10;\n                goto LAB_00030a18;\n              }\n              goto LAB_00030a13;\n            }" { (labeled_statement "LAB_00030eb9:\n              if ((pbVar12->token).field_0x4 == '\x11') goto LAB_00030c76;" statement_identifier : (if_statement "if ((pbVar12->token).field_0x4 == '\x11') goto LAB_00030c76;" if (parenthesized_expression "((pbVar12->token).field_0x4 == '\x11')" ( (binary_expression "(pbVar12->token).field_0x4 == '\x11'" (field_expression "(pbVar12->token).field_0x4" (parenthesized_expression "(pbVar12->token)" ( (field_expression "pbVar12->token" identifier -> field_identifier) )) . field_identifier) == (char_literal "'\x11'" ' escape_sequence ')) )) (goto_statement "goto LAB_00030c76;" goto statement_identifier ;))) (labeled_statement "LAB_00030c8a:\n              if (local_c0 != (bin_tree_t *)0xffffffff) {\n                t._4_1_ = 10;\n                goto LAB_00030a18;\n              }" statement_identifier : (if_statement "if (local_c0 != (bin_tree_t *)0xffffffff) {\n                t._4_1_ = 10;\n                goto LAB_00030a18;\n              }" if (parenthesized_expression "(local_c0 != (bin_tree_t *)0xffffffff)" ( (binary_expression "local_c0 != (bin_tree_t *)0xffffffff" identifier != (cast_expression "(bin_tree_t *)0xffffffff" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                t._4_1_ = 10;\n                goto LAB_00030a18;\n              }" { (expression_statement "t._4_1_ = 10;" (assignment_expression "t._4_1_ = 10" (field_expression "t._4_1_" identifier . field_identifier) = number_literal) ;) (goto_statement "goto LAB_00030a18;" goto statement_identifier ;) }))) (goto_statement "goto LAB_00030a13;" goto statement_identifier ;) })) (goto_statement "goto LAB_00030be0;" goto statement_identifier ;) })) (labeled_statement "LAB_00030d10:\n          if (*err != _REG_NOERROR) goto _L3134;" statement_identifier : (if_statement "if (*err != _REG_NOERROR) goto _L3134;" if (parenthesized_expression "(*err != _REG_NOERROR)" ( (binary_expression "*err != _REG_NOERROR" (pointer_expression "*err" * identifier) != identifier) )) (goto_statement "goto _L3134;" goto statement_identifier ;))) (labeled_statement "LAB_00030d1e:\n          local_b0 = (bin_tree_t *)0x0;" statement_identifier : (expression_statement "local_b0 = (bin_tree_t *)0x0;" (assignment_expression "local_b0 = (bin_tree_t *)0x0" identifier = (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pbVar11 = local_b0;" (assignment_expression "pbVar11 = local_b0" identifier = identifier) ;) }))) (labeled_statement "LAB_00030b08:\n        local_b0 = pbVar11;" statement_identifier : (expression_statement "local_b0 = pbVar11;" (assignment_expression "local_b0 = pbVar11" identifier = identifier) ;)) (expression_statement "bVar25 = token->field_0x4;" (assignment_expression "bVar25 = token->field_0x4" identifier = (field_expression "token->field_0x4" identifier -> field_identifier)) ;) (expression_statement "uVar23 = (uint)bVar25;" (assignment_expression "uVar23 = (uint)bVar25" identifier = (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) while (parenthesized_expression "(((syntax & 0x1000000) == 0) || ((bVar25 != 0xb && (bVar25 != 0x17))))" ( (binary_expression "((syntax & 0x1000000) == 0) || ((bVar25 != 0xb && (bVar25 != 0x17)))" (parenthesized_expression "((syntax & 0x1000000) == 0)" ( (binary_expression "(syntax & 0x1000000) == 0" (parenthesized_expression "(syntax & 0x1000000)" ( (binary_expression "syntax & 0x1000000" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "((bVar25 != 0xb && (bVar25 != 0x17)))" ( (parenthesized_expression "(bVar25 != 0xb && (bVar25 != 0x17))" ( (binary_expression "bVar25 != 0xb && (bVar25 != 0x17)" (binary_expression "bVar25 != 0xb" identifier != number_literal) && (parenthesized_expression "(bVar25 != 0x17)" ( (binary_expression "bVar25 != 0x17" identifier != number_literal) ))) )) ))) )) ;) (if_statement "if (local_b0 != (bin_tree_t *)0x0) {\n        postorder(local_b0,free_tree,(void *)0x0);\n      }" if (parenthesized_expression "(local_b0 != (bin_tree_t *)0x0)" ( (binary_expression "local_b0 != (bin_tree_t *)0x0" identifier != (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        postorder(local_b0,free_tree,(void *)0x0);\n      }" { (expression_statement "postorder(local_b0,free_tree,(void *)0x0);" (call_expression "postorder(local_b0,free_tree,(void *)0x0)" identifier (argument_list "(local_b0,free_tree,(void *)0x0)" ( identifier , identifier , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) })) (goto_statement "goto LAB_00030b48;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case '\v':" case (char_literal "'\v'" ' escape_sequence ') :) (case_statement "case '\x12':" case (char_literal "'\x12'" ' escape_sequence ') :) (case_statement "case '\x13':\n_L3121:\n    if ((syntax & 0x20) == 0) {\n      if ((syntax & 0x10) != 0) {\n        iVar10 = peek_token(token,regexp,syntax);\n        regexp->cur_idx = regexp->cur_idx + iVar10;\n        local_b0 = parse_expression(regexp,preg,token,syntax,nest,err);\n        goto LAB_00030965;\n      }\n      if (cVar9 == '\t') goto _L3123;\n      goto _L3118;\n    }\n    goto LAB_00030b48;" case (char_literal "'\x13'" ' escape_sequence ') : (labeled_statement "_L3121:\n    if ((syntax & 0x20) == 0) {\n      if ((syntax & 0x10) != 0) {\n        iVar10 = peek_token(token,regexp,syntax);\n        regexp->cur_idx = regexp->cur_idx + iVar10;\n        local_b0 = parse_expression(regexp,preg,token,syntax,nest,err);\n        goto LAB_00030965;\n      }\n      if (cVar9 == '\t') goto _L3123;\n      goto _L3118;\n    }" statement_identifier : (if_statement "if ((syntax & 0x20) == 0) {\n      if ((syntax & 0x10) != 0) {\n        iVar10 = peek_token(token,regexp,syntax);\n        regexp->cur_idx = regexp->cur_idx + iVar10;\n        local_b0 = parse_expression(regexp,preg,token,syntax,nest,err);\n        goto LAB_00030965;\n      }\n      if (cVar9 == '\t') goto _L3123;\n      goto _L3118;\n    }" if (parenthesized_expression "((syntax & 0x20) == 0)" ( (binary_expression "(syntax & 0x20) == 0" (parenthesized_expression "(syntax & 0x20)" ( (binary_expression "syntax & 0x20" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      if ((syntax & 0x10) != 0) {\n        iVar10 = peek_token(token,regexp,syntax);\n        regexp->cur_idx = regexp->cur_idx + iVar10;\n        local_b0 = parse_expression(regexp,preg,token,syntax,nest,err);\n        goto LAB_00030965;\n      }\n      if (cVar9 == '\t') goto _L3123;\n      goto _L3118;\n    }" { (if_statement "if ((syntax & 0x10) != 0) {\n        iVar10 = peek_token(token,regexp,syntax);\n        regexp->cur_idx = regexp->cur_idx + iVar10;\n        local_b0 = parse_expression(regexp,preg,token,syntax,nest,err);\n        goto LAB_00030965;\n      }" if (parenthesized_expression "((syntax & 0x10) != 0)" ( (binary_expression "(syntax & 0x10) != 0" (parenthesized_expression "(syntax & 0x10)" ( (binary_expression "syntax & 0x10" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        iVar10 = peek_token(token,regexp,syntax);\n        regexp->cur_idx = regexp->cur_idx + iVar10;\n        local_b0 = parse_expression(regexp,preg,token,syntax,nest,err);\n        goto LAB_00030965;\n      }" { (expression_statement "iVar10 = peek_token(token,regexp,syntax);" (assignment_expression "iVar10 = peek_token(token,regexp,syntax)" identifier = (call_expression "peek_token(token,regexp,syntax)" identifier (argument_list "(token,regexp,syntax)" ( identifier , identifier , identifier )))) ;) (expression_statement "regexp->cur_idx = regexp->cur_idx + iVar10;" (assignment_expression "regexp->cur_idx = regexp->cur_idx + iVar10" (field_expression "regexp->cur_idx" identifier -> field_identifier) = (binary_expression "regexp->cur_idx + iVar10" (field_expression "regexp->cur_idx" identifier -> field_identifier) + identifier)) ;) (expression_statement "local_b0 = parse_expression(regexp,preg,token,syntax,nest,err);" (assignment_expression "local_b0 = parse_expression(regexp,preg,token,syntax,nest,err)" identifier = (call_expression "parse_expression(regexp,preg,token,syntax,nest,err)" identifier (argument_list "(regexp,preg,token,syntax,nest,err)" ( identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (goto_statement "goto LAB_00030965;" goto statement_identifier ;) })) (if_statement "if (cVar9 == '\t') goto _L3123;" if (parenthesized_expression "(cVar9 == '\t')" ( (binary_expression "cVar9 == '\t'" identifier == (char_literal "'\t'" ' escape_sequence ')) )) (goto_statement "goto _L3123;" goto statement_identifier ;)) (goto_statement "goto _L3118;" goto statement_identifier ;) }))) (goto_statement "goto LAB_00030b48;" goto statement_identifier ;)) (case_statement "case '\f':\n    local_c0 = (bin_tree_t *)(token->opr).ctx_type;\n    if ((((uint)local_c0 & 0x30f) != 0) && (bVar25 = dfa->field_0x58, (bVar25 & 0x10) == 0)) {\n      dfa->field_0x58 = bVar25 | 0x10;\n      if ((bVar25 & 8) == 0) {\n        dfa->word_char[0] = 0;\n        dfa->word_char[1] = 0x3ff0000;\n        dfa->word_char[2] = 0x87fffffe;\n        dfa->word_char[3] = 0x7fffffe;\n        if ((bVar25 & 4) != 0) {\n          dfa->word_char[4] = 0;\n          dfa->word_char[5] = 0;\n          dfa->word_char[6] = 0;\n          dfa->word_char[7] = 0;\n          local_c0 = (bin_tree_t *)(token->opr).idx;\n          goto LAB_00031089;\n        }\n        iVar15 = 0x80;\n        iVar10 = 4;\n      }\n      else {\n        iVar15 = 0;\n        iVar10 = 0;\n      }\n      ppuVar17 = __ctype_b_loc();\n      pbVar21 = dfa->word_char + iVar10 + -0x18;\n      puVar18 = *ppuVar17 + iVar15;\n      do {\n        iVar10 = 0;\n        do {\n          if (((puVar18[iVar10] & 8) != 0) || (iVar15 + iVar10 == 0x5f)) {\n            pbVar21[0x18] = pbVar21[0x18] | 1 << ((byte)iVar10 & 0x1f);\n          }\n          iVar10 = iVar10 + 1;\n        } while (iVar10 != 0x20);\n        iVar15 = iVar15 + 0x20;\n        pbVar21 = pbVar21 + 1;\n        puVar18 = puVar18 + 0x20;\n      } while (&dfa->state_table != (re_state_table_entry **)pbVar21);\n    }\nLAB_00031089:\n    ppbVar1 = &dfa->str_tree_storage;\n    piVar2 = &dfa->str_tree_storage_idx;\n    if (((int)local_c0 - WORD_DELIM & 0xfffffeff) == 0) {\n      if (local_c0 == (bin_tree_t *)0x100) {\n        (token->opr).idx = 6;\n        local_c0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                     (re_token_t *)0x0,(re_dfa_t *)token);\n        (token->opr).idx = 9;\n      }\n      else {\n        (token->opr).idx = 5;\n        local_c0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                     (re_token_t *)0x0,(re_dfa_t *)token);\n        (token->opr).idx = 10;\n      }\n      pbVar12 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                  (re_token_t *)0x0,(re_dfa_t *)token);\n      t._4_1_ = 10;\n      local_b0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,local_c0,\n                                   (re_token_t *)pbVar12,(re_dfa_t *)&t);\n      if (local_c0 == (bin_tree_t *)0x0 || pbVar12 == (bin_tree_t *)0x0) break;\n    }\n    else {\n      local_b0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                   (re_token_t *)0x0,(re_dfa_t *)token);\n    }\n    if (local_b0 != (bin_tree_t *)0x0) {\n      iVar10 = peek_token(token,regexp,syntax);\n      regexp->cur_idx = regexp->cur_idx + iVar10;\n      goto LAB_00030965;\n    }\n    break;" case (char_literal "'\f'" ' escape_sequence ') : (expression_statement "local_c0 = (bin_tree_t *)(token->opr).ctx_type;" (assignment_expression "local_c0 = (bin_tree_t *)(token->opr).ctx_type" identifier = (cast_expression "(bin_tree_t *)(token->opr).ctx_type" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(token->opr).ctx_type" (parenthesized_expression "(token->opr)" ( (field_expression "token->opr" identifier -> field_identifier) )) . field_identifier))) ;) (if_statement "if ((((uint)local_c0 & 0x30f) != 0) && (bVar25 = dfa->field_0x58, (bVar25 & 0x10) == 0)) {\n      dfa->field_0x58 = bVar25 | 0x10;\n      if ((bVar25 & 8) == 0) {\n        dfa->word_char[0] = 0;\n        dfa->word_char[1] = 0x3ff0000;\n        dfa->word_char[2] = 0x87fffffe;\n        dfa->word_char[3] = 0x7fffffe;\n        if ((bVar25 & 4) != 0) {\n          dfa->word_char[4] = 0;\n          dfa->word_char[5] = 0;\n          dfa->word_char[6] = 0;\n          dfa->word_char[7] = 0;\n          local_c0 = (bin_tree_t *)(token->opr).idx;\n          goto LAB_00031089;\n        }\n        iVar15 = 0x80;\n        iVar10 = 4;\n      }\n      else {\n        iVar15 = 0;\n        iVar10 = 0;\n      }\n      ppuVar17 = __ctype_b_loc();\n      pbVar21 = dfa->word_char + iVar10 + -0x18;\n      puVar18 = *ppuVar17 + iVar15;\n      do {\n        iVar10 = 0;\n        do {\n          if (((puVar18[iVar10] & 8) != 0) || (iVar15 + iVar10 == 0x5f)) {\n            pbVar21[0x18] = pbVar21[0x18] | 1 << ((byte)iVar10 & 0x1f);\n          }\n          iVar10 = iVar10 + 1;\n        } while (iVar10 != 0x20);\n        iVar15 = iVar15 + 0x20;\n        pbVar21 = pbVar21 + 1;\n        puVar18 = puVar18 + 0x20;\n      } while (&dfa->state_table != (re_state_table_entry **)pbVar21);\n    }" if (parenthesized_expression "((((uint)local_c0 & 0x30f) != 0) && (bVar25 = dfa->field_0x58, (bVar25 & 0x10) == 0))" ( (binary_expression "(((uint)local_c0 & 0x30f) != 0) && (bVar25 = dfa->field_0x58, (bVar25 & 0x10) == 0)" (parenthesized_expression "(((uint)local_c0 & 0x30f) != 0)" ( (binary_expression "((uint)local_c0 & 0x30f) != 0" (parenthesized_expression "((uint)local_c0 & 0x30f)" ( (binary_expression "(uint)local_c0 & 0x30f" (cast_expression "(uint)local_c0" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) && (parenthesized_expression "(bVar25 = dfa->field_0x58, (bVar25 & 0x10) == 0)" ( (comma_expression "bVar25 = dfa->field_0x58, (bVar25 & 0x10) == 0" (assignment_expression "bVar25 = dfa->field_0x58" identifier = (field_expression "dfa->field_0x58" identifier -> field_identifier)) , (binary_expression "(bVar25 & 0x10) == 0" (parenthesized_expression "(bVar25 & 0x10)" ( (binary_expression "bVar25 & 0x10" identifier & number_literal) )) == number_literal)) ))) )) (compound_statement "{\n      dfa->field_0x58 = bVar25 | 0x10;\n      if ((bVar25 & 8) == 0) {\n        dfa->word_char[0] = 0;\n        dfa->word_char[1] = 0x3ff0000;\n        dfa->word_char[2] = 0x87fffffe;\n        dfa->word_char[3] = 0x7fffffe;\n        if ((bVar25 & 4) != 0) {\n          dfa->word_char[4] = 0;\n          dfa->word_char[5] = 0;\n          dfa->word_char[6] = 0;\n          dfa->word_char[7] = 0;\n          local_c0 = (bin_tree_t *)(token->opr).idx;\n          goto LAB_00031089;\n        }\n        iVar15 = 0x80;\n        iVar10 = 4;\n      }\n      else {\n        iVar15 = 0;\n        iVar10 = 0;\n      }\n      ppuVar17 = __ctype_b_loc();\n      pbVar21 = dfa->word_char + iVar10 + -0x18;\n      puVar18 = *ppuVar17 + iVar15;\n      do {\n        iVar10 = 0;\n        do {\n          if (((puVar18[iVar10] & 8) != 0) || (iVar15 + iVar10 == 0x5f)) {\n            pbVar21[0x18] = pbVar21[0x18] | 1 << ((byte)iVar10 & 0x1f);\n          }\n          iVar10 = iVar10 + 1;\n        } while (iVar10 != 0x20);\n        iVar15 = iVar15 + 0x20;\n        pbVar21 = pbVar21 + 1;\n        puVar18 = puVar18 + 0x20;\n      } while (&dfa->state_table != (re_state_table_entry **)pbVar21);\n    }" { (expression_statement "dfa->field_0x58 = bVar25 | 0x10;" (assignment_expression "dfa->field_0x58 = bVar25 | 0x10" (field_expression "dfa->field_0x58" identifier -> field_identifier) = (binary_expression "bVar25 | 0x10" identifier | number_literal)) ;) (if_statement "if ((bVar25 & 8) == 0) {\n        dfa->word_char[0] = 0;\n        dfa->word_char[1] = 0x3ff0000;\n        dfa->word_char[2] = 0x87fffffe;\n        dfa->word_char[3] = 0x7fffffe;\n        if ((bVar25 & 4) != 0) {\n          dfa->word_char[4] = 0;\n          dfa->word_char[5] = 0;\n          dfa->word_char[6] = 0;\n          dfa->word_char[7] = 0;\n          local_c0 = (bin_tree_t *)(token->opr).idx;\n          goto LAB_00031089;\n        }\n        iVar15 = 0x80;\n        iVar10 = 4;\n      }\n      else {\n        iVar15 = 0;\n        iVar10 = 0;\n      }" if (parenthesized_expression "((bVar25 & 8) == 0)" ( (binary_expression "(bVar25 & 8) == 0" (parenthesized_expression "(bVar25 & 8)" ( (binary_expression "bVar25 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        dfa->word_char[0] = 0;\n        dfa->word_char[1] = 0x3ff0000;\n        dfa->word_char[2] = 0x87fffffe;\n        dfa->word_char[3] = 0x7fffffe;\n        if ((bVar25 & 4) != 0) {\n          dfa->word_char[4] = 0;\n          dfa->word_char[5] = 0;\n          dfa->word_char[6] = 0;\n          dfa->word_char[7] = 0;\n          local_c0 = (bin_tree_t *)(token->opr).idx;\n          goto LAB_00031089;\n        }\n        iVar15 = 0x80;\n        iVar10 = 4;\n      }" { (expression_statement "dfa->word_char[0] = 0;" (assignment_expression "dfa->word_char[0] = 0" (subscript_expression "dfa->word_char[0]" (field_expression "dfa->word_char" identifier -> field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "dfa->word_char[1] = 0x3ff0000;" (assignment_expression "dfa->word_char[1] = 0x3ff0000" (subscript_expression "dfa->word_char[1]" (field_expression "dfa->word_char" identifier -> field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "dfa->word_char[2] = 0x87fffffe;" (assignment_expression "dfa->word_char[2] = 0x87fffffe" (subscript_expression "dfa->word_char[2]" (field_expression "dfa->word_char" identifier -> field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "dfa->word_char[3] = 0x7fffffe;" (assignment_expression "dfa->word_char[3] = 0x7fffffe" (subscript_expression "dfa->word_char[3]" (field_expression "dfa->word_char" identifier -> field_identifier) [ number_literal ]) = number_literal) ;) (if_statement "if ((bVar25 & 4) != 0) {\n          dfa->word_char[4] = 0;\n          dfa->word_char[5] = 0;\n          dfa->word_char[6] = 0;\n          dfa->word_char[7] = 0;\n          local_c0 = (bin_tree_t *)(token->opr).idx;\n          goto LAB_00031089;\n        }" if (parenthesized_expression "((bVar25 & 4) != 0)" ( (binary_expression "(bVar25 & 4) != 0" (parenthesized_expression "(bVar25 & 4)" ( (binary_expression "bVar25 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          dfa->word_char[4] = 0;\n          dfa->word_char[5] = 0;\n          dfa->word_char[6] = 0;\n          dfa->word_char[7] = 0;\n          local_c0 = (bin_tree_t *)(token->opr).idx;\n          goto LAB_00031089;\n        }" { (expression_statement "dfa->word_char[4] = 0;" (assignment_expression "dfa->word_char[4] = 0" (subscript_expression "dfa->word_char[4]" (field_expression "dfa->word_char" identifier -> field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "dfa->word_char[5] = 0;" (assignment_expression "dfa->word_char[5] = 0" (subscript_expression "dfa->word_char[5]" (field_expression "dfa->word_char" identifier -> field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "dfa->word_char[6] = 0;" (assignment_expression "dfa->word_char[6] = 0" (subscript_expression "dfa->word_char[6]" (field_expression "dfa->word_char" identifier -> field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "dfa->word_char[7] = 0;" (assignment_expression "dfa->word_char[7] = 0" (subscript_expression "dfa->word_char[7]" (field_expression "dfa->word_char" identifier -> field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "local_c0 = (bin_tree_t *)(token->opr).idx;" (assignment_expression "local_c0 = (bin_tree_t *)(token->opr).idx" identifier = (cast_expression "(bin_tree_t *)(token->opr).idx" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(token->opr).idx" (parenthesized_expression "(token->opr)" ( (field_expression "token->opr" identifier -> field_identifier) )) . field_identifier))) ;) (goto_statement "goto LAB_00031089;" goto statement_identifier ;) })) (expression_statement "iVar15 = 0x80;" (assignment_expression "iVar15 = 0x80" identifier = number_literal) ;) (expression_statement "iVar10 = 4;" (assignment_expression "iVar10 = 4" identifier = number_literal) ;) }) (else_clause "else {\n        iVar15 = 0;\n        iVar10 = 0;\n      }" else (compound_statement "{\n        iVar15 = 0;\n        iVar10 = 0;\n      }" { (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) }))) (expression_statement "ppuVar17 = __ctype_b_loc();" (assignment_expression "ppuVar17 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "pbVar21 = dfa->word_char + iVar10 + -0x18;" (assignment_expression "pbVar21 = dfa->word_char + iVar10 + -0x18" identifier = (binary_expression "dfa->word_char + iVar10 + -0x18" (binary_expression "dfa->word_char + iVar10" (field_expression "dfa->word_char" identifier -> field_identifier) + identifier) + number_literal)) ;) (expression_statement "puVar18 = *ppuVar17 + iVar15;" (assignment_expression "puVar18 = *ppuVar17 + iVar15" identifier = (binary_expression "*ppuVar17 + iVar15" (pointer_expression "*ppuVar17" * identifier) + identifier)) ;) (do_statement "do {\n        iVar10 = 0;\n        do {\n          if (((puVar18[iVar10] & 8) != 0) || (iVar15 + iVar10 == 0x5f)) {\n            pbVar21[0x18] = pbVar21[0x18] | 1 << ((byte)iVar10 & 0x1f);\n          }\n          iVar10 = iVar10 + 1;\n        } while (iVar10 != 0x20);\n        iVar15 = iVar15 + 0x20;\n        pbVar21 = pbVar21 + 1;\n        puVar18 = puVar18 + 0x20;\n      } while (&dfa->state_table != (re_state_table_entry **)pbVar21);" do (compound_statement "{\n        iVar10 = 0;\n        do {\n          if (((puVar18[iVar10] & 8) != 0) || (iVar15 + iVar10 == 0x5f)) {\n            pbVar21[0x18] = pbVar21[0x18] | 1 << ((byte)iVar10 & 0x1f);\n          }\n          iVar10 = iVar10 + 1;\n        } while (iVar10 != 0x20);\n        iVar15 = iVar15 + 0x20;\n        pbVar21 = pbVar21 + 1;\n        puVar18 = puVar18 + 0x20;\n      }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (do_statement "do {\n          if (((puVar18[iVar10] & 8) != 0) || (iVar15 + iVar10 == 0x5f)) {\n            pbVar21[0x18] = pbVar21[0x18] | 1 << ((byte)iVar10 & 0x1f);\n          }\n          iVar10 = iVar10 + 1;\n        } while (iVar10 != 0x20);" do (compound_statement "{\n          if (((puVar18[iVar10] & 8) != 0) || (iVar15 + iVar10 == 0x5f)) {\n            pbVar21[0x18] = pbVar21[0x18] | 1 << ((byte)iVar10 & 0x1f);\n          }\n          iVar10 = iVar10 + 1;\n        }" { (if_statement "if (((puVar18[iVar10] & 8) != 0) || (iVar15 + iVar10 == 0x5f)) {\n            pbVar21[0x18] = pbVar21[0x18] | 1 << ((byte)iVar10 & 0x1f);\n          }" if (parenthesized_expression "(((puVar18[iVar10] & 8) != 0) || (iVar15 + iVar10 == 0x5f))" ( (binary_expression "((puVar18[iVar10] & 8) != 0) || (iVar15 + iVar10 == 0x5f)" (parenthesized_expression "((puVar18[iVar10] & 8) != 0)" ( (binary_expression "(puVar18[iVar10] & 8) != 0" (parenthesized_expression "(puVar18[iVar10] & 8)" ( (binary_expression "puVar18[iVar10] & 8" (subscript_expression "puVar18[iVar10]" identifier [ identifier ]) & number_literal) )) != number_literal) )) || (parenthesized_expression "(iVar15 + iVar10 == 0x5f)" ( (binary_expression "iVar15 + iVar10 == 0x5f" (binary_expression "iVar15 + iVar10" identifier + identifier) == number_literal) ))) )) (compound_statement "{\n            pbVar21[0x18] = pbVar21[0x18] | 1 << ((byte)iVar10 & 0x1f);\n          }" { (expression_statement "pbVar21[0x18] = pbVar21[0x18] | 1 << ((byte)iVar10 & 0x1f);" (assignment_expression "pbVar21[0x18] = pbVar21[0x18] | 1 << ((byte)iVar10 & 0x1f)" (subscript_expression "pbVar21[0x18]" identifier [ number_literal ]) = (binary_expression "pbVar21[0x18] | 1 << ((byte)iVar10 & 0x1f)" (subscript_expression "pbVar21[0x18]" identifier [ number_literal ]) | (binary_expression "1 << ((byte)iVar10 & 0x1f)" number_literal << (parenthesized_expression "((byte)iVar10 & 0x1f)" ( (binary_expression "(byte)iVar10 & 0x1f" (cast_expression "(byte)iVar10" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))))) ;) })) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar10 != 0x20)" ( (binary_expression "iVar10 != 0x20" identifier != number_literal) )) ;) (expression_statement "iVar15 = iVar15 + 0x20;" (assignment_expression "iVar15 = iVar15 + 0x20" identifier = (binary_expression "iVar15 + 0x20" identifier + number_literal)) ;) (expression_statement "pbVar21 = pbVar21 + 1;" (assignment_expression "pbVar21 = pbVar21 + 1" identifier = (binary_expression "pbVar21 + 1" identifier + number_literal)) ;) (expression_statement "puVar18 = puVar18 + 0x20;" (assignment_expression "puVar18 = puVar18 + 0x20" identifier = (binary_expression "puVar18 + 0x20" identifier + number_literal)) ;) }) while (parenthesized_expression "(&dfa->state_table != (re_state_table_entry **)pbVar21)" ( (binary_expression "&dfa->state_table != (re_state_table_entry **)pbVar21" (pointer_expression "&dfa->state_table" & (field_expression "dfa->state_table" identifier -> field_identifier)) != (cast_expression "(re_state_table_entry **)pbVar21" ( (type_descriptor "re_state_table_entry **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) )) ;) })) (labeled_statement "LAB_00031089:\n    ppbVar1 = &dfa->str_tree_storage;" statement_identifier : (expression_statement "ppbVar1 = &dfa->str_tree_storage;" (assignment_expression "ppbVar1 = &dfa->str_tree_storage" identifier = (pointer_expression "&dfa->str_tree_storage" & (field_expression "dfa->str_tree_storage" identifier -> field_identifier))) ;)) (expression_statement "piVar2 = &dfa->str_tree_storage_idx;" (assignment_expression "piVar2 = &dfa->str_tree_storage_idx" identifier = (pointer_expression "&dfa->str_tree_storage_idx" & (field_expression "dfa->str_tree_storage_idx" identifier -> field_identifier))) ;) (if_statement "if (((int)local_c0 - WORD_DELIM & 0xfffffeff) == 0) {\n      if (local_c0 == (bin_tree_t *)0x100) {\n        (token->opr).idx = 6;\n        local_c0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                     (re_token_t *)0x0,(re_dfa_t *)token);\n        (token->opr).idx = 9;\n      }\n      else {\n        (token->opr).idx = 5;\n        local_c0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                     (re_token_t *)0x0,(re_dfa_t *)token);\n        (token->opr).idx = 10;\n      }\n      pbVar12 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                  (re_token_t *)0x0,(re_dfa_t *)token);\n      t._4_1_ = 10;\n      local_b0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,local_c0,\n                                   (re_token_t *)pbVar12,(re_dfa_t *)&t);\n      if (local_c0 == (bin_tree_t *)0x0 || pbVar12 == (bin_tree_t *)0x0) break;\n    }\n    else {\n      local_b0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                   (re_token_t *)0x0,(re_dfa_t *)token);\n    }" if (parenthesized_expression "(((int)local_c0 - WORD_DELIM & 0xfffffeff) == 0)" ( (binary_expression "((int)local_c0 - WORD_DELIM & 0xfffffeff) == 0" (parenthesized_expression "((int)local_c0 - WORD_DELIM & 0xfffffeff)" ( (binary_expression "(int)local_c0 - WORD_DELIM & 0xfffffeff" (binary_expression "(int)local_c0 - WORD_DELIM" (cast_expression "(int)local_c0" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      if (local_c0 == (bin_tree_t *)0x100) {\n        (token->opr).idx = 6;\n        local_c0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                     (re_token_t *)0x0,(re_dfa_t *)token);\n        (token->opr).idx = 9;\n      }\n      else {\n        (token->opr).idx = 5;\n        local_c0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                     (re_token_t *)0x0,(re_dfa_t *)token);\n        (token->opr).idx = 10;\n      }\n      pbVar12 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                  (re_token_t *)0x0,(re_dfa_t *)token);\n      t._4_1_ = 10;\n      local_b0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,local_c0,\n                                   (re_token_t *)pbVar12,(re_dfa_t *)&t);\n      if (local_c0 == (bin_tree_t *)0x0 || pbVar12 == (bin_tree_t *)0x0) break;\n    }" { (if_statement "if (local_c0 == (bin_tree_t *)0x100) {\n        (token->opr).idx = 6;\n        local_c0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                     (re_token_t *)0x0,(re_dfa_t *)token);\n        (token->opr).idx = 9;\n      }\n      else {\n        (token->opr).idx = 5;\n        local_c0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                     (re_token_t *)0x0,(re_dfa_t *)token);\n        (token->opr).idx = 10;\n      }" if (parenthesized_expression "(local_c0 == (bin_tree_t *)0x100)" ( (binary_expression "local_c0 == (bin_tree_t *)0x100" identifier == (cast_expression "(bin_tree_t *)0x100" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (token->opr).idx = 6;\n        local_c0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                     (re_token_t *)0x0,(re_dfa_t *)token);\n        (token->opr).idx = 9;\n      }" { (expression_statement "(token->opr).idx = 6;" (assignment_expression "(token->opr).idx = 6" (field_expression "(token->opr).idx" (parenthesized_expression "(token->opr)" ( (field_expression "token->opr" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "local_c0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                     (re_token_t *)0x0,(re_dfa_t *)token);" (assignment_expression "local_c0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                     (re_token_t *)0x0,(re_dfa_t *)token)" identifier = (call_expression "create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                     (re_token_t *)0x0,(re_dfa_t *)token)" identifier (argument_list "((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                     (re_token_t *)0x0,(re_dfa_t *)token)" ( (cast_expression "(re_dfa_t *)ppbVar1" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(bin_tree_t *)piVar2" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(re_token_t *)0x0" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(re_dfa_t *)token" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "(token->opr).idx = 9;" (assignment_expression "(token->opr).idx = 9" (field_expression "(token->opr).idx" (parenthesized_expression "(token->opr)" ( (field_expression "token->opr" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) }) (else_clause "else {\n        (token->opr).idx = 5;\n        local_c0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                     (re_token_t *)0x0,(re_dfa_t *)token);\n        (token->opr).idx = 10;\n      }" else (compound_statement "{\n        (token->opr).idx = 5;\n        local_c0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                     (re_token_t *)0x0,(re_dfa_t *)token);\n        (token->opr).idx = 10;\n      }" { (expression_statement "(token->opr).idx = 5;" (assignment_expression "(token->opr).idx = 5" (field_expression "(token->opr).idx" (parenthesized_expression "(token->opr)" ( (field_expression "token->opr" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "local_c0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                     (re_token_t *)0x0,(re_dfa_t *)token);" (assignment_expression "local_c0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                     (re_token_t *)0x0,(re_dfa_t *)token)" identifier = (call_expression "create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                     (re_token_t *)0x0,(re_dfa_t *)token)" identifier (argument_list "((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                     (re_token_t *)0x0,(re_dfa_t *)token)" ( (cast_expression "(re_dfa_t *)ppbVar1" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(bin_tree_t *)piVar2" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(re_token_t *)0x0" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(re_dfa_t *)token" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "(token->opr).idx = 10;" (assignment_expression "(token->opr).idx = 10" (field_expression "(token->opr).idx" (parenthesized_expression "(token->opr)" ( (field_expression "token->opr" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) }))) (expression_statement "pbVar12 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                  (re_token_t *)0x0,(re_dfa_t *)token);" (assignment_expression "pbVar12 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                  (re_token_t *)0x0,(re_dfa_t *)token)" identifier = (call_expression "create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                  (re_token_t *)0x0,(re_dfa_t *)token)" identifier (argument_list "((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                  (re_token_t *)0x0,(re_dfa_t *)token)" ( (cast_expression "(re_dfa_t *)ppbVar1" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(bin_tree_t *)piVar2" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(re_token_t *)0x0" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(re_dfa_t *)token" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "t._4_1_ = 10;" (assignment_expression "t._4_1_ = 10" (field_expression "t._4_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "local_b0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,local_c0,\n                                   (re_token_t *)pbVar12,(re_dfa_t *)&t);" (assignment_expression "local_b0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,local_c0,\n                                   (re_token_t *)pbVar12,(re_dfa_t *)&t)" identifier = (call_expression "create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,local_c0,\n                                   (re_token_t *)pbVar12,(re_dfa_t *)&t)" identifier (argument_list "((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,local_c0,\n                                   (re_token_t *)pbVar12,(re_dfa_t *)&t)" ( (cast_expression "(re_dfa_t *)ppbVar1" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(bin_tree_t *)piVar2" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (cast_expression "(re_token_t *)pbVar12" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(re_dfa_t *)&t" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&t" & identifier)) )))) ;) (if_statement "if (local_c0 == (bin_tree_t *)0x0 || pbVar12 == (bin_tree_t *)0x0) break;" if (parenthesized_expression "(local_c0 == (bin_tree_t *)0x0 || pbVar12 == (bin_tree_t *)0x0)" ( (binary_expression "local_c0 == (bin_tree_t *)0x0 || pbVar12 == (bin_tree_t *)0x0" (binary_expression "local_c0 == (bin_tree_t *)0x0" identifier == (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (binary_expression "pbVar12 == (bin_tree_t *)0x0" identifier == (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (break_statement "break;" break ;)) }) (else_clause "else {\n      local_b0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                   (re_token_t *)0x0,(re_dfa_t *)token);\n    }" else (compound_statement "{\n      local_b0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                   (re_token_t *)0x0,(re_dfa_t *)token);\n    }" { (expression_statement "local_b0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                   (re_token_t *)0x0,(re_dfa_t *)token);" (assignment_expression "local_b0 = create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                   (re_token_t *)0x0,(re_dfa_t *)token)" identifier = (call_expression "create_token_tree((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                   (re_token_t *)0x0,(re_dfa_t *)token)" identifier (argument_list "((re_dfa_t *)ppbVar1,(bin_tree_t *)piVar2,(bin_tree_t *)0x0,\n                                   (re_token_t *)0x0,(re_dfa_t *)token)" ( (cast_expression "(re_dfa_t *)ppbVar1" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(bin_tree_t *)piVar2" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(re_token_t *)0x0" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(re_dfa_t *)token" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) }))) (if_statement "if (local_b0 != (bin_tree_t *)0x0) {\n      iVar10 = peek_token(token,regexp,syntax);\n      regexp->cur_idx = regexp->cur_idx + iVar10;\n      goto LAB_00030965;\n    }" if (parenthesized_expression "(local_b0 != (bin_tree_t *)0x0)" ( (binary_expression "local_b0 != (bin_tree_t *)0x0" identifier != (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar10 = peek_token(token,regexp,syntax);\n      regexp->cur_idx = regexp->cur_idx + iVar10;\n      goto LAB_00030965;\n    }" { (expression_statement "iVar10 = peek_token(token,regexp,syntax);" (assignment_expression "iVar10 = peek_token(token,regexp,syntax)" identifier = (call_expression "peek_token(token,regexp,syntax)" identifier (argument_list "(token,regexp,syntax)" ( identifier , identifier , identifier )))) ;) (expression_statement "regexp->cur_idx = regexp->cur_idx + iVar10;" (assignment_expression "regexp->cur_idx = regexp->cur_idx + iVar10" (field_expression "regexp->cur_idx" identifier -> field_identifier) = (binary_expression "regexp->cur_idx + iVar10" (field_expression "regexp->cur_idx" identifier -> field_identifier) + identifier)) ;) (goto_statement "goto LAB_00030965;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case '\x14':\n    aVar13.sbcset = (re_bitset_ptr_t)calloc(0x20,1);\n    cset.sbcset = (re_bitset_ptr_t)calloc(0x28,1);\n    if (aVar13.sbcset == (uint *)0x0 || (re_charset_t *)cset.sbcset == (re_charset_t *)0x0) {\n      free(aVar13.sbcset);\n      free(cset.sbcset);\n      *err = _REG_ESPACE;\n      local_b0 = (bin_tree_t *)0x0;\n      goto LAB_00030965;\n    }\n    iVar10 = 0x31289;\n    local_c0 = (bin_tree_t *)peek_token_bracket(token,regexp,syntax);\n    cVar9 = token->field_0x4;\n    if (cVar9 != '\x02') {\n      bVar7 = false;\n      if (cVar9 != '\x19') {\nLAB_000312a6:\n        if (cVar9 == '\x15') {\n          token->field_0x4 = 1;\n        }\n        local_90 = 0;\n        syntax_00 = 1;\nLAB_000312e4:\n        start_elem.type = COLL_SYM;\n        start_elem.opr.name = start_name_buf;\n        rVar14 = parse_bracket_element\n                           (&start_elem,regexp,token,(int)local_c0,(re_dfa_t *)syntax,syntax_00,\n                            SUB41(iVar10,0));\n        if (rVar14 == _REG_NOERROR) {\n          iVar10 = peek_token_bracket(token,regexp,syntax);\n          if ((start_elem.type - EQUIV_CLASS & 0xfffffffd) == 0) {\nLAB_0003135b:\n            if (start_elem.type < (CHAR_CLASS|MB_CHAR)) {\n                    /* WARNING: Could not recover jumptable at 0x00031371. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar12 = (bin_tree_t *)\n                        (*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                  *(int *)(&UNK_0003ad38 + start_elem.type * 4)))();\n              return pbVar12;\n            }\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("0","lib/regcomp.c",0xcf3,"parse_bracket_exp");\n          }\n          if (token->field_0x4 == '\x02') {\nLAB_00031615:\n            *err = _REG_EBRACK;\n          }\n          else {\n            if (token->field_0x4 != '\x16') goto LAB_0003135b;\n            regexp->cur_idx = regexp->cur_idx + iVar10;\n            accept_hyphen = 0xc3;\n            iVar15 = peek_token_bracket(&t,regexp,syntax);\n            if (t._4_1_ == '\x02') goto LAB_00031615;\n            if (t._4_1_ == '\x15') {\n              regexp->cur_idx = regexp->cur_idx - iVar10;\n              token->field_0x4 = 1;\n              goto LAB_0003135b;\n            }\n            br_token._4_4_ = end_name_buf;\n            br_token.opr.idx = 3;\n            rVar14 = parse_bracket_element\n                               ((bracket_elem_t *)&br_token,regexp,&t,iVar15,(re_dfa_t *)syntax,1,\n                                (_Bool)accept_hyphen);\n            if (rVar14 == _REG_NOERROR) {\n              iVar10 = 0x31728;\n              local_c0 = (bin_tree_t *)peek_token_bracket(token,regexp,syntax);\n              aVar16.sbcset = cset.sbcset;\n              if (dfa->mb_cur_max < 2) {\n                aVar16.sbcset = (re_bitset_ptr_t)0x0;\n              }\n              if (((start_elem.type - EQUIV_CLASS & 0xfffffffd) == 0) ||\n                 ((br_token.opr.idx - 2U & 0xfffffffd) == 0)) {\nLAB_00031b91:\n                *err = _REG_ERANGE;\n              }\n              else {\n                if (start_elem.type != COLL_SYM) {\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) {\n                    uVar23 = 0xffffffff;\n                    pcVar24 = (char *)br_token._4_4_;\n                    do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');\n                    if (1 < ~uVar23 - 1) goto LAB_00031b44;\n                    b = '\0';\n                    if (start_elem.type == SB_CHAR) goto LAB_0003178a;\nLAB_000317a2:\n                    uVar22 = *(uchar *)br_token._4_4_;\n                  }\n                  else {\n                    if (start_elem.type == SB_CHAR) {\nLAB_0003178a:\n                      b = start_elem.opr.ch;\n                      goto LAB_0003178f;\n                    }\n                    b = '\0';\n                    uVar22 = '\0';\n                    uVar8 = '\0';\n                    if (br_token.opr.sbcset != (re_bitset_ptr_t)0x0) goto LAB_000317a5;\nLAB_00031b87:\n                    b = uVar8;\n                    uVar22 = br_token._4_1_;\n                  }\nLAB_000317a5:\n                  if ((start_elem.type == SB_CHAR) ||\n                     (aVar19 = start_elem.opr, start_elem.type == COLL_SYM)) {\n                    iVar10 = 0x31b70;\n                    aVar19.wch = parse_byte(b,aVar16.mbcset);\n                  }\n                  if ((br_token.opr.sbcset == (re_bitset_ptr_t)0x0) ||\n                     (local_8c = (uchar *)br_token._4_4_,\n                     br_token.opr.sbcset == (re_bitset_ptr_t)0x3)) {\n                    iVar10 = 0x31b5e;\n                    local_8c = (uchar *)parse_byte(uVar22,aVar16.mbcset);\n                  }\n                  if ((aVar19.name == (uchar *)0xffffffff) || (local_8c == (uchar *)0xffffffff))\n                  goto LAB_00031b44;\n                  if (((syntax & 0x10000) != 0) && (local_8c < aVar19.name)) goto LAB_00031b91;\n                  if ((re_charset_t *)aVar16.sbcset != (re_charset_t *)0x0) {\n                    iVar15 = (aVar16.mbcset)->nranges;\n                    __ptr = (aVar16.mbcset)->range_starts;\n                    if (iVar15 == local_90) {\n                      local_90 = local_90 * 2 + 1;\n                      iVar10 = local_90;\n                      __ptr = (wchar_t *)realloc(__ptr,local_90 * 4);\n                      __ptr_00 = (wchar_t *)realloc((aVar16.mbcset)->range_ends,local_90 * 4);\n                      if ((__ptr == (wchar_t *)0x0) || (__ptr_00 == (wchar_t *)0x0)) {\n                        free(__ptr);\n                        free(__ptr_00);\n                        *err = _REG_ESPACE;\n                        goto LAB_000314ef;\n                      }\n                      (aVar16.mbcset)->range_ends = __ptr_00;\n                      iVar15 = (aVar16.mbcset)->nranges;\n                      (aVar16.mbcset)->range_starts = __ptr;\n                    }\n                    ((anon_union_4_3_ebfdf496_for_opr *)(__ptr + iVar15))->name = (uchar *)aVar19;\n                    (aVar16.mbcset)->nranges = iVar15 + 1;\n                    (aVar16.mbcset)->range_ends[iVar15] = (wchar_t)local_8c;\n                  }\n                  puVar20 = (uchar *)0x0;\n                  do {\n                    if ((aVar19.name <= puVar20) && (puVar20 <= local_8c)) {\n                      aVar13.sbcset[(int)puVar20 >> 5] =\n                           aVar13.sbcset[(int)puVar20 >> 5] | 1 << ((byte)puVar20 & 0x1f);\n                    }\n                    puVar20 = puVar20 + 1;\n                  } while (puVar20 != (uchar *)0x100);\n                  *err = _REG_NOERROR;\n                  if (token->field_0x4 == '\x02') goto LAB_00031615;\n                  if (token->field_0x4 != '\x15') goto code_r0x000314d1;\n                  regexp->cur_idx = regexp->cur_idx + (int)local_c0;\n                  if (bVar7) {\n                    aVar16.sbcset = aVar13.sbcset;\n                    do {\n                      *aVar16.sbcset = ~*aVar16.sbcset;\n                      aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                    } while ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges != aVar16.sbcset);\n                  }\n                  iVar10 = dfa->mb_cur_max;\n                  if (1 < iVar10) {\n                    pbVar6 = dfa->sb_char;\n                    iVar15 = 0;\n                    do {\n                      aVar13.sbcset[iVar15] = aVar13.sbcset[iVar15] & pbVar6[iVar15];\n                      iVar15 = iVar15 + 1;\n                    } while (iVar15 != 8);\n                  }\n                  if ((((((cset.mbcset)->nmbchars != 0) || ((cset.mbcset)->ncoll_syms != 0)) ||\n                       ((cset.mbcset)->nequiv_classes != 0)) || ((cset.mbcset)->nranges != 0)) ||\n                     ((1 < iVar10 &&\n                      (((cset.mbcset)->nchar_classes != 0 || ((*(byte *)(cset.idx + 0x10) & 1) != 0)\n                       ))))) {\n                    dfa->field_0x58 = dfa->field_0x58 | 2;\n                    br_token._4_1_ = 6;\n                    br_token.opr.sbcset = cset.sbcset;\n                    local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                 (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                 (re_dfa_t *)&br_token);\n                    aVar16.sbcset = aVar13.sbcset;\n                    if (local_b0 != (bin_tree_t *)0x0) {\n                      while (*aVar16.sbcset == 0) {\n                        aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                        if ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges == aVar16.sbcset) {\n                          free(aVar13.sbcset);\n                          goto LAB_0003093e;\n                        }\n                      }\n                      br_token._4_1_ = 3;\n                      br_token.opr.sbcset = aVar13.sbcset;\n                      pbVar12 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                  (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                  (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                  (re_dfa_t *)&br_token);\n                      if (pbVar12 != (bin_tree_t *)0x0) {\n                        t._4_1_ = 10;\n                        dfa_1 = (re_dfa_t *)&t;\n                        goto LAB_000319aa;\n                      }\n                    }\nLAB_000319be:\n                    *err = _REG_ESPACE;\n                    goto LAB_000314ef;\n                  }\n                  free_charset(cset.mbcset);\n                  br_token._4_1_ = 3;\n                  dfa_1 = (re_dfa_t *)&br_token;\n                  pbVar12 = (bin_tree_t *)0x0;\n                  local_b0 = (bin_tree_t *)0x0;\n                  br_token.opr.sbcset = aVar13.sbcset;\nLAB_000319aa:\n                  local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                               (bin_tree_t *)&dfa->str_tree_storage_idx,pbVar12,\n                                               (re_token_t *)local_b0,dfa_1);\n                  if (local_b0 == (bin_tree_t *)0x0) goto LAB_000319be;\n                  goto LAB_0003093e;\n                }\n                uVar23 = 0xffffffff;\n                aVar19 = start_elem.opr;\n                do {\n                  if (uVar23 == 0) break;\n                  uVar23 = uVar23 - 1;\n                  uVar22 = *aVar19.name;\n                  aVar19.name = (uchar *)((char *)(aVar19.wch + L'\x01') + (uint)bVar25 * -2);\n                } while (uVar22 != '\0');\n                if (~uVar23 - 1 < 2) {\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) {\n                    uVar23 = 0xffffffff;\n                    pcVar24 = (char *)br_token._4_4_;\n                    do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');\n                    if (1 < ~uVar23 - 1) goto LAB_00031b44;\n                  }\n                  b = *start_elem.opr.name;\nLAB_0003178f:\n                  uVar8 = b;\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x0) goto LAB_00031b87;\n                  uVar22 = '\0';\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) goto LAB_000317a2;\n                  goto LAB_000317a5;\n                }\nLAB_00031b44:\n                *err = _REG_ECOLLATE;\n              }\n            }\n            else {\n              *err = rVar14;\n            }\n          }\n        }\n        else {\n          *err = rVar14;\n        }\n        goto LAB_000314ef;\n      }\n      *(byte *)(cset.idx + 0x10) = *(byte *)(cset.idx + 0x10) | 1;\n      if ((syntax & 0x100) != 0) {\n        *aVar13.sbcset = *aVar13.sbcset | 0x400;\n      }\n      regexp->cur_idx = regexp->cur_idx + (int)local_c0;\n      iVar10 = 0x315ee;\n      local_c0 = (bin_tree_t *)peek_token_bracket(token,regexp,syntax);\n      cVar9 = token->field_0x4;\n      if (cVar9 != '\x02') {\n        bVar7 = true;\n        goto LAB_000312a6;\n      }\n    }\n    *err = _REG_BADPAT;\nLAB_000314ef:\n    free(aVar13.sbcset);\n    free_charset(cset.mbcset);\n    if (*err == _REG_NOERROR) {\n      local_b0 = (bin_tree_t *)0x0;\n      goto LAB_0003093e;\n    }\n_L3134:\n    local_b0 = (bin_tree_t *)0x0;\n    goto LAB_00030965;" case (char_literal "'\x14'" ' escape_sequence ') : (expression_statement "aVar13.sbcset = (re_bitset_ptr_t)calloc(0x20,1);" (assignment_expression "aVar13.sbcset = (re_bitset_ptr_t)calloc(0x20,1)" (field_expression "aVar13.sbcset" identifier . field_identifier) = (cast_expression "(re_bitset_ptr_t)calloc(0x20,1)" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) (call_expression "calloc(0x20,1)" identifier (argument_list "(0x20,1)" ( number_literal , number_literal ))))) ;) (expression_statement "cset.sbcset = (re_bitset_ptr_t)calloc(0x28,1);" (assignment_expression "cset.sbcset = (re_bitset_ptr_t)calloc(0x28,1)" (field_expression "cset.sbcset" identifier . field_identifier) = (cast_expression "(re_bitset_ptr_t)calloc(0x28,1)" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) (call_expression "calloc(0x28,1)" identifier (argument_list "(0x28,1)" ( number_literal , number_literal ))))) ;) (if_statement "if (aVar13.sbcset == (uint *)0x0 || (re_charset_t *)cset.sbcset == (re_charset_t *)0x0) {\n      free(aVar13.sbcset);\n      free(cset.sbcset);\n      *err = _REG_ESPACE;\n      local_b0 = (bin_tree_t *)0x0;\n      goto LAB_00030965;\n    }" if (parenthesized_expression "(aVar13.sbcset == (uint *)0x0 || (re_charset_t *)cset.sbcset == (re_charset_t *)0x0)" ( (binary_expression "aVar13.sbcset == (uint *)0x0 || (re_charset_t *)cset.sbcset == (re_charset_t *)0x0" (binary_expression "aVar13.sbcset == (uint *)0x0" (field_expression "aVar13.sbcset" identifier . field_identifier) == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (binary_expression "(re_charset_t *)cset.sbcset == (re_charset_t *)0x0" (cast_expression "(re_charset_t *)cset.sbcset" ( (type_descriptor "re_charset_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "cset.sbcset" identifier . field_identifier)) == (cast_expression "(re_charset_t *)0x0" ( (type_descriptor "re_charset_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n      free(aVar13.sbcset);\n      free(cset.sbcset);\n      *err = _REG_ESPACE;\n      local_b0 = (bin_tree_t *)0x0;\n      goto LAB_00030965;\n    }" { (expression_statement "free(aVar13.sbcset);" (call_expression "free(aVar13.sbcset)" identifier (argument_list "(aVar13.sbcset)" ( (field_expression "aVar13.sbcset" identifier . field_identifier) ))) ;) (expression_statement "free(cset.sbcset);" (call_expression "free(cset.sbcset)" identifier (argument_list "(cset.sbcset)" ( (field_expression "cset.sbcset" identifier . field_identifier) ))) ;) (expression_statement "*err = _REG_ESPACE;" (assignment_expression "*err = _REG_ESPACE" (pointer_expression "*err" * identifier) = identifier) ;) (expression_statement "local_b0 = (bin_tree_t *)0x0;" (assignment_expression "local_b0 = (bin_tree_t *)0x0" identifier = (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00030965;" goto statement_identifier ;) })) (expression_statement "iVar10 = 0x31289;" (assignment_expression "iVar10 = 0x31289" identifier = number_literal) ;) (expression_statement "local_c0 = (bin_tree_t *)peek_token_bracket(token,regexp,syntax);" (assignment_expression "local_c0 = (bin_tree_t *)peek_token_bracket(token,regexp,syntax)" identifier = (cast_expression "(bin_tree_t *)peek_token_bracket(token,regexp,syntax)" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "peek_token_bracket(token,regexp,syntax)" identifier (argument_list "(token,regexp,syntax)" ( identifier , identifier , identifier ))))) ;) (expression_statement "cVar9 = token->field_0x4;" (assignment_expression "cVar9 = token->field_0x4" identifier = (field_expression "token->field_0x4" identifier -> field_identifier)) ;) (if_statement "if (cVar9 != '\x02') {\n      bVar7 = false;\n      if (cVar9 != '\x19') {\nLAB_000312a6:\n        if (cVar9 == '\x15') {\n          token->field_0x4 = 1;\n        }\n        local_90 = 0;\n        syntax_00 = 1;\nLAB_000312e4:\n        start_elem.type = COLL_SYM;\n        start_elem.opr.name = start_name_buf;\n        rVar14 = parse_bracket_element\n                           (&start_elem,regexp,token,(int)local_c0,(re_dfa_t *)syntax,syntax_00,\n                            SUB41(iVar10,0));\n        if (rVar14 == _REG_NOERROR) {\n          iVar10 = peek_token_bracket(token,regexp,syntax);\n          if ((start_elem.type - EQUIV_CLASS & 0xfffffffd) == 0) {\nLAB_0003135b:\n            if (start_elem.type < (CHAR_CLASS|MB_CHAR)) {\n                    /* WARNING: Could not recover jumptable at 0x00031371. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar12 = (bin_tree_t *)\n                        (*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                  *(int *)(&UNK_0003ad38 + start_elem.type * 4)))();\n              return pbVar12;\n            }\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("0","lib/regcomp.c",0xcf3,"parse_bracket_exp");\n          }\n          if (token->field_0x4 == '\x02') {\nLAB_00031615:\n            *err = _REG_EBRACK;\n          }\n          else {\n            if (token->field_0x4 != '\x16') goto LAB_0003135b;\n            regexp->cur_idx = regexp->cur_idx + iVar10;\n            accept_hyphen = 0xc3;\n            iVar15 = peek_token_bracket(&t,regexp,syntax);\n            if (t._4_1_ == '\x02') goto LAB_00031615;\n            if (t._4_1_ == '\x15') {\n              regexp->cur_idx = regexp->cur_idx - iVar10;\n              token->field_0x4 = 1;\n              goto LAB_0003135b;\n            }\n            br_token._4_4_ = end_name_buf;\n            br_token.opr.idx = 3;\n            rVar14 = parse_bracket_element\n                               ((bracket_elem_t *)&br_token,regexp,&t,iVar15,(re_dfa_t *)syntax,1,\n                                (_Bool)accept_hyphen);\n            if (rVar14 == _REG_NOERROR) {\n              iVar10 = 0x31728;\n              local_c0 = (bin_tree_t *)peek_token_bracket(token,regexp,syntax);\n              aVar16.sbcset = cset.sbcset;\n              if (dfa->mb_cur_max < 2) {\n                aVar16.sbcset = (re_bitset_ptr_t)0x0;\n              }\n              if (((start_elem.type - EQUIV_CLASS & 0xfffffffd) == 0) ||\n                 ((br_token.opr.idx - 2U & 0xfffffffd) == 0)) {\nLAB_00031b91:\n                *err = _REG_ERANGE;\n              }\n              else {\n                if (start_elem.type != COLL_SYM) {\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) {\n                    uVar23 = 0xffffffff;\n                    pcVar24 = (char *)br_token._4_4_;\n                    do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');\n                    if (1 < ~uVar23 - 1) goto LAB_00031b44;\n                    b = '\0';\n                    if (start_elem.type == SB_CHAR) goto LAB_0003178a;\nLAB_000317a2:\n                    uVar22 = *(uchar *)br_token._4_4_;\n                  }\n                  else {\n                    if (start_elem.type == SB_CHAR) {\nLAB_0003178a:\n                      b = start_elem.opr.ch;\n                      goto LAB_0003178f;\n                    }\n                    b = '\0';\n                    uVar22 = '\0';\n                    uVar8 = '\0';\n                    if (br_token.opr.sbcset != (re_bitset_ptr_t)0x0) goto LAB_000317a5;\nLAB_00031b87:\n                    b = uVar8;\n                    uVar22 = br_token._4_1_;\n                  }\nLAB_000317a5:\n                  if ((start_elem.type == SB_CHAR) ||\n                     (aVar19 = start_elem.opr, start_elem.type == COLL_SYM)) {\n                    iVar10 = 0x31b70;\n                    aVar19.wch = parse_byte(b,aVar16.mbcset);\n                  }\n                  if ((br_token.opr.sbcset == (re_bitset_ptr_t)0x0) ||\n                     (local_8c = (uchar *)br_token._4_4_,\n                     br_token.opr.sbcset == (re_bitset_ptr_t)0x3)) {\n                    iVar10 = 0x31b5e;\n                    local_8c = (uchar *)parse_byte(uVar22,aVar16.mbcset);\n                  }\n                  if ((aVar19.name == (uchar *)0xffffffff) || (local_8c == (uchar *)0xffffffff))\n                  goto LAB_00031b44;\n                  if (((syntax & 0x10000) != 0) && (local_8c < aVar19.name)) goto LAB_00031b91;\n                  if ((re_charset_t *)aVar16.sbcset != (re_charset_t *)0x0) {\n                    iVar15 = (aVar16.mbcset)->nranges;\n                    __ptr = (aVar16.mbcset)->range_starts;\n                    if (iVar15 == local_90) {\n                      local_90 = local_90 * 2 + 1;\n                      iVar10 = local_90;\n                      __ptr = (wchar_t *)realloc(__ptr,local_90 * 4);\n                      __ptr_00 = (wchar_t *)realloc((aVar16.mbcset)->range_ends,local_90 * 4);\n                      if ((__ptr == (wchar_t *)0x0) || (__ptr_00 == (wchar_t *)0x0)) {\n                        free(__ptr);\n                        free(__ptr_00);\n                        *err = _REG_ESPACE;\n                        goto LAB_000314ef;\n                      }\n                      (aVar16.mbcset)->range_ends = __ptr_00;\n                      iVar15 = (aVar16.mbcset)->nranges;\n                      (aVar16.mbcset)->range_starts = __ptr;\n                    }\n                    ((anon_union_4_3_ebfdf496_for_opr *)(__ptr + iVar15))->name = (uchar *)aVar19;\n                    (aVar16.mbcset)->nranges = iVar15 + 1;\n                    (aVar16.mbcset)->range_ends[iVar15] = (wchar_t)local_8c;\n                  }\n                  puVar20 = (uchar *)0x0;\n                  do {\n                    if ((aVar19.name <= puVar20) && (puVar20 <= local_8c)) {\n                      aVar13.sbcset[(int)puVar20 >> 5] =\n                           aVar13.sbcset[(int)puVar20 >> 5] | 1 << ((byte)puVar20 & 0x1f);\n                    }\n                    puVar20 = puVar20 + 1;\n                  } while (puVar20 != (uchar *)0x100);\n                  *err = _REG_NOERROR;\n                  if (token->field_0x4 == '\x02') goto LAB_00031615;\n                  if (token->field_0x4 != '\x15') goto code_r0x000314d1;\n                  regexp->cur_idx = regexp->cur_idx + (int)local_c0;\n                  if (bVar7) {\n                    aVar16.sbcset = aVar13.sbcset;\n                    do {\n                      *aVar16.sbcset = ~*aVar16.sbcset;\n                      aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                    } while ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges != aVar16.sbcset);\n                  }\n                  iVar10 = dfa->mb_cur_max;\n                  if (1 < iVar10) {\n                    pbVar6 = dfa->sb_char;\n                    iVar15 = 0;\n                    do {\n                      aVar13.sbcset[iVar15] = aVar13.sbcset[iVar15] & pbVar6[iVar15];\n                      iVar15 = iVar15 + 1;\n                    } while (iVar15 != 8);\n                  }\n                  if ((((((cset.mbcset)->nmbchars != 0) || ((cset.mbcset)->ncoll_syms != 0)) ||\n                       ((cset.mbcset)->nequiv_classes != 0)) || ((cset.mbcset)->nranges != 0)) ||\n                     ((1 < iVar10 &&\n                      (((cset.mbcset)->nchar_classes != 0 || ((*(byte *)(cset.idx + 0x10) & 1) != 0)\n                       ))))) {\n                    dfa->field_0x58 = dfa->field_0x58 | 2;\n                    br_token._4_1_ = 6;\n                    br_token.opr.sbcset = cset.sbcset;\n                    local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                 (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                 (re_dfa_t *)&br_token);\n                    aVar16.sbcset = aVar13.sbcset;\n                    if (local_b0 != (bin_tree_t *)0x0) {\n                      while (*aVar16.sbcset == 0) {\n                        aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                        if ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges == aVar16.sbcset) {\n                          free(aVar13.sbcset);\n                          goto LAB_0003093e;\n                        }\n                      }\n                      br_token._4_1_ = 3;\n                      br_token.opr.sbcset = aVar13.sbcset;\n                      pbVar12 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                  (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                  (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                  (re_dfa_t *)&br_token);\n                      if (pbVar12 != (bin_tree_t *)0x0) {\n                        t._4_1_ = 10;\n                        dfa_1 = (re_dfa_t *)&t;\n                        goto LAB_000319aa;\n                      }\n                    }\nLAB_000319be:\n                    *err = _REG_ESPACE;\n                    goto LAB_000314ef;\n                  }\n                  free_charset(cset.mbcset);\n                  br_token._4_1_ = 3;\n                  dfa_1 = (re_dfa_t *)&br_token;\n                  pbVar12 = (bin_tree_t *)0x0;\n                  local_b0 = (bin_tree_t *)0x0;\n                  br_token.opr.sbcset = aVar13.sbcset;\nLAB_000319aa:\n                  local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                               (bin_tree_t *)&dfa->str_tree_storage_idx,pbVar12,\n                                               (re_token_t *)local_b0,dfa_1);\n                  if (local_b0 == (bin_tree_t *)0x0) goto LAB_000319be;\n                  goto LAB_0003093e;\n                }\n                uVar23 = 0xffffffff;\n                aVar19 = start_elem.opr;\n                do {\n                  if (uVar23 == 0) break;\n                  uVar23 = uVar23 - 1;\n                  uVar22 = *aVar19.name;\n                  aVar19.name = (uchar *)((char *)(aVar19.wch + L'\x01') + (uint)bVar25 * -2);\n                } while (uVar22 != '\0');\n                if (~uVar23 - 1 < 2) {\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) {\n                    uVar23 = 0xffffffff;\n                    pcVar24 = (char *)br_token._4_4_;\n                    do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');\n                    if (1 < ~uVar23 - 1) goto LAB_00031b44;\n                  }\n                  b = *start_elem.opr.name;\nLAB_0003178f:\n                  uVar8 = b;\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x0) goto LAB_00031b87;\n                  uVar22 = '\0';\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) goto LAB_000317a2;\n                  goto LAB_000317a5;\n                }\nLAB_00031b44:\n                *err = _REG_ECOLLATE;\n              }\n            }\n            else {\n              *err = rVar14;\n            }\n          }\n        }\n        else {\n          *err = rVar14;\n        }\n        goto LAB_000314ef;\n      }\n      *(byte *)(cset.idx + 0x10) = *(byte *)(cset.idx + 0x10) | 1;\n      if ((syntax & 0x100) != 0) {\n        *aVar13.sbcset = *aVar13.sbcset | 0x400;\n      }\n      regexp->cur_idx = regexp->cur_idx + (int)local_c0;\n      iVar10 = 0x315ee;\n      local_c0 = (bin_tree_t *)peek_token_bracket(token,regexp,syntax);\n      cVar9 = token->field_0x4;\n      if (cVar9 != '\x02') {\n        bVar7 = true;\n        goto LAB_000312a6;\n      }\n    }" if (parenthesized_expression "(cVar9 != '\x02')" ( (binary_expression "cVar9 != '\x02'" identifier != (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n      bVar7 = false;\n      if (cVar9 != '\x19') {\nLAB_000312a6:\n        if (cVar9 == '\x15') {\n          token->field_0x4 = 1;\n        }\n        local_90 = 0;\n        syntax_00 = 1;\nLAB_000312e4:\n        start_elem.type = COLL_SYM;\n        start_elem.opr.name = start_name_buf;\n        rVar14 = parse_bracket_element\n                           (&start_elem,regexp,token,(int)local_c0,(re_dfa_t *)syntax,syntax_00,\n                            SUB41(iVar10,0));\n        if (rVar14 == _REG_NOERROR) {\n          iVar10 = peek_token_bracket(token,regexp,syntax);\n          if ((start_elem.type - EQUIV_CLASS & 0xfffffffd) == 0) {\nLAB_0003135b:\n            if (start_elem.type < (CHAR_CLASS|MB_CHAR)) {\n                    /* WARNING: Could not recover jumptable at 0x00031371. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar12 = (bin_tree_t *)\n                        (*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                  *(int *)(&UNK_0003ad38 + start_elem.type * 4)))();\n              return pbVar12;\n            }\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("0","lib/regcomp.c",0xcf3,"parse_bracket_exp");\n          }\n          if (token->field_0x4 == '\x02') {\nLAB_00031615:\n            *err = _REG_EBRACK;\n          }\n          else {\n            if (token->field_0x4 != '\x16') goto LAB_0003135b;\n            regexp->cur_idx = regexp->cur_idx + iVar10;\n            accept_hyphen = 0xc3;\n            iVar15 = peek_token_bracket(&t,regexp,syntax);\n            if (t._4_1_ == '\x02') goto LAB_00031615;\n            if (t._4_1_ == '\x15') {\n              regexp->cur_idx = regexp->cur_idx - iVar10;\n              token->field_0x4 = 1;\n              goto LAB_0003135b;\n            }\n            br_token._4_4_ = end_name_buf;\n            br_token.opr.idx = 3;\n            rVar14 = parse_bracket_element\n                               ((bracket_elem_t *)&br_token,regexp,&t,iVar15,(re_dfa_t *)syntax,1,\n                                (_Bool)accept_hyphen);\n            if (rVar14 == _REG_NOERROR) {\n              iVar10 = 0x31728;\n              local_c0 = (bin_tree_t *)peek_token_bracket(token,regexp,syntax);\n              aVar16.sbcset = cset.sbcset;\n              if (dfa->mb_cur_max < 2) {\n                aVar16.sbcset = (re_bitset_ptr_t)0x0;\n              }\n              if (((start_elem.type - EQUIV_CLASS & 0xfffffffd) == 0) ||\n                 ((br_token.opr.idx - 2U & 0xfffffffd) == 0)) {\nLAB_00031b91:\n                *err = _REG_ERANGE;\n              }\n              else {\n                if (start_elem.type != COLL_SYM) {\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) {\n                    uVar23 = 0xffffffff;\n                    pcVar24 = (char *)br_token._4_4_;\n                    do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');\n                    if (1 < ~uVar23 - 1) goto LAB_00031b44;\n                    b = '\0';\n                    if (start_elem.type == SB_CHAR) goto LAB_0003178a;\nLAB_000317a2:\n                    uVar22 = *(uchar *)br_token._4_4_;\n                  }\n                  else {\n                    if (start_elem.type == SB_CHAR) {\nLAB_0003178a:\n                      b = start_elem.opr.ch;\n                      goto LAB_0003178f;\n                    }\n                    b = '\0';\n                    uVar22 = '\0';\n                    uVar8 = '\0';\n                    if (br_token.opr.sbcset != (re_bitset_ptr_t)0x0) goto LAB_000317a5;\nLAB_00031b87:\n                    b = uVar8;\n                    uVar22 = br_token._4_1_;\n                  }\nLAB_000317a5:\n                  if ((start_elem.type == SB_CHAR) ||\n                     (aVar19 = start_elem.opr, start_elem.type == COLL_SYM)) {\n                    iVar10 = 0x31b70;\n                    aVar19.wch = parse_byte(b,aVar16.mbcset);\n                  }\n                  if ((br_token.opr.sbcset == (re_bitset_ptr_t)0x0) ||\n                     (local_8c = (uchar *)br_token._4_4_,\n                     br_token.opr.sbcset == (re_bitset_ptr_t)0x3)) {\n                    iVar10 = 0x31b5e;\n                    local_8c = (uchar *)parse_byte(uVar22,aVar16.mbcset);\n                  }\n                  if ((aVar19.name == (uchar *)0xffffffff) || (local_8c == (uchar *)0xffffffff))\n                  goto LAB_00031b44;\n                  if (((syntax & 0x10000) != 0) && (local_8c < aVar19.name)) goto LAB_00031b91;\n                  if ((re_charset_t *)aVar16.sbcset != (re_charset_t *)0x0) {\n                    iVar15 = (aVar16.mbcset)->nranges;\n                    __ptr = (aVar16.mbcset)->range_starts;\n                    if (iVar15 == local_90) {\n                      local_90 = local_90 * 2 + 1;\n                      iVar10 = local_90;\n                      __ptr = (wchar_t *)realloc(__ptr,local_90 * 4);\n                      __ptr_00 = (wchar_t *)realloc((aVar16.mbcset)->range_ends,local_90 * 4);\n                      if ((__ptr == (wchar_t *)0x0) || (__ptr_00 == (wchar_t *)0x0)) {\n                        free(__ptr);\n                        free(__ptr_00);\n                        *err = _REG_ESPACE;\n                        goto LAB_000314ef;\n                      }\n                      (aVar16.mbcset)->range_ends = __ptr_00;\n                      iVar15 = (aVar16.mbcset)->nranges;\n                      (aVar16.mbcset)->range_starts = __ptr;\n                    }\n                    ((anon_union_4_3_ebfdf496_for_opr *)(__ptr + iVar15))->name = (uchar *)aVar19;\n                    (aVar16.mbcset)->nranges = iVar15 + 1;\n                    (aVar16.mbcset)->range_ends[iVar15] = (wchar_t)local_8c;\n                  }\n                  puVar20 = (uchar *)0x0;\n                  do {\n                    if ((aVar19.name <= puVar20) && (puVar20 <= local_8c)) {\n                      aVar13.sbcset[(int)puVar20 >> 5] =\n                           aVar13.sbcset[(int)puVar20 >> 5] | 1 << ((byte)puVar20 & 0x1f);\n                    }\n                    puVar20 = puVar20 + 1;\n                  } while (puVar20 != (uchar *)0x100);\n                  *err = _REG_NOERROR;\n                  if (token->field_0x4 == '\x02') goto LAB_00031615;\n                  if (token->field_0x4 != '\x15') goto code_r0x000314d1;\n                  regexp->cur_idx = regexp->cur_idx + (int)local_c0;\n                  if (bVar7) {\n                    aVar16.sbcset = aVar13.sbcset;\n                    do {\n                      *aVar16.sbcset = ~*aVar16.sbcset;\n                      aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                    } while ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges != aVar16.sbcset);\n                  }\n                  iVar10 = dfa->mb_cur_max;\n                  if (1 < iVar10) {\n                    pbVar6 = dfa->sb_char;\n                    iVar15 = 0;\n                    do {\n                      aVar13.sbcset[iVar15] = aVar13.sbcset[iVar15] & pbVar6[iVar15];\n                      iVar15 = iVar15 + 1;\n                    } while (iVar15 != 8);\n                  }\n                  if ((((((cset.mbcset)->nmbchars != 0) || ((cset.mbcset)->ncoll_syms != 0)) ||\n                       ((cset.mbcset)->nequiv_classes != 0)) || ((cset.mbcset)->nranges != 0)) ||\n                     ((1 < iVar10 &&\n                      (((cset.mbcset)->nchar_classes != 0 || ((*(byte *)(cset.idx + 0x10) & 1) != 0)\n                       ))))) {\n                    dfa->field_0x58 = dfa->field_0x58 | 2;\n                    br_token._4_1_ = 6;\n                    br_token.opr.sbcset = cset.sbcset;\n                    local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                 (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                 (re_dfa_t *)&br_token);\n                    aVar16.sbcset = aVar13.sbcset;\n                    if (local_b0 != (bin_tree_t *)0x0) {\n                      while (*aVar16.sbcset == 0) {\n                        aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                        if ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges == aVar16.sbcset) {\n                          free(aVar13.sbcset);\n                          goto LAB_0003093e;\n                        }\n                      }\n                      br_token._4_1_ = 3;\n                      br_token.opr.sbcset = aVar13.sbcset;\n                      pbVar12 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                  (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                  (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                  (re_dfa_t *)&br_token);\n                      if (pbVar12 != (bin_tree_t *)0x0) {\n                        t._4_1_ = 10;\n                        dfa_1 = (re_dfa_t *)&t;\n                        goto LAB_000319aa;\n                      }\n                    }\nLAB_000319be:\n                    *err = _REG_ESPACE;\n                    goto LAB_000314ef;\n                  }\n                  free_charset(cset.mbcset);\n                  br_token._4_1_ = 3;\n                  dfa_1 = (re_dfa_t *)&br_token;\n                  pbVar12 = (bin_tree_t *)0x0;\n                  local_b0 = (bin_tree_t *)0x0;\n                  br_token.opr.sbcset = aVar13.sbcset;\nLAB_000319aa:\n                  local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                               (bin_tree_t *)&dfa->str_tree_storage_idx,pbVar12,\n                                               (re_token_t *)local_b0,dfa_1);\n                  if (local_b0 == (bin_tree_t *)0x0) goto LAB_000319be;\n                  goto LAB_0003093e;\n                }\n                uVar23 = 0xffffffff;\n                aVar19 = start_elem.opr;\n                do {\n                  if (uVar23 == 0) break;\n                  uVar23 = uVar23 - 1;\n                  uVar22 = *aVar19.name;\n                  aVar19.name = (uchar *)((char *)(aVar19.wch + L'\x01') + (uint)bVar25 * -2);\n                } while (uVar22 != '\0');\n                if (~uVar23 - 1 < 2) {\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) {\n                    uVar23 = 0xffffffff;\n                    pcVar24 = (char *)br_token._4_4_;\n                    do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');\n                    if (1 < ~uVar23 - 1) goto LAB_00031b44;\n                  }\n                  b = *start_elem.opr.name;\nLAB_0003178f:\n                  uVar8 = b;\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x0) goto LAB_00031b87;\n                  uVar22 = '\0';\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) goto LAB_000317a2;\n                  goto LAB_000317a5;\n                }\nLAB_00031b44:\n                *err = _REG_ECOLLATE;\n              }\n            }\n            else {\n              *err = rVar14;\n            }\n          }\n        }\n        else {\n          *err = rVar14;\n        }\n        goto LAB_000314ef;\n      }\n      *(byte *)(cset.idx + 0x10) = *(byte *)(cset.idx + 0x10) | 1;\n      if ((syntax & 0x100) != 0) {\n        *aVar13.sbcset = *aVar13.sbcset | 0x400;\n      }\n      regexp->cur_idx = regexp->cur_idx + (int)local_c0;\n      iVar10 = 0x315ee;\n      local_c0 = (bin_tree_t *)peek_token_bracket(token,regexp,syntax);\n      cVar9 = token->field_0x4;\n      if (cVar9 != '\x02') {\n        bVar7 = true;\n        goto LAB_000312a6;\n      }\n    }" { (expression_statement "bVar7 = false;" (assignment_expression "bVar7 = false" identifier = false) ;) (if_statement "if (cVar9 != '\x19') {\nLAB_000312a6:\n        if (cVar9 == '\x15') {\n          token->field_0x4 = 1;\n        }\n        local_90 = 0;\n        syntax_00 = 1;\nLAB_000312e4:\n        start_elem.type = COLL_SYM;\n        start_elem.opr.name = start_name_buf;\n        rVar14 = parse_bracket_element\n                           (&start_elem,regexp,token,(int)local_c0,(re_dfa_t *)syntax,syntax_00,\n                            SUB41(iVar10,0));\n        if (rVar14 == _REG_NOERROR) {\n          iVar10 = peek_token_bracket(token,regexp,syntax);\n          if ((start_elem.type - EQUIV_CLASS & 0xfffffffd) == 0) {\nLAB_0003135b:\n            if (start_elem.type < (CHAR_CLASS|MB_CHAR)) {\n                    /* WARNING: Could not recover jumptable at 0x00031371. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar12 = (bin_tree_t *)\n                        (*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                  *(int *)(&UNK_0003ad38 + start_elem.type * 4)))();\n              return pbVar12;\n            }\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("0","lib/regcomp.c",0xcf3,"parse_bracket_exp");\n          }\n          if (token->field_0x4 == '\x02') {\nLAB_00031615:\n            *err = _REG_EBRACK;\n          }\n          else {\n            if (token->field_0x4 != '\x16') goto LAB_0003135b;\n            regexp->cur_idx = regexp->cur_idx + iVar10;\n            accept_hyphen = 0xc3;\n            iVar15 = peek_token_bracket(&t,regexp,syntax);\n            if (t._4_1_ == '\x02') goto LAB_00031615;\n            if (t._4_1_ == '\x15') {\n              regexp->cur_idx = regexp->cur_idx - iVar10;\n              token->field_0x4 = 1;\n              goto LAB_0003135b;\n            }\n            br_token._4_4_ = end_name_buf;\n            br_token.opr.idx = 3;\n            rVar14 = parse_bracket_element\n                               ((bracket_elem_t *)&br_token,regexp,&t,iVar15,(re_dfa_t *)syntax,1,\n                                (_Bool)accept_hyphen);\n            if (rVar14 == _REG_NOERROR) {\n              iVar10 = 0x31728;\n              local_c0 = (bin_tree_t *)peek_token_bracket(token,regexp,syntax);\n              aVar16.sbcset = cset.sbcset;\n              if (dfa->mb_cur_max < 2) {\n                aVar16.sbcset = (re_bitset_ptr_t)0x0;\n              }\n              if (((start_elem.type - EQUIV_CLASS & 0xfffffffd) == 0) ||\n                 ((br_token.opr.idx - 2U & 0xfffffffd) == 0)) {\nLAB_00031b91:\n                *err = _REG_ERANGE;\n              }\n              else {\n                if (start_elem.type != COLL_SYM) {\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) {\n                    uVar23 = 0xffffffff;\n                    pcVar24 = (char *)br_token._4_4_;\n                    do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');\n                    if (1 < ~uVar23 - 1) goto LAB_00031b44;\n                    b = '\0';\n                    if (start_elem.type == SB_CHAR) goto LAB_0003178a;\nLAB_000317a2:\n                    uVar22 = *(uchar *)br_token._4_4_;\n                  }\n                  else {\n                    if (start_elem.type == SB_CHAR) {\nLAB_0003178a:\n                      b = start_elem.opr.ch;\n                      goto LAB_0003178f;\n                    }\n                    b = '\0';\n                    uVar22 = '\0';\n                    uVar8 = '\0';\n                    if (br_token.opr.sbcset != (re_bitset_ptr_t)0x0) goto LAB_000317a5;\nLAB_00031b87:\n                    b = uVar8;\n                    uVar22 = br_token._4_1_;\n                  }\nLAB_000317a5:\n                  if ((start_elem.type == SB_CHAR) ||\n                     (aVar19 = start_elem.opr, start_elem.type == COLL_SYM)) {\n                    iVar10 = 0x31b70;\n                    aVar19.wch = parse_byte(b,aVar16.mbcset);\n                  }\n                  if ((br_token.opr.sbcset == (re_bitset_ptr_t)0x0) ||\n                     (local_8c = (uchar *)br_token._4_4_,\n                     br_token.opr.sbcset == (re_bitset_ptr_t)0x3)) {\n                    iVar10 = 0x31b5e;\n                    local_8c = (uchar *)parse_byte(uVar22,aVar16.mbcset);\n                  }\n                  if ((aVar19.name == (uchar *)0xffffffff) || (local_8c == (uchar *)0xffffffff))\n                  goto LAB_00031b44;\n                  if (((syntax & 0x10000) != 0) && (local_8c < aVar19.name)) goto LAB_00031b91;\n                  if ((re_charset_t *)aVar16.sbcset != (re_charset_t *)0x0) {\n                    iVar15 = (aVar16.mbcset)->nranges;\n                    __ptr = (aVar16.mbcset)->range_starts;\n                    if (iVar15 == local_90) {\n                      local_90 = local_90 * 2 + 1;\n                      iVar10 = local_90;\n                      __ptr = (wchar_t *)realloc(__ptr,local_90 * 4);\n                      __ptr_00 = (wchar_t *)realloc((aVar16.mbcset)->range_ends,local_90 * 4);\n                      if ((__ptr == (wchar_t *)0x0) || (__ptr_00 == (wchar_t *)0x0)) {\n                        free(__ptr);\n                        free(__ptr_00);\n                        *err = _REG_ESPACE;\n                        goto LAB_000314ef;\n                      }\n                      (aVar16.mbcset)->range_ends = __ptr_00;\n                      iVar15 = (aVar16.mbcset)->nranges;\n                      (aVar16.mbcset)->range_starts = __ptr;\n                    }\n                    ((anon_union_4_3_ebfdf496_for_opr *)(__ptr + iVar15))->name = (uchar *)aVar19;\n                    (aVar16.mbcset)->nranges = iVar15 + 1;\n                    (aVar16.mbcset)->range_ends[iVar15] = (wchar_t)local_8c;\n                  }\n                  puVar20 = (uchar *)0x0;\n                  do {\n                    if ((aVar19.name <= puVar20) && (puVar20 <= local_8c)) {\n                      aVar13.sbcset[(int)puVar20 >> 5] =\n                           aVar13.sbcset[(int)puVar20 >> 5] | 1 << ((byte)puVar20 & 0x1f);\n                    }\n                    puVar20 = puVar20 + 1;\n                  } while (puVar20 != (uchar *)0x100);\n                  *err = _REG_NOERROR;\n                  if (token->field_0x4 == '\x02') goto LAB_00031615;\n                  if (token->field_0x4 != '\x15') goto code_r0x000314d1;\n                  regexp->cur_idx = regexp->cur_idx + (int)local_c0;\n                  if (bVar7) {\n                    aVar16.sbcset = aVar13.sbcset;\n                    do {\n                      *aVar16.sbcset = ~*aVar16.sbcset;\n                      aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                    } while ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges != aVar16.sbcset);\n                  }\n                  iVar10 = dfa->mb_cur_max;\n                  if (1 < iVar10) {\n                    pbVar6 = dfa->sb_char;\n                    iVar15 = 0;\n                    do {\n                      aVar13.sbcset[iVar15] = aVar13.sbcset[iVar15] & pbVar6[iVar15];\n                      iVar15 = iVar15 + 1;\n                    } while (iVar15 != 8);\n                  }\n                  if ((((((cset.mbcset)->nmbchars != 0) || ((cset.mbcset)->ncoll_syms != 0)) ||\n                       ((cset.mbcset)->nequiv_classes != 0)) || ((cset.mbcset)->nranges != 0)) ||\n                     ((1 < iVar10 &&\n                      (((cset.mbcset)->nchar_classes != 0 || ((*(byte *)(cset.idx + 0x10) & 1) != 0)\n                       ))))) {\n                    dfa->field_0x58 = dfa->field_0x58 | 2;\n                    br_token._4_1_ = 6;\n                    br_token.opr.sbcset = cset.sbcset;\n                    local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                 (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                 (re_dfa_t *)&br_token);\n                    aVar16.sbcset = aVar13.sbcset;\n                    if (local_b0 != (bin_tree_t *)0x0) {\n                      while (*aVar16.sbcset == 0) {\n                        aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                        if ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges == aVar16.sbcset) {\n                          free(aVar13.sbcset);\n                          goto LAB_0003093e;\n                        }\n                      }\n                      br_token._4_1_ = 3;\n                      br_token.opr.sbcset = aVar13.sbcset;\n                      pbVar12 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                  (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                  (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                  (re_dfa_t *)&br_token);\n                      if (pbVar12 != (bin_tree_t *)0x0) {\n                        t._4_1_ = 10;\n                        dfa_1 = (re_dfa_t *)&t;\n                        goto LAB_000319aa;\n                      }\n                    }\nLAB_000319be:\n                    *err = _REG_ESPACE;\n                    goto LAB_000314ef;\n                  }\n                  free_charset(cset.mbcset);\n                  br_token._4_1_ = 3;\n                  dfa_1 = (re_dfa_t *)&br_token;\n                  pbVar12 = (bin_tree_t *)0x0;\n                  local_b0 = (bin_tree_t *)0x0;\n                  br_token.opr.sbcset = aVar13.sbcset;\nLAB_000319aa:\n                  local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                               (bin_tree_t *)&dfa->str_tree_storage_idx,pbVar12,\n                                               (re_token_t *)local_b0,dfa_1);\n                  if (local_b0 == (bin_tree_t *)0x0) goto LAB_000319be;\n                  goto LAB_0003093e;\n                }\n                uVar23 = 0xffffffff;\n                aVar19 = start_elem.opr;\n                do {\n                  if (uVar23 == 0) break;\n                  uVar23 = uVar23 - 1;\n                  uVar22 = *aVar19.name;\n                  aVar19.name = (uchar *)((char *)(aVar19.wch + L'\x01') + (uint)bVar25 * -2);\n                } while (uVar22 != '\0');\n                if (~uVar23 - 1 < 2) {\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) {\n                    uVar23 = 0xffffffff;\n                    pcVar24 = (char *)br_token._4_4_;\n                    do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');\n                    if (1 < ~uVar23 - 1) goto LAB_00031b44;\n                  }\n                  b = *start_elem.opr.name;\nLAB_0003178f:\n                  uVar8 = b;\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x0) goto LAB_00031b87;\n                  uVar22 = '\0';\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) goto LAB_000317a2;\n                  goto LAB_000317a5;\n                }\nLAB_00031b44:\n                *err = _REG_ECOLLATE;\n              }\n            }\n            else {\n              *err = rVar14;\n            }\n          }\n        }\n        else {\n          *err = rVar14;\n        }\n        goto LAB_000314ef;\n      }" if (parenthesized_expression "(cVar9 != '\x19')" ( (binary_expression "cVar9 != '\x19'" identifier != (char_literal "'\x19'" ' escape_sequence ')) )) (compound_statement "{\nLAB_000312a6:\n        if (cVar9 == '\x15') {\n          token->field_0x4 = 1;\n        }\n        local_90 = 0;\n        syntax_00 = 1;\nLAB_000312e4:\n        start_elem.type = COLL_SYM;\n        start_elem.opr.name = start_name_buf;\n        rVar14 = parse_bracket_element\n                           (&start_elem,regexp,token,(int)local_c0,(re_dfa_t *)syntax,syntax_00,\n                            SUB41(iVar10,0));\n        if (rVar14 == _REG_NOERROR) {\n          iVar10 = peek_token_bracket(token,regexp,syntax);\n          if ((start_elem.type - EQUIV_CLASS & 0xfffffffd) == 0) {\nLAB_0003135b:\n            if (start_elem.type < (CHAR_CLASS|MB_CHAR)) {\n                    /* WARNING: Could not recover jumptable at 0x00031371. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar12 = (bin_tree_t *)\n                        (*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                  *(int *)(&UNK_0003ad38 + start_elem.type * 4)))();\n              return pbVar12;\n            }\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("0","lib/regcomp.c",0xcf3,"parse_bracket_exp");\n          }\n          if (token->field_0x4 == '\x02') {\nLAB_00031615:\n            *err = _REG_EBRACK;\n          }\n          else {\n            if (token->field_0x4 != '\x16') goto LAB_0003135b;\n            regexp->cur_idx = regexp->cur_idx + iVar10;\n            accept_hyphen = 0xc3;\n            iVar15 = peek_token_bracket(&t,regexp,syntax);\n            if (t._4_1_ == '\x02') goto LAB_00031615;\n            if (t._4_1_ == '\x15') {\n              regexp->cur_idx = regexp->cur_idx - iVar10;\n              token->field_0x4 = 1;\n              goto LAB_0003135b;\n            }\n            br_token._4_4_ = end_name_buf;\n            br_token.opr.idx = 3;\n            rVar14 = parse_bracket_element\n                               ((bracket_elem_t *)&br_token,regexp,&t,iVar15,(re_dfa_t *)syntax,1,\n                                (_Bool)accept_hyphen);\n            if (rVar14 == _REG_NOERROR) {\n              iVar10 = 0x31728;\n              local_c0 = (bin_tree_t *)peek_token_bracket(token,regexp,syntax);\n              aVar16.sbcset = cset.sbcset;\n              if (dfa->mb_cur_max < 2) {\n                aVar16.sbcset = (re_bitset_ptr_t)0x0;\n              }\n              if (((start_elem.type - EQUIV_CLASS & 0xfffffffd) == 0) ||\n                 ((br_token.opr.idx - 2U & 0xfffffffd) == 0)) {\nLAB_00031b91:\n                *err = _REG_ERANGE;\n              }\n              else {\n                if (start_elem.type != COLL_SYM) {\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) {\n                    uVar23 = 0xffffffff;\n                    pcVar24 = (char *)br_token._4_4_;\n                    do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');\n                    if (1 < ~uVar23 - 1) goto LAB_00031b44;\n                    b = '\0';\n                    if (start_elem.type == SB_CHAR) goto LAB_0003178a;\nLAB_000317a2:\n                    uVar22 = *(uchar *)br_token._4_4_;\n                  }\n                  else {\n                    if (start_elem.type == SB_CHAR) {\nLAB_0003178a:\n                      b = start_elem.opr.ch;\n                      goto LAB_0003178f;\n                    }\n                    b = '\0';\n                    uVar22 = '\0';\n                    uVar8 = '\0';\n                    if (br_token.opr.sbcset != (re_bitset_ptr_t)0x0) goto LAB_000317a5;\nLAB_00031b87:\n                    b = uVar8;\n                    uVar22 = br_token._4_1_;\n                  }\nLAB_000317a5:\n                  if ((start_elem.type == SB_CHAR) ||\n                     (aVar19 = start_elem.opr, start_elem.type == COLL_SYM)) {\n                    iVar10 = 0x31b70;\n                    aVar19.wch = parse_byte(b,aVar16.mbcset);\n                  }\n                  if ((br_token.opr.sbcset == (re_bitset_ptr_t)0x0) ||\n                     (local_8c = (uchar *)br_token._4_4_,\n                     br_token.opr.sbcset == (re_bitset_ptr_t)0x3)) {\n                    iVar10 = 0x31b5e;\n                    local_8c = (uchar *)parse_byte(uVar22,aVar16.mbcset);\n                  }\n                  if ((aVar19.name == (uchar *)0xffffffff) || (local_8c == (uchar *)0xffffffff))\n                  goto LAB_00031b44;\n                  if (((syntax & 0x10000) != 0) && (local_8c < aVar19.name)) goto LAB_00031b91;\n                  if ((re_charset_t *)aVar16.sbcset != (re_charset_t *)0x0) {\n                    iVar15 = (aVar16.mbcset)->nranges;\n                    __ptr = (aVar16.mbcset)->range_starts;\n                    if (iVar15 == local_90) {\n                      local_90 = local_90 * 2 + 1;\n                      iVar10 = local_90;\n                      __ptr = (wchar_t *)realloc(__ptr,local_90 * 4);\n                      __ptr_00 = (wchar_t *)realloc((aVar16.mbcset)->range_ends,local_90 * 4);\n                      if ((__ptr == (wchar_t *)0x0) || (__ptr_00 == (wchar_t *)0x0)) {\n                        free(__ptr);\n                        free(__ptr_00);\n                        *err = _REG_ESPACE;\n                        goto LAB_000314ef;\n                      }\n                      (aVar16.mbcset)->range_ends = __ptr_00;\n                      iVar15 = (aVar16.mbcset)->nranges;\n                      (aVar16.mbcset)->range_starts = __ptr;\n                    }\n                    ((anon_union_4_3_ebfdf496_for_opr *)(__ptr + iVar15))->name = (uchar *)aVar19;\n                    (aVar16.mbcset)->nranges = iVar15 + 1;\n                    (aVar16.mbcset)->range_ends[iVar15] = (wchar_t)local_8c;\n                  }\n                  puVar20 = (uchar *)0x0;\n                  do {\n                    if ((aVar19.name <= puVar20) && (puVar20 <= local_8c)) {\n                      aVar13.sbcset[(int)puVar20 >> 5] =\n                           aVar13.sbcset[(int)puVar20 >> 5] | 1 << ((byte)puVar20 & 0x1f);\n                    }\n                    puVar20 = puVar20 + 1;\n                  } while (puVar20 != (uchar *)0x100);\n                  *err = _REG_NOERROR;\n                  if (token->field_0x4 == '\x02') goto LAB_00031615;\n                  if (token->field_0x4 != '\x15') goto code_r0x000314d1;\n                  regexp->cur_idx = regexp->cur_idx + (int)local_c0;\n                  if (bVar7) {\n                    aVar16.sbcset = aVar13.sbcset;\n                    do {\n                      *aVar16.sbcset = ~*aVar16.sbcset;\n                      aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                    } while ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges != aVar16.sbcset);\n                  }\n                  iVar10 = dfa->mb_cur_max;\n                  if (1 < iVar10) {\n                    pbVar6 = dfa->sb_char;\n                    iVar15 = 0;\n                    do {\n                      aVar13.sbcset[iVar15] = aVar13.sbcset[iVar15] & pbVar6[iVar15];\n                      iVar15 = iVar15 + 1;\n                    } while (iVar15 != 8);\n                  }\n                  if ((((((cset.mbcset)->nmbchars != 0) || ((cset.mbcset)->ncoll_syms != 0)) ||\n                       ((cset.mbcset)->nequiv_classes != 0)) || ((cset.mbcset)->nranges != 0)) ||\n                     ((1 < iVar10 &&\n                      (((cset.mbcset)->nchar_classes != 0 || ((*(byte *)(cset.idx + 0x10) & 1) != 0)\n                       ))))) {\n                    dfa->field_0x58 = dfa->field_0x58 | 2;\n                    br_token._4_1_ = 6;\n                    br_token.opr.sbcset = cset.sbcset;\n                    local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                 (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                 (re_dfa_t *)&br_token);\n                    aVar16.sbcset = aVar13.sbcset;\n                    if (local_b0 != (bin_tree_t *)0x0) {\n                      while (*aVar16.sbcset == 0) {\n                        aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                        if ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges == aVar16.sbcset) {\n                          free(aVar13.sbcset);\n                          goto LAB_0003093e;\n                        }\n                      }\n                      br_token._4_1_ = 3;\n                      br_token.opr.sbcset = aVar13.sbcset;\n                      pbVar12 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                  (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                  (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                  (re_dfa_t *)&br_token);\n                      if (pbVar12 != (bin_tree_t *)0x0) {\n                        t._4_1_ = 10;\n                        dfa_1 = (re_dfa_t *)&t;\n                        goto LAB_000319aa;\n                      }\n                    }\nLAB_000319be:\n                    *err = _REG_ESPACE;\n                    goto LAB_000314ef;\n                  }\n                  free_charset(cset.mbcset);\n                  br_token._4_1_ = 3;\n                  dfa_1 = (re_dfa_t *)&br_token;\n                  pbVar12 = (bin_tree_t *)0x0;\n                  local_b0 = (bin_tree_t *)0x0;\n                  br_token.opr.sbcset = aVar13.sbcset;\nLAB_000319aa:\n                  local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                               (bin_tree_t *)&dfa->str_tree_storage_idx,pbVar12,\n                                               (re_token_t *)local_b0,dfa_1);\n                  if (local_b0 == (bin_tree_t *)0x0) goto LAB_000319be;\n                  goto LAB_0003093e;\n                }\n                uVar23 = 0xffffffff;\n                aVar19 = start_elem.opr;\n                do {\n                  if (uVar23 == 0) break;\n                  uVar23 = uVar23 - 1;\n                  uVar22 = *aVar19.name;\n                  aVar19.name = (uchar *)((char *)(aVar19.wch + L'\x01') + (uint)bVar25 * -2);\n                } while (uVar22 != '\0');\n                if (~uVar23 - 1 < 2) {\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) {\n                    uVar23 = 0xffffffff;\n                    pcVar24 = (char *)br_token._4_4_;\n                    do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');\n                    if (1 < ~uVar23 - 1) goto LAB_00031b44;\n                  }\n                  b = *start_elem.opr.name;\nLAB_0003178f:\n                  uVar8 = b;\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x0) goto LAB_00031b87;\n                  uVar22 = '\0';\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) goto LAB_000317a2;\n                  goto LAB_000317a5;\n                }\nLAB_00031b44:\n                *err = _REG_ECOLLATE;\n              }\n            }\n            else {\n              *err = rVar14;\n            }\n          }\n        }\n        else {\n          *err = rVar14;\n        }\n        goto LAB_000314ef;\n      }" { (labeled_statement "LAB_000312a6:\n        if (cVar9 == '\x15') {\n          token->field_0x4 = 1;\n        }" statement_identifier : (if_statement "if (cVar9 == '\x15') {\n          token->field_0x4 = 1;\n        }" if (parenthesized_expression "(cVar9 == '\x15')" ( (binary_expression "cVar9 == '\x15'" identifier == (char_literal "'\x15'" ' escape_sequence ')) )) (compound_statement "{\n          token->field_0x4 = 1;\n        }" { (expression_statement "token->field_0x4 = 1;" (assignment_expression "token->field_0x4 = 1" (field_expression "token->field_0x4" identifier -> field_identifier) = number_literal) ;) }))) (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" identifier = number_literal) ;) (expression_statement "syntax_00 = 1;" (assignment_expression "syntax_00 = 1" identifier = number_literal) ;) (labeled_statement "LAB_000312e4:\n        start_elem.type = COLL_SYM;" statement_identifier : (expression_statement "start_elem.type = COLL_SYM;" (assignment_expression "start_elem.type = COLL_SYM" (field_expression "start_elem.type" identifier . field_identifier) = identifier) ;)) (expression_statement "start_elem.opr.name = start_name_buf;" (assignment_expression "start_elem.opr.name = start_name_buf" (field_expression "start_elem.opr.name" (field_expression "start_elem.opr" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "rVar14 = parse_bracket_element\n                           (&start_elem,regexp,token,(int)local_c0,(re_dfa_t *)syntax,syntax_00,\n                            SUB41(iVar10,0));" (assignment_expression "rVar14 = parse_bracket_element\n                           (&start_elem,regexp,token,(int)local_c0,(re_dfa_t *)syntax,syntax_00,\n                            SUB41(iVar10,0))" identifier = (call_expression "parse_bracket_element\n                           (&start_elem,regexp,token,(int)local_c0,(re_dfa_t *)syntax,syntax_00,\n                            SUB41(iVar10,0))" identifier (argument_list "(&start_elem,regexp,token,(int)local_c0,(re_dfa_t *)syntax,syntax_00,\n                            SUB41(iVar10,0))" ( (pointer_expression "&start_elem" & identifier) , identifier , identifier , (cast_expression "(int)local_c0" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(re_dfa_t *)syntax" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (call_expression "SUB41(iVar10,0)" identifier (argument_list "(iVar10,0)" ( identifier , number_literal ))) )))) ;) (if_statement "if (rVar14 == _REG_NOERROR) {\n          iVar10 = peek_token_bracket(token,regexp,syntax);\n          if ((start_elem.type - EQUIV_CLASS & 0xfffffffd) == 0) {\nLAB_0003135b:\n            if (start_elem.type < (CHAR_CLASS|MB_CHAR)) {\n                    /* WARNING: Could not recover jumptable at 0x00031371. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar12 = (bin_tree_t *)\n                        (*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                  *(int *)(&UNK_0003ad38 + start_elem.type * 4)))();\n              return pbVar12;\n            }\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("0","lib/regcomp.c",0xcf3,"parse_bracket_exp");\n          }\n          if (token->field_0x4 == '\x02') {\nLAB_00031615:\n            *err = _REG_EBRACK;\n          }\n          else {\n            if (token->field_0x4 != '\x16') goto LAB_0003135b;\n            regexp->cur_idx = regexp->cur_idx + iVar10;\n            accept_hyphen = 0xc3;\n            iVar15 = peek_token_bracket(&t,regexp,syntax);\n            if (t._4_1_ == '\x02') goto LAB_00031615;\n            if (t._4_1_ == '\x15') {\n              regexp->cur_idx = regexp->cur_idx - iVar10;\n              token->field_0x4 = 1;\n              goto LAB_0003135b;\n            }\n            br_token._4_4_ = end_name_buf;\n            br_token.opr.idx = 3;\n            rVar14 = parse_bracket_element\n                               ((bracket_elem_t *)&br_token,regexp,&t,iVar15,(re_dfa_t *)syntax,1,\n                                (_Bool)accept_hyphen);\n            if (rVar14 == _REG_NOERROR) {\n              iVar10 = 0x31728;\n              local_c0 = (bin_tree_t *)peek_token_bracket(token,regexp,syntax);\n              aVar16.sbcset = cset.sbcset;\n              if (dfa->mb_cur_max < 2) {\n                aVar16.sbcset = (re_bitset_ptr_t)0x0;\n              }\n              if (((start_elem.type - EQUIV_CLASS & 0xfffffffd) == 0) ||\n                 ((br_token.opr.idx - 2U & 0xfffffffd) == 0)) {\nLAB_00031b91:\n                *err = _REG_ERANGE;\n              }\n              else {\n                if (start_elem.type != COLL_SYM) {\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) {\n                    uVar23 = 0xffffffff;\n                    pcVar24 = (char *)br_token._4_4_;\n                    do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');\n                    if (1 < ~uVar23 - 1) goto LAB_00031b44;\n                    b = '\0';\n                    if (start_elem.type == SB_CHAR) goto LAB_0003178a;\nLAB_000317a2:\n                    uVar22 = *(uchar *)br_token._4_4_;\n                  }\n                  else {\n                    if (start_elem.type == SB_CHAR) {\nLAB_0003178a:\n                      b = start_elem.opr.ch;\n                      goto LAB_0003178f;\n                    }\n                    b = '\0';\n                    uVar22 = '\0';\n                    uVar8 = '\0';\n                    if (br_token.opr.sbcset != (re_bitset_ptr_t)0x0) goto LAB_000317a5;\nLAB_00031b87:\n                    b = uVar8;\n                    uVar22 = br_token._4_1_;\n                  }\nLAB_000317a5:\n                  if ((start_elem.type == SB_CHAR) ||\n                     (aVar19 = start_elem.opr, start_elem.type == COLL_SYM)) {\n                    iVar10 = 0x31b70;\n                    aVar19.wch = parse_byte(b,aVar16.mbcset);\n                  }\n                  if ((br_token.opr.sbcset == (re_bitset_ptr_t)0x0) ||\n                     (local_8c = (uchar *)br_token._4_4_,\n                     br_token.opr.sbcset == (re_bitset_ptr_t)0x3)) {\n                    iVar10 = 0x31b5e;\n                    local_8c = (uchar *)parse_byte(uVar22,aVar16.mbcset);\n                  }\n                  if ((aVar19.name == (uchar *)0xffffffff) || (local_8c == (uchar *)0xffffffff))\n                  goto LAB_00031b44;\n                  if (((syntax & 0x10000) != 0) && (local_8c < aVar19.name)) goto LAB_00031b91;\n                  if ((re_charset_t *)aVar16.sbcset != (re_charset_t *)0x0) {\n                    iVar15 = (aVar16.mbcset)->nranges;\n                    __ptr = (aVar16.mbcset)->range_starts;\n                    if (iVar15 == local_90) {\n                      local_90 = local_90 * 2 + 1;\n                      iVar10 = local_90;\n                      __ptr = (wchar_t *)realloc(__ptr,local_90 * 4);\n                      __ptr_00 = (wchar_t *)realloc((aVar16.mbcset)->range_ends,local_90 * 4);\n                      if ((__ptr == (wchar_t *)0x0) || (__ptr_00 == (wchar_t *)0x0)) {\n                        free(__ptr);\n                        free(__ptr_00);\n                        *err = _REG_ESPACE;\n                        goto LAB_000314ef;\n                      }\n                      (aVar16.mbcset)->range_ends = __ptr_00;\n                      iVar15 = (aVar16.mbcset)->nranges;\n                      (aVar16.mbcset)->range_starts = __ptr;\n                    }\n                    ((anon_union_4_3_ebfdf496_for_opr *)(__ptr + iVar15))->name = (uchar *)aVar19;\n                    (aVar16.mbcset)->nranges = iVar15 + 1;\n                    (aVar16.mbcset)->range_ends[iVar15] = (wchar_t)local_8c;\n                  }\n                  puVar20 = (uchar *)0x0;\n                  do {\n                    if ((aVar19.name <= puVar20) && (puVar20 <= local_8c)) {\n                      aVar13.sbcset[(int)puVar20 >> 5] =\n                           aVar13.sbcset[(int)puVar20 >> 5] | 1 << ((byte)puVar20 & 0x1f);\n                    }\n                    puVar20 = puVar20 + 1;\n                  } while (puVar20 != (uchar *)0x100);\n                  *err = _REG_NOERROR;\n                  if (token->field_0x4 == '\x02') goto LAB_00031615;\n                  if (token->field_0x4 != '\x15') goto code_r0x000314d1;\n                  regexp->cur_idx = regexp->cur_idx + (int)local_c0;\n                  if (bVar7) {\n                    aVar16.sbcset = aVar13.sbcset;\n                    do {\n                      *aVar16.sbcset = ~*aVar16.sbcset;\n                      aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                    } while ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges != aVar16.sbcset);\n                  }\n                  iVar10 = dfa->mb_cur_max;\n                  if (1 < iVar10) {\n                    pbVar6 = dfa->sb_char;\n                    iVar15 = 0;\n                    do {\n                      aVar13.sbcset[iVar15] = aVar13.sbcset[iVar15] & pbVar6[iVar15];\n                      iVar15 = iVar15 + 1;\n                    } while (iVar15 != 8);\n                  }\n                  if ((((((cset.mbcset)->nmbchars != 0) || ((cset.mbcset)->ncoll_syms != 0)) ||\n                       ((cset.mbcset)->nequiv_classes != 0)) || ((cset.mbcset)->nranges != 0)) ||\n                     ((1 < iVar10 &&\n                      (((cset.mbcset)->nchar_classes != 0 || ((*(byte *)(cset.idx + 0x10) & 1) != 0)\n                       ))))) {\n                    dfa->field_0x58 = dfa->field_0x58 | 2;\n                    br_token._4_1_ = 6;\n                    br_token.opr.sbcset = cset.sbcset;\n                    local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                 (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                 (re_dfa_t *)&br_token);\n                    aVar16.sbcset = aVar13.sbcset;\n                    if (local_b0 != (bin_tree_t *)0x0) {\n                      while (*aVar16.sbcset == 0) {\n                        aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                        if ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges == aVar16.sbcset) {\n                          free(aVar13.sbcset);\n                          goto LAB_0003093e;\n                        }\n                      }\n                      br_token._4_1_ = 3;\n                      br_token.opr.sbcset = aVar13.sbcset;\n                      pbVar12 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                  (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                  (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                  (re_dfa_t *)&br_token);\n                      if (pbVar12 != (bin_tree_t *)0x0) {\n                        t._4_1_ = 10;\n                        dfa_1 = (re_dfa_t *)&t;\n                        goto LAB_000319aa;\n                      }\n                    }\nLAB_000319be:\n                    *err = _REG_ESPACE;\n                    goto LAB_000314ef;\n                  }\n                  free_charset(cset.mbcset);\n                  br_token._4_1_ = 3;\n                  dfa_1 = (re_dfa_t *)&br_token;\n                  pbVar12 = (bin_tree_t *)0x0;\n                  local_b0 = (bin_tree_t *)0x0;\n                  br_token.opr.sbcset = aVar13.sbcset;\nLAB_000319aa:\n                  local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                               (bin_tree_t *)&dfa->str_tree_storage_idx,pbVar12,\n                                               (re_token_t *)local_b0,dfa_1);\n                  if (local_b0 == (bin_tree_t *)0x0) goto LAB_000319be;\n                  goto LAB_0003093e;\n                }\n                uVar23 = 0xffffffff;\n                aVar19 = start_elem.opr;\n                do {\n                  if (uVar23 == 0) break;\n                  uVar23 = uVar23 - 1;\n                  uVar22 = *aVar19.name;\n                  aVar19.name = (uchar *)((char *)(aVar19.wch + L'\x01') + (uint)bVar25 * -2);\n                } while (uVar22 != '\0');\n                if (~uVar23 - 1 < 2) {\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) {\n                    uVar23 = 0xffffffff;\n                    pcVar24 = (char *)br_token._4_4_;\n                    do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');\n                    if (1 < ~uVar23 - 1) goto LAB_00031b44;\n                  }\n                  b = *start_elem.opr.name;\nLAB_0003178f:\n                  uVar8 = b;\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x0) goto LAB_00031b87;\n                  uVar22 = '\0';\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) goto LAB_000317a2;\n                  goto LAB_000317a5;\n                }\nLAB_00031b44:\n                *err = _REG_ECOLLATE;\n              }\n            }\n            else {\n              *err = rVar14;\n            }\n          }\n        }\n        else {\n          *err = rVar14;\n        }" if (parenthesized_expression "(rVar14 == _REG_NOERROR)" ( (binary_expression "rVar14 == _REG_NOERROR" identifier == identifier) )) (compound_statement "{\n          iVar10 = peek_token_bracket(token,regexp,syntax);\n          if ((start_elem.type - EQUIV_CLASS & 0xfffffffd) == 0) {\nLAB_0003135b:\n            if (start_elem.type < (CHAR_CLASS|MB_CHAR)) {\n                    /* WARNING: Could not recover jumptable at 0x00031371. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar12 = (bin_tree_t *)\n                        (*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                  *(int *)(&UNK_0003ad38 + start_elem.type * 4)))();\n              return pbVar12;\n            }\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("0","lib/regcomp.c",0xcf3,"parse_bracket_exp");\n          }\n          if (token->field_0x4 == '\x02') {\nLAB_00031615:\n            *err = _REG_EBRACK;\n          }\n          else {\n            if (token->field_0x4 != '\x16') goto LAB_0003135b;\n            regexp->cur_idx = regexp->cur_idx + iVar10;\n            accept_hyphen = 0xc3;\n            iVar15 = peek_token_bracket(&t,regexp,syntax);\n            if (t._4_1_ == '\x02') goto LAB_00031615;\n            if (t._4_1_ == '\x15') {\n              regexp->cur_idx = regexp->cur_idx - iVar10;\n              token->field_0x4 = 1;\n              goto LAB_0003135b;\n            }\n            br_token._4_4_ = end_name_buf;\n            br_token.opr.idx = 3;\n            rVar14 = parse_bracket_element\n                               ((bracket_elem_t *)&br_token,regexp,&t,iVar15,(re_dfa_t *)syntax,1,\n                                (_Bool)accept_hyphen);\n            if (rVar14 == _REG_NOERROR) {\n              iVar10 = 0x31728;\n              local_c0 = (bin_tree_t *)peek_token_bracket(token,regexp,syntax);\n              aVar16.sbcset = cset.sbcset;\n              if (dfa->mb_cur_max < 2) {\n                aVar16.sbcset = (re_bitset_ptr_t)0x0;\n              }\n              if (((start_elem.type - EQUIV_CLASS & 0xfffffffd) == 0) ||\n                 ((br_token.opr.idx - 2U & 0xfffffffd) == 0)) {\nLAB_00031b91:\n                *err = _REG_ERANGE;\n              }\n              else {\n                if (start_elem.type != COLL_SYM) {\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) {\n                    uVar23 = 0xffffffff;\n                    pcVar24 = (char *)br_token._4_4_;\n                    do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');\n                    if (1 < ~uVar23 - 1) goto LAB_00031b44;\n                    b = '\0';\n                    if (start_elem.type == SB_CHAR) goto LAB_0003178a;\nLAB_000317a2:\n                    uVar22 = *(uchar *)br_token._4_4_;\n                  }\n                  else {\n                    if (start_elem.type == SB_CHAR) {\nLAB_0003178a:\n                      b = start_elem.opr.ch;\n                      goto LAB_0003178f;\n                    }\n                    b = '\0';\n                    uVar22 = '\0';\n                    uVar8 = '\0';\n                    if (br_token.opr.sbcset != (re_bitset_ptr_t)0x0) goto LAB_000317a5;\nLAB_00031b87:\n                    b = uVar8;\n                    uVar22 = br_token._4_1_;\n                  }\nLAB_000317a5:\n                  if ((start_elem.type == SB_CHAR) ||\n                     (aVar19 = start_elem.opr, start_elem.type == COLL_SYM)) {\n                    iVar10 = 0x31b70;\n                    aVar19.wch = parse_byte(b,aVar16.mbcset);\n                  }\n                  if ((br_token.opr.sbcset == (re_bitset_ptr_t)0x0) ||\n                     (local_8c = (uchar *)br_token._4_4_,\n                     br_token.opr.sbcset == (re_bitset_ptr_t)0x3)) {\n                    iVar10 = 0x31b5e;\n                    local_8c = (uchar *)parse_byte(uVar22,aVar16.mbcset);\n                  }\n                  if ((aVar19.name == (uchar *)0xffffffff) || (local_8c == (uchar *)0xffffffff))\n                  goto LAB_00031b44;\n                  if (((syntax & 0x10000) != 0) && (local_8c < aVar19.name)) goto LAB_00031b91;\n                  if ((re_charset_t *)aVar16.sbcset != (re_charset_t *)0x0) {\n                    iVar15 = (aVar16.mbcset)->nranges;\n                    __ptr = (aVar16.mbcset)->range_starts;\n                    if (iVar15 == local_90) {\n                      local_90 = local_90 * 2 + 1;\n                      iVar10 = local_90;\n                      __ptr = (wchar_t *)realloc(__ptr,local_90 * 4);\n                      __ptr_00 = (wchar_t *)realloc((aVar16.mbcset)->range_ends,local_90 * 4);\n                      if ((__ptr == (wchar_t *)0x0) || (__ptr_00 == (wchar_t *)0x0)) {\n                        free(__ptr);\n                        free(__ptr_00);\n                        *err = _REG_ESPACE;\n                        goto LAB_000314ef;\n                      }\n                      (aVar16.mbcset)->range_ends = __ptr_00;\n                      iVar15 = (aVar16.mbcset)->nranges;\n                      (aVar16.mbcset)->range_starts = __ptr;\n                    }\n                    ((anon_union_4_3_ebfdf496_for_opr *)(__ptr + iVar15))->name = (uchar *)aVar19;\n                    (aVar16.mbcset)->nranges = iVar15 + 1;\n                    (aVar16.mbcset)->range_ends[iVar15] = (wchar_t)local_8c;\n                  }\n                  puVar20 = (uchar *)0x0;\n                  do {\n                    if ((aVar19.name <= puVar20) && (puVar20 <= local_8c)) {\n                      aVar13.sbcset[(int)puVar20 >> 5] =\n                           aVar13.sbcset[(int)puVar20 >> 5] | 1 << ((byte)puVar20 & 0x1f);\n                    }\n                    puVar20 = puVar20 + 1;\n                  } while (puVar20 != (uchar *)0x100);\n                  *err = _REG_NOERROR;\n                  if (token->field_0x4 == '\x02') goto LAB_00031615;\n                  if (token->field_0x4 != '\x15') goto code_r0x000314d1;\n                  regexp->cur_idx = regexp->cur_idx + (int)local_c0;\n                  if (bVar7) {\n                    aVar16.sbcset = aVar13.sbcset;\n                    do {\n                      *aVar16.sbcset = ~*aVar16.sbcset;\n                      aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                    } while ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges != aVar16.sbcset);\n                  }\n                  iVar10 = dfa->mb_cur_max;\n                  if (1 < iVar10) {\n                    pbVar6 = dfa->sb_char;\n                    iVar15 = 0;\n                    do {\n                      aVar13.sbcset[iVar15] = aVar13.sbcset[iVar15] & pbVar6[iVar15];\n                      iVar15 = iVar15 + 1;\n                    } while (iVar15 != 8);\n                  }\n                  if ((((((cset.mbcset)->nmbchars != 0) || ((cset.mbcset)->ncoll_syms != 0)) ||\n                       ((cset.mbcset)->nequiv_classes != 0)) || ((cset.mbcset)->nranges != 0)) ||\n                     ((1 < iVar10 &&\n                      (((cset.mbcset)->nchar_classes != 0 || ((*(byte *)(cset.idx + 0x10) & 1) != 0)\n                       ))))) {\n                    dfa->field_0x58 = dfa->field_0x58 | 2;\n                    br_token._4_1_ = 6;\n                    br_token.opr.sbcset = cset.sbcset;\n                    local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                 (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                 (re_dfa_t *)&br_token);\n                    aVar16.sbcset = aVar13.sbcset;\n                    if (local_b0 != (bin_tree_t *)0x0) {\n                      while (*aVar16.sbcset == 0) {\n                        aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                        if ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges == aVar16.sbcset) {\n                          free(aVar13.sbcset);\n                          goto LAB_0003093e;\n                        }\n                      }\n                      br_token._4_1_ = 3;\n                      br_token.opr.sbcset = aVar13.sbcset;\n                      pbVar12 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                  (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                  (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                  (re_dfa_t *)&br_token);\n                      if (pbVar12 != (bin_tree_t *)0x0) {\n                        t._4_1_ = 10;\n                        dfa_1 = (re_dfa_t *)&t;\n                        goto LAB_000319aa;\n                      }\n                    }\nLAB_000319be:\n                    *err = _REG_ESPACE;\n                    goto LAB_000314ef;\n                  }\n                  free_charset(cset.mbcset);\n                  br_token._4_1_ = 3;\n                  dfa_1 = (re_dfa_t *)&br_token;\n                  pbVar12 = (bin_tree_t *)0x0;\n                  local_b0 = (bin_tree_t *)0x0;\n                  br_token.opr.sbcset = aVar13.sbcset;\nLAB_000319aa:\n                  local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                               (bin_tree_t *)&dfa->str_tree_storage_idx,pbVar12,\n                                               (re_token_t *)local_b0,dfa_1);\n                  if (local_b0 == (bin_tree_t *)0x0) goto LAB_000319be;\n                  goto LAB_0003093e;\n                }\n                uVar23 = 0xffffffff;\n                aVar19 = start_elem.opr;\n                do {\n                  if (uVar23 == 0) break;\n                  uVar23 = uVar23 - 1;\n                  uVar22 = *aVar19.name;\n                  aVar19.name = (uchar *)((char *)(aVar19.wch + L'\x01') + (uint)bVar25 * -2);\n                } while (uVar22 != '\0');\n                if (~uVar23 - 1 < 2) {\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) {\n                    uVar23 = 0xffffffff;\n                    pcVar24 = (char *)br_token._4_4_;\n                    do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');\n                    if (1 < ~uVar23 - 1) goto LAB_00031b44;\n                  }\n                  b = *start_elem.opr.name;\nLAB_0003178f:\n                  uVar8 = b;\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x0) goto LAB_00031b87;\n                  uVar22 = '\0';\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) goto LAB_000317a2;\n                  goto LAB_000317a5;\n                }\nLAB_00031b44:\n                *err = _REG_ECOLLATE;\n              }\n            }\n            else {\n              *err = rVar14;\n            }\n          }\n        }" { (expression_statement "iVar10 = peek_token_bracket(token,regexp,syntax);" (assignment_expression "iVar10 = peek_token_bracket(token,regexp,syntax)" identifier = (call_expression "peek_token_bracket(token,regexp,syntax)" identifier (argument_list "(token,regexp,syntax)" ( identifier , identifier , identifier )))) ;) (if_statement "if ((start_elem.type - EQUIV_CLASS & 0xfffffffd) == 0) {\nLAB_0003135b:\n            if (start_elem.type < (CHAR_CLASS|MB_CHAR)) {\n                    /* WARNING: Could not recover jumptable at 0x00031371. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar12 = (bin_tree_t *)\n                        (*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                  *(int *)(&UNK_0003ad38 + start_elem.type * 4)))();\n              return pbVar12;\n            }\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("0","lib/regcomp.c",0xcf3,"parse_bracket_exp");\n          }" if (parenthesized_expression "((start_elem.type - EQUIV_CLASS & 0xfffffffd) == 0)" ( (binary_expression "(start_elem.type - EQUIV_CLASS & 0xfffffffd) == 0" (parenthesized_expression "(start_elem.type - EQUIV_CLASS & 0xfffffffd)" ( (binary_expression "start_elem.type - EQUIV_CLASS & 0xfffffffd" (binary_expression "start_elem.type - EQUIV_CLASS" (field_expression "start_elem.type" identifier . field_identifier) - identifier) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_0003135b:\n            if (start_elem.type < (CHAR_CLASS|MB_CHAR)) {\n                    /* WARNING: Could not recover jumptable at 0x00031371. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar12 = (bin_tree_t *)\n                        (*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                  *(int *)(&UNK_0003ad38 + start_elem.type * 4)))();\n              return pbVar12;\n            }\n                    /* WARNING: Subroutine does not return */\n            __assert_fail("0","lib/regcomp.c",0xcf3,"parse_bracket_exp");\n          }" { (labeled_statement "LAB_0003135b:\n            if (start_elem.type < (CHAR_CLASS|MB_CHAR)) {\n                    /* WARNING: Could not recover jumptable at 0x00031371. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar12 = (bin_tree_t *)\n                        (*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                  *(int *)(&UNK_0003ad38 + start_elem.type * 4)))();\n              return pbVar12;\n            }" statement_identifier : (if_statement "if (start_elem.type < (CHAR_CLASS|MB_CHAR)) {\n                    /* WARNING: Could not recover jumptable at 0x00031371. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar12 = (bin_tree_t *)\n                        (*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                  *(int *)(&UNK_0003ad38 + start_elem.type * 4)))();\n              return pbVar12;\n            }" if (parenthesized_expression "(start_elem.type < (CHAR_CLASS|MB_CHAR))" ( (binary_expression "start_elem.type < (CHAR_CLASS|MB_CHAR)" (field_expression "start_elem.type" identifier . field_identifier) < (parenthesized_expression "(CHAR_CLASS|MB_CHAR)" ( (binary_expression "CHAR_CLASS|MB_CHAR" identifier | identifier) ))) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x00031371. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n              pbVar12 = (bin_tree_t *)\n                        (*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                  *(int *)(&UNK_0003ad38 + start_elem.type * 4)))();\n              return pbVar12;\n            }" { comment comment (expression_statement "pbVar12 = (bin_tree_t *)\n                        (*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                  *(int *)(&UNK_0003ad38 + start_elem.type * 4)))();" (assignment_expression "pbVar12 = (bin_tree_t *)\n                        (*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                  *(int *)(&UNK_0003ad38 + start_elem.type * 4)))()" identifier = (cast_expression "(bin_tree_t *)\n                        (*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                  *(int *)(&UNK_0003ad38 + start_elem.type * 4)))()" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                  *(int *)(&UNK_0003ad38 + start_elem.type * 4)))()" (parenthesized_expression "(*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                  *(int *)(&UNK_0003ad38 + start_elem.type * 4)))" ( (pointer_expression "*(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                  *(int *)(&UNK_0003ad38 + start_elem.type * 4))" * (cast_expression "(code *)((int)&_GLOBAL_OFFSET_TABLE_ +\n                                  *(int *)(&UNK_0003ad38 + start_elem.type * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&_GLOBAL_OFFSET_TABLE_ +\n                                  *(int *)(&UNK_0003ad38 + start_elem.type * 4))" ( (binary_expression "(int)&_GLOBAL_OFFSET_TABLE_ +\n                                  *(int *)(&UNK_0003ad38 + start_elem.type * 4)" (cast_expression "(int)&_GLOBAL_OFFSET_TABLE_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&_GLOBAL_OFFSET_TABLE_" & identifier)) + (pointer_expression "*(int *)(&UNK_0003ad38 + start_elem.type * 4)" * (cast_expression "(int *)(&UNK_0003ad38 + start_elem.type * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&UNK_0003ad38 + start_elem.type * 4)" ( (binary_expression "&UNK_0003ad38 + start_elem.type * 4" (pointer_expression "&UNK_0003ad38" & identifier) + (binary_expression "start_elem.type * 4" (field_expression "start_elem.type" identifier . field_identifier) * number_literal)) ))))) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return pbVar12;" return identifier ;) }))) comment (expression_statement "__assert_fail("0","lib/regcomp.c",0xcf3,"parse_bracket_exp");" (call_expression "__assert_fail("0","lib/regcomp.c",0xcf3,"parse_bracket_exp")" identifier (argument_list "("0","lib/regcomp.c",0xcf3,"parse_bracket_exp")" ( (string_literal ""0"" " string_content ") , (string_literal ""lib/regcomp.c"" " string_content ") , number_literal , (string_literal ""parse_bracket_exp"" " string_content ") ))) ;) })) (if_statement "if (token->field_0x4 == '\x02') {\nLAB_00031615:\n            *err = _REG_EBRACK;\n          }\n          else {\n            if (token->field_0x4 != '\x16') goto LAB_0003135b;\n            regexp->cur_idx = regexp->cur_idx + iVar10;\n            accept_hyphen = 0xc3;\n            iVar15 = peek_token_bracket(&t,regexp,syntax);\n            if (t._4_1_ == '\x02') goto LAB_00031615;\n            if (t._4_1_ == '\x15') {\n              regexp->cur_idx = regexp->cur_idx - iVar10;\n              token->field_0x4 = 1;\n              goto LAB_0003135b;\n            }\n            br_token._4_4_ = end_name_buf;\n            br_token.opr.idx = 3;\n            rVar14 = parse_bracket_element\n                               ((bracket_elem_t *)&br_token,regexp,&t,iVar15,(re_dfa_t *)syntax,1,\n                                (_Bool)accept_hyphen);\n            if (rVar14 == _REG_NOERROR) {\n              iVar10 = 0x31728;\n              local_c0 = (bin_tree_t *)peek_token_bracket(token,regexp,syntax);\n              aVar16.sbcset = cset.sbcset;\n              if (dfa->mb_cur_max < 2) {\n                aVar16.sbcset = (re_bitset_ptr_t)0x0;\n              }\n              if (((start_elem.type - EQUIV_CLASS & 0xfffffffd) == 0) ||\n                 ((br_token.opr.idx - 2U & 0xfffffffd) == 0)) {\nLAB_00031b91:\n                *err = _REG_ERANGE;\n              }\n              else {\n                if (start_elem.type != COLL_SYM) {\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) {\n                    uVar23 = 0xffffffff;\n                    pcVar24 = (char *)br_token._4_4_;\n                    do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');\n                    if (1 < ~uVar23 - 1) goto LAB_00031b44;\n                    b = '\0';\n                    if (start_elem.type == SB_CHAR) goto LAB_0003178a;\nLAB_000317a2:\n                    uVar22 = *(uchar *)br_token._4_4_;\n                  }\n                  else {\n                    if (start_elem.type == SB_CHAR) {\nLAB_0003178a:\n                      b = start_elem.opr.ch;\n                      goto LAB_0003178f;\n                    }\n                    b = '\0';\n                    uVar22 = '\0';\n                    uVar8 = '\0';\n                    if (br_token.opr.sbcset != (re_bitset_ptr_t)0x0) goto LAB_000317a5;\nLAB_00031b87:\n                    b = uVar8;\n                    uVar22 = br_token._4_1_;\n                  }\nLAB_000317a5:\n                  if ((start_elem.type == SB_CHAR) ||\n                     (aVar19 = start_elem.opr, start_elem.type == COLL_SYM)) {\n                    iVar10 = 0x31b70;\n                    aVar19.wch = parse_byte(b,aVar16.mbcset);\n                  }\n                  if ((br_token.opr.sbcset == (re_bitset_ptr_t)0x0) ||\n                     (local_8c = (uchar *)br_token._4_4_,\n                     br_token.opr.sbcset == (re_bitset_ptr_t)0x3)) {\n                    iVar10 = 0x31b5e;\n                    local_8c = (uchar *)parse_byte(uVar22,aVar16.mbcset);\n                  }\n                  if ((aVar19.name == (uchar *)0xffffffff) || (local_8c == (uchar *)0xffffffff))\n                  goto LAB_00031b44;\n                  if (((syntax & 0x10000) != 0) && (local_8c < aVar19.name)) goto LAB_00031b91;\n                  if ((re_charset_t *)aVar16.sbcset != (re_charset_t *)0x0) {\n                    iVar15 = (aVar16.mbcset)->nranges;\n                    __ptr = (aVar16.mbcset)->range_starts;\n                    if (iVar15 == local_90) {\n                      local_90 = local_90 * 2 + 1;\n                      iVar10 = local_90;\n                      __ptr = (wchar_t *)realloc(__ptr,local_90 * 4);\n                      __ptr_00 = (wchar_t *)realloc((aVar16.mbcset)->range_ends,local_90 * 4);\n                      if ((__ptr == (wchar_t *)0x0) || (__ptr_00 == (wchar_t *)0x0)) {\n                        free(__ptr);\n                        free(__ptr_00);\n                        *err = _REG_ESPACE;\n                        goto LAB_000314ef;\n                      }\n                      (aVar16.mbcset)->range_ends = __ptr_00;\n                      iVar15 = (aVar16.mbcset)->nranges;\n                      (aVar16.mbcset)->range_starts = __ptr;\n                    }\n                    ((anon_union_4_3_ebfdf496_for_opr *)(__ptr + iVar15))->name = (uchar *)aVar19;\n                    (aVar16.mbcset)->nranges = iVar15 + 1;\n                    (aVar16.mbcset)->range_ends[iVar15] = (wchar_t)local_8c;\n                  }\n                  puVar20 = (uchar *)0x0;\n                  do {\n                    if ((aVar19.name <= puVar20) && (puVar20 <= local_8c)) {\n                      aVar13.sbcset[(int)puVar20 >> 5] =\n                           aVar13.sbcset[(int)puVar20 >> 5] | 1 << ((byte)puVar20 & 0x1f);\n                    }\n                    puVar20 = puVar20 + 1;\n                  } while (puVar20 != (uchar *)0x100);\n                  *err = _REG_NOERROR;\n                  if (token->field_0x4 == '\x02') goto LAB_00031615;\n                  if (token->field_0x4 != '\x15') goto code_r0x000314d1;\n                  regexp->cur_idx = regexp->cur_idx + (int)local_c0;\n                  if (bVar7) {\n                    aVar16.sbcset = aVar13.sbcset;\n                    do {\n                      *aVar16.sbcset = ~*aVar16.sbcset;\n                      aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                    } while ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges != aVar16.sbcset);\n                  }\n                  iVar10 = dfa->mb_cur_max;\n                  if (1 < iVar10) {\n                    pbVar6 = dfa->sb_char;\n                    iVar15 = 0;\n                    do {\n                      aVar13.sbcset[iVar15] = aVar13.sbcset[iVar15] & pbVar6[iVar15];\n                      iVar15 = iVar15 + 1;\n                    } while (iVar15 != 8);\n                  }\n                  if ((((((cset.mbcset)->nmbchars != 0) || ((cset.mbcset)->ncoll_syms != 0)) ||\n                       ((cset.mbcset)->nequiv_classes != 0)) || ((cset.mbcset)->nranges != 0)) ||\n                     ((1 < iVar10 &&\n                      (((cset.mbcset)->nchar_classes != 0 || ((*(byte *)(cset.idx + 0x10) & 1) != 0)\n                       ))))) {\n                    dfa->field_0x58 = dfa->field_0x58 | 2;\n                    br_token._4_1_ = 6;\n                    br_token.opr.sbcset = cset.sbcset;\n                    local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                 (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                 (re_dfa_t *)&br_token);\n                    aVar16.sbcset = aVar13.sbcset;\n                    if (local_b0 != (bin_tree_t *)0x0) {\n                      while (*aVar16.sbcset == 0) {\n                        aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                        if ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges == aVar16.sbcset) {\n                          free(aVar13.sbcset);\n                          goto LAB_0003093e;\n                        }\n                      }\n                      br_token._4_1_ = 3;\n                      br_token.opr.sbcset = aVar13.sbcset;\n                      pbVar12 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                  (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                  (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                  (re_dfa_t *)&br_token);\n                      if (pbVar12 != (bin_tree_t *)0x0) {\n                        t._4_1_ = 10;\n                        dfa_1 = (re_dfa_t *)&t;\n                        goto LAB_000319aa;\n                      }\n                    }\nLAB_000319be:\n                    *err = _REG_ESPACE;\n                    goto LAB_000314ef;\n                  }\n                  free_charset(cset.mbcset);\n                  br_token._4_1_ = 3;\n                  dfa_1 = (re_dfa_t *)&br_token;\n                  pbVar12 = (bin_tree_t *)0x0;\n                  local_b0 = (bin_tree_t *)0x0;\n                  br_token.opr.sbcset = aVar13.sbcset;\nLAB_000319aa:\n                  local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                               (bin_tree_t *)&dfa->str_tree_storage_idx,pbVar12,\n                                               (re_token_t *)local_b0,dfa_1);\n                  if (local_b0 == (bin_tree_t *)0x0) goto LAB_000319be;\n                  goto LAB_0003093e;\n                }\n                uVar23 = 0xffffffff;\n                aVar19 = start_elem.opr;\n                do {\n                  if (uVar23 == 0) break;\n                  uVar23 = uVar23 - 1;\n                  uVar22 = *aVar19.name;\n                  aVar19.name = (uchar *)((char *)(aVar19.wch + L'\x01') + (uint)bVar25 * -2);\n                } while (uVar22 != '\0');\n                if (~uVar23 - 1 < 2) {\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) {\n                    uVar23 = 0xffffffff;\n                    pcVar24 = (char *)br_token._4_4_;\n                    do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');\n                    if (1 < ~uVar23 - 1) goto LAB_00031b44;\n                  }\n                  b = *start_elem.opr.name;\nLAB_0003178f:\n                  uVar8 = b;\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x0) goto LAB_00031b87;\n                  uVar22 = '\0';\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) goto LAB_000317a2;\n                  goto LAB_000317a5;\n                }\nLAB_00031b44:\n                *err = _REG_ECOLLATE;\n              }\n            }\n            else {\n              *err = rVar14;\n            }\n          }" if (parenthesized_expression "(token->field_0x4 == '\x02')" ( (binary_expression "token->field_0x4 == '\x02'" (field_expression "token->field_0x4" identifier -> field_identifier) == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\nLAB_00031615:\n            *err = _REG_EBRACK;\n          }" { (labeled_statement "LAB_00031615:\n            *err = _REG_EBRACK;" statement_identifier : (expression_statement "*err = _REG_EBRACK;" (assignment_expression "*err = _REG_EBRACK" (pointer_expression "*err" * identifier) = identifier) ;)) }) (else_clause "else {\n            if (token->field_0x4 != '\x16') goto LAB_0003135b;\n            regexp->cur_idx = regexp->cur_idx + iVar10;\n            accept_hyphen = 0xc3;\n            iVar15 = peek_token_bracket(&t,regexp,syntax);\n            if (t._4_1_ == '\x02') goto LAB_00031615;\n            if (t._4_1_ == '\x15') {\n              regexp->cur_idx = regexp->cur_idx - iVar10;\n              token->field_0x4 = 1;\n              goto LAB_0003135b;\n            }\n            br_token._4_4_ = end_name_buf;\n            br_token.opr.idx = 3;\n            rVar14 = parse_bracket_element\n                               ((bracket_elem_t *)&br_token,regexp,&t,iVar15,(re_dfa_t *)syntax,1,\n                                (_Bool)accept_hyphen);\n            if (rVar14 == _REG_NOERROR) {\n              iVar10 = 0x31728;\n              local_c0 = (bin_tree_t *)peek_token_bracket(token,regexp,syntax);\n              aVar16.sbcset = cset.sbcset;\n              if (dfa->mb_cur_max < 2) {\n                aVar16.sbcset = (re_bitset_ptr_t)0x0;\n              }\n              if (((start_elem.type - EQUIV_CLASS & 0xfffffffd) == 0) ||\n                 ((br_token.opr.idx - 2U & 0xfffffffd) == 0)) {\nLAB_00031b91:\n                *err = _REG_ERANGE;\n              }\n              else {\n                if (start_elem.type != COLL_SYM) {\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) {\n                    uVar23 = 0xffffffff;\n                    pcVar24 = (char *)br_token._4_4_;\n                    do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');\n                    if (1 < ~uVar23 - 1) goto LAB_00031b44;\n                    b = '\0';\n                    if (start_elem.type == SB_CHAR) goto LAB_0003178a;\nLAB_000317a2:\n                    uVar22 = *(uchar *)br_token._4_4_;\n                  }\n                  else {\n                    if (start_elem.type == SB_CHAR) {\nLAB_0003178a:\n                      b = start_elem.opr.ch;\n                      goto LAB_0003178f;\n                    }\n                    b = '\0';\n                    uVar22 = '\0';\n                    uVar8 = '\0';\n                    if (br_token.opr.sbcset != (re_bitset_ptr_t)0x0) goto LAB_000317a5;\nLAB_00031b87:\n                    b = uVar8;\n                    uVar22 = br_token._4_1_;\n                  }\nLAB_000317a5:\n                  if ((start_elem.type == SB_CHAR) ||\n                     (aVar19 = start_elem.opr, start_elem.type == COLL_SYM)) {\n                    iVar10 = 0x31b70;\n                    aVar19.wch = parse_byte(b,aVar16.mbcset);\n                  }\n                  if ((br_token.opr.sbcset == (re_bitset_ptr_t)0x0) ||\n                     (local_8c = (uchar *)br_token._4_4_,\n                     br_token.opr.sbcset == (re_bitset_ptr_t)0x3)) {\n                    iVar10 = 0x31b5e;\n                    local_8c = (uchar *)parse_byte(uVar22,aVar16.mbcset);\n                  }\n                  if ((aVar19.name == (uchar *)0xffffffff) || (local_8c == (uchar *)0xffffffff))\n                  goto LAB_00031b44;\n                  if (((syntax & 0x10000) != 0) && (local_8c < aVar19.name)) goto LAB_00031b91;\n                  if ((re_charset_t *)aVar16.sbcset != (re_charset_t *)0x0) {\n                    iVar15 = (aVar16.mbcset)->nranges;\n                    __ptr = (aVar16.mbcset)->range_starts;\n                    if (iVar15 == local_90) {\n                      local_90 = local_90 * 2 + 1;\n                      iVar10 = local_90;\n                      __ptr = (wchar_t *)realloc(__ptr,local_90 * 4);\n                      __ptr_00 = (wchar_t *)realloc((aVar16.mbcset)->range_ends,local_90 * 4);\n                      if ((__ptr == (wchar_t *)0x0) || (__ptr_00 == (wchar_t *)0x0)) {\n                        free(__ptr);\n                        free(__ptr_00);\n                        *err = _REG_ESPACE;\n                        goto LAB_000314ef;\n                      }\n                      (aVar16.mbcset)->range_ends = __ptr_00;\n                      iVar15 = (aVar16.mbcset)->nranges;\n                      (aVar16.mbcset)->range_starts = __ptr;\n                    }\n                    ((anon_union_4_3_ebfdf496_for_opr *)(__ptr + iVar15))->name = (uchar *)aVar19;\n                    (aVar16.mbcset)->nranges = iVar15 + 1;\n                    (aVar16.mbcset)->range_ends[iVar15] = (wchar_t)local_8c;\n                  }\n                  puVar20 = (uchar *)0x0;\n                  do {\n                    if ((aVar19.name <= puVar20) && (puVar20 <= local_8c)) {\n                      aVar13.sbcset[(int)puVar20 >> 5] =\n                           aVar13.sbcset[(int)puVar20 >> 5] | 1 << ((byte)puVar20 & 0x1f);\n                    }\n                    puVar20 = puVar20 + 1;\n                  } while (puVar20 != (uchar *)0x100);\n                  *err = _REG_NOERROR;\n                  if (token->field_0x4 == '\x02') goto LAB_00031615;\n                  if (token->field_0x4 != '\x15') goto code_r0x000314d1;\n                  regexp->cur_idx = regexp->cur_idx + (int)local_c0;\n                  if (bVar7) {\n                    aVar16.sbcset = aVar13.sbcset;\n                    do {\n                      *aVar16.sbcset = ~*aVar16.sbcset;\n                      aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                    } while ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges != aVar16.sbcset);\n                  }\n                  iVar10 = dfa->mb_cur_max;\n                  if (1 < iVar10) {\n                    pbVar6 = dfa->sb_char;\n                    iVar15 = 0;\n                    do {\n                      aVar13.sbcset[iVar15] = aVar13.sbcset[iVar15] & pbVar6[iVar15];\n                      iVar15 = iVar15 + 1;\n                    } while (iVar15 != 8);\n                  }\n                  if ((((((cset.mbcset)->nmbchars != 0) || ((cset.mbcset)->ncoll_syms != 0)) ||\n                       ((cset.mbcset)->nequiv_classes != 0)) || ((cset.mbcset)->nranges != 0)) ||\n                     ((1 < iVar10 &&\n                      (((cset.mbcset)->nchar_classes != 0 || ((*(byte *)(cset.idx + 0x10) & 1) != 0)\n                       ))))) {\n                    dfa->field_0x58 = dfa->field_0x58 | 2;\n                    br_token._4_1_ = 6;\n                    br_token.opr.sbcset = cset.sbcset;\n                    local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                 (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                 (re_dfa_t *)&br_token);\n                    aVar16.sbcset = aVar13.sbcset;\n                    if (local_b0 != (bin_tree_t *)0x0) {\n                      while (*aVar16.sbcset == 0) {\n                        aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                        if ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges == aVar16.sbcset) {\n                          free(aVar13.sbcset);\n                          goto LAB_0003093e;\n                        }\n                      }\n                      br_token._4_1_ = 3;\n                      br_token.opr.sbcset = aVar13.sbcset;\n                      pbVar12 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                  (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                  (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                  (re_dfa_t *)&br_token);\n                      if (pbVar12 != (bin_tree_t *)0x0) {\n                        t._4_1_ = 10;\n                        dfa_1 = (re_dfa_t *)&t;\n                        goto LAB_000319aa;\n                      }\n                    }\nLAB_000319be:\n                    *err = _REG_ESPACE;\n                    goto LAB_000314ef;\n                  }\n                  free_charset(cset.mbcset);\n                  br_token._4_1_ = 3;\n                  dfa_1 = (re_dfa_t *)&br_token;\n                  pbVar12 = (bin_tree_t *)0x0;\n                  local_b0 = (bin_tree_t *)0x0;\n                  br_token.opr.sbcset = aVar13.sbcset;\nLAB_000319aa:\n                  local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                               (bin_tree_t *)&dfa->str_tree_storage_idx,pbVar12,\n                                               (re_token_t *)local_b0,dfa_1);\n                  if (local_b0 == (bin_tree_t *)0x0) goto LAB_000319be;\n                  goto LAB_0003093e;\n                }\n                uVar23 = 0xffffffff;\n                aVar19 = start_elem.opr;\n                do {\n                  if (uVar23 == 0) break;\n                  uVar23 = uVar23 - 1;\n                  uVar22 = *aVar19.name;\n                  aVar19.name = (uchar *)((char *)(aVar19.wch + L'\x01') + (uint)bVar25 * -2);\n                } while (uVar22 != '\0');\n                if (~uVar23 - 1 < 2) {\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) {\n                    uVar23 = 0xffffffff;\n                    pcVar24 = (char *)br_token._4_4_;\n                    do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');\n                    if (1 < ~uVar23 - 1) goto LAB_00031b44;\n                  }\n                  b = *start_elem.opr.name;\nLAB_0003178f:\n                  uVar8 = b;\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x0) goto LAB_00031b87;\n                  uVar22 = '\0';\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) goto LAB_000317a2;\n                  goto LAB_000317a5;\n                }\nLAB_00031b44:\n                *err = _REG_ECOLLATE;\n              }\n            }\n            else {\n              *err = rVar14;\n            }\n          }" else (compound_statement "{\n            if (token->field_0x4 != '\x16') goto LAB_0003135b;\n            regexp->cur_idx = regexp->cur_idx + iVar10;\n            accept_hyphen = 0xc3;\n            iVar15 = peek_token_bracket(&t,regexp,syntax);\n            if (t._4_1_ == '\x02') goto LAB_00031615;\n            if (t._4_1_ == '\x15') {\n              regexp->cur_idx = regexp->cur_idx - iVar10;\n              token->field_0x4 = 1;\n              goto LAB_0003135b;\n            }\n            br_token._4_4_ = end_name_buf;\n            br_token.opr.idx = 3;\n            rVar14 = parse_bracket_element\n                               ((bracket_elem_t *)&br_token,regexp,&t,iVar15,(re_dfa_t *)syntax,1,\n                                (_Bool)accept_hyphen);\n            if (rVar14 == _REG_NOERROR) {\n              iVar10 = 0x31728;\n              local_c0 = (bin_tree_t *)peek_token_bracket(token,regexp,syntax);\n              aVar16.sbcset = cset.sbcset;\n              if (dfa->mb_cur_max < 2) {\n                aVar16.sbcset = (re_bitset_ptr_t)0x0;\n              }\n              if (((start_elem.type - EQUIV_CLASS & 0xfffffffd) == 0) ||\n                 ((br_token.opr.idx - 2U & 0xfffffffd) == 0)) {\nLAB_00031b91:\n                *err = _REG_ERANGE;\n              }\n              else {\n                if (start_elem.type != COLL_SYM) {\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) {\n                    uVar23 = 0xffffffff;\n                    pcVar24 = (char *)br_token._4_4_;\n                    do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');\n                    if (1 < ~uVar23 - 1) goto LAB_00031b44;\n                    b = '\0';\n                    if (start_elem.type == SB_CHAR) goto LAB_0003178a;\nLAB_000317a2:\n                    uVar22 = *(uchar *)br_token._4_4_;\n                  }\n                  else {\n                    if (start_elem.type == SB_CHAR) {\nLAB_0003178a:\n                      b = start_elem.opr.ch;\n                      goto LAB_0003178f;\n                    }\n                    b = '\0';\n                    uVar22 = '\0';\n                    uVar8 = '\0';\n                    if (br_token.opr.sbcset != (re_bitset_ptr_t)0x0) goto LAB_000317a5;\nLAB_00031b87:\n                    b = uVar8;\n                    uVar22 = br_token._4_1_;\n                  }\nLAB_000317a5:\n                  if ((start_elem.type == SB_CHAR) ||\n                     (aVar19 = start_elem.opr, start_elem.type == COLL_SYM)) {\n                    iVar10 = 0x31b70;\n                    aVar19.wch = parse_byte(b,aVar16.mbcset);\n                  }\n                  if ((br_token.opr.sbcset == (re_bitset_ptr_t)0x0) ||\n                     (local_8c = (uchar *)br_token._4_4_,\n                     br_token.opr.sbcset == (re_bitset_ptr_t)0x3)) {\n                    iVar10 = 0x31b5e;\n                    local_8c = (uchar *)parse_byte(uVar22,aVar16.mbcset);\n                  }\n                  if ((aVar19.name == (uchar *)0xffffffff) || (local_8c == (uchar *)0xffffffff))\n                  goto LAB_00031b44;\n                  if (((syntax & 0x10000) != 0) && (local_8c < aVar19.name)) goto LAB_00031b91;\n                  if ((re_charset_t *)aVar16.sbcset != (re_charset_t *)0x0) {\n                    iVar15 = (aVar16.mbcset)->nranges;\n                    __ptr = (aVar16.mbcset)->range_starts;\n                    if (iVar15 == local_90) {\n                      local_90 = local_90 * 2 + 1;\n                      iVar10 = local_90;\n                      __ptr = (wchar_t *)realloc(__ptr,local_90 * 4);\n                      __ptr_00 = (wchar_t *)realloc((aVar16.mbcset)->range_ends,local_90 * 4);\n                      if ((__ptr == (wchar_t *)0x0) || (__ptr_00 == (wchar_t *)0x0)) {\n                        free(__ptr);\n                        free(__ptr_00);\n                        *err = _REG_ESPACE;\n                        goto LAB_000314ef;\n                      }\n                      (aVar16.mbcset)->range_ends = __ptr_00;\n                      iVar15 = (aVar16.mbcset)->nranges;\n                      (aVar16.mbcset)->range_starts = __ptr;\n                    }\n                    ((anon_union_4_3_ebfdf496_for_opr *)(__ptr + iVar15))->name = (uchar *)aVar19;\n                    (aVar16.mbcset)->nranges = iVar15 + 1;\n                    (aVar16.mbcset)->range_ends[iVar15] = (wchar_t)local_8c;\n                  }\n                  puVar20 = (uchar *)0x0;\n                  do {\n                    if ((aVar19.name <= puVar20) && (puVar20 <= local_8c)) {\n                      aVar13.sbcset[(int)puVar20 >> 5] =\n                           aVar13.sbcset[(int)puVar20 >> 5] | 1 << ((byte)puVar20 & 0x1f);\n                    }\n                    puVar20 = puVar20 + 1;\n                  } while (puVar20 != (uchar *)0x100);\n                  *err = _REG_NOERROR;\n                  if (token->field_0x4 == '\x02') goto LAB_00031615;\n                  if (token->field_0x4 != '\x15') goto code_r0x000314d1;\n                  regexp->cur_idx = regexp->cur_idx + (int)local_c0;\n                  if (bVar7) {\n                    aVar16.sbcset = aVar13.sbcset;\n                    do {\n                      *aVar16.sbcset = ~*aVar16.sbcset;\n                      aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                    } while ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges != aVar16.sbcset);\n                  }\n                  iVar10 = dfa->mb_cur_max;\n                  if (1 < iVar10) {\n                    pbVar6 = dfa->sb_char;\n                    iVar15 = 0;\n                    do {\n                      aVar13.sbcset[iVar15] = aVar13.sbcset[iVar15] & pbVar6[iVar15];\n                      iVar15 = iVar15 + 1;\n                    } while (iVar15 != 8);\n                  }\n                  if ((((((cset.mbcset)->nmbchars != 0) || ((cset.mbcset)->ncoll_syms != 0)) ||\n                       ((cset.mbcset)->nequiv_classes != 0)) || ((cset.mbcset)->nranges != 0)) ||\n                     ((1 < iVar10 &&\n                      (((cset.mbcset)->nchar_classes != 0 || ((*(byte *)(cset.idx + 0x10) & 1) != 0)\n                       ))))) {\n                    dfa->field_0x58 = dfa->field_0x58 | 2;\n                    br_token._4_1_ = 6;\n                    br_token.opr.sbcset = cset.sbcset;\n                    local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                 (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                 (re_dfa_t *)&br_token);\n                    aVar16.sbcset = aVar13.sbcset;\n                    if (local_b0 != (bin_tree_t *)0x0) {\n                      while (*aVar16.sbcset == 0) {\n                        aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                        if ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges == aVar16.sbcset) {\n                          free(aVar13.sbcset);\n                          goto LAB_0003093e;\n                        }\n                      }\n                      br_token._4_1_ = 3;\n                      br_token.opr.sbcset = aVar13.sbcset;\n                      pbVar12 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                  (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                  (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                  (re_dfa_t *)&br_token);\n                      if (pbVar12 != (bin_tree_t *)0x0) {\n                        t._4_1_ = 10;\n                        dfa_1 = (re_dfa_t *)&t;\n                        goto LAB_000319aa;\n                      }\n                    }\nLAB_000319be:\n                    *err = _REG_ESPACE;\n                    goto LAB_000314ef;\n                  }\n                  free_charset(cset.mbcset);\n                  br_token._4_1_ = 3;\n                  dfa_1 = (re_dfa_t *)&br_token;\n                  pbVar12 = (bin_tree_t *)0x0;\n                  local_b0 = (bin_tree_t *)0x0;\n                  br_token.opr.sbcset = aVar13.sbcset;\nLAB_000319aa:\n                  local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                               (bin_tree_t *)&dfa->str_tree_storage_idx,pbVar12,\n                                               (re_token_t *)local_b0,dfa_1);\n                  if (local_b0 == (bin_tree_t *)0x0) goto LAB_000319be;\n                  goto LAB_0003093e;\n                }\n                uVar23 = 0xffffffff;\n                aVar19 = start_elem.opr;\n                do {\n                  if (uVar23 == 0) break;\n                  uVar23 = uVar23 - 1;\n                  uVar22 = *aVar19.name;\n                  aVar19.name = (uchar *)((char *)(aVar19.wch + L'\x01') + (uint)bVar25 * -2);\n                } while (uVar22 != '\0');\n                if (~uVar23 - 1 < 2) {\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) {\n                    uVar23 = 0xffffffff;\n                    pcVar24 = (char *)br_token._4_4_;\n                    do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');\n                    if (1 < ~uVar23 - 1) goto LAB_00031b44;\n                  }\n                  b = *start_elem.opr.name;\nLAB_0003178f:\n                  uVar8 = b;\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x0) goto LAB_00031b87;\n                  uVar22 = '\0';\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) goto LAB_000317a2;\n                  goto LAB_000317a5;\n                }\nLAB_00031b44:\n                *err = _REG_ECOLLATE;\n              }\n            }\n            else {\n              *err = rVar14;\n            }\n          }" { (if_statement "if (token->field_0x4 != '\x16') goto LAB_0003135b;" if (parenthesized_expression "(token->field_0x4 != '\x16')" ( (binary_expression "token->field_0x4 != '\x16'" (field_expression "token->field_0x4" identifier -> field_identifier) != (char_literal "'\x16'" ' escape_sequence ')) )) (goto_statement "goto LAB_0003135b;" goto statement_identifier ;)) (expression_statement "regexp->cur_idx = regexp->cur_idx + iVar10;" (assignment_expression "regexp->cur_idx = regexp->cur_idx + iVar10" (field_expression "regexp->cur_idx" identifier -> field_identifier) = (binary_expression "regexp->cur_idx + iVar10" (field_expression "regexp->cur_idx" identifier -> field_identifier) + identifier)) ;) (expression_statement "accept_hyphen = 0xc3;" (assignment_expression "accept_hyphen = 0xc3" identifier = number_literal) ;) (expression_statement "iVar15 = peek_token_bracket(&t,regexp,syntax);" (assignment_expression "iVar15 = peek_token_bracket(&t,regexp,syntax)" identifier = (call_expression "peek_token_bracket(&t,regexp,syntax)" identifier (argument_list "(&t,regexp,syntax)" ( (pointer_expression "&t" & identifier) , identifier , identifier )))) ;) (if_statement "if (t._4_1_ == '\x02') goto LAB_00031615;" if (parenthesized_expression "(t._4_1_ == '\x02')" ( (binary_expression "t._4_1_ == '\x02'" (field_expression "t._4_1_" identifier . field_identifier) == (char_literal "'\x02'" ' escape_sequence ')) )) (goto_statement "goto LAB_00031615;" goto statement_identifier ;)) (if_statement "if (t._4_1_ == '\x15') {\n              regexp->cur_idx = regexp->cur_idx - iVar10;\n              token->field_0x4 = 1;\n              goto LAB_0003135b;\n            }" if (parenthesized_expression "(t._4_1_ == '\x15')" ( (binary_expression "t._4_1_ == '\x15'" (field_expression "t._4_1_" identifier . field_identifier) == (char_literal "'\x15'" ' escape_sequence ')) )) (compound_statement "{\n              regexp->cur_idx = regexp->cur_idx - iVar10;\n              token->field_0x4 = 1;\n              goto LAB_0003135b;\n            }" { (expression_statement "regexp->cur_idx = regexp->cur_idx - iVar10;" (assignment_expression "regexp->cur_idx = regexp->cur_idx - iVar10" (field_expression "regexp->cur_idx" identifier -> field_identifier) = (binary_expression "regexp->cur_idx - iVar10" (field_expression "regexp->cur_idx" identifier -> field_identifier) - identifier)) ;) (expression_statement "token->field_0x4 = 1;" (assignment_expression "token->field_0x4 = 1" (field_expression "token->field_0x4" identifier -> field_identifier) = number_literal) ;) (goto_statement "goto LAB_0003135b;" goto statement_identifier ;) })) (expression_statement "br_token._4_4_ = end_name_buf;" (assignment_expression "br_token._4_4_ = end_name_buf" (field_expression "br_token._4_4_" identifier . field_identifier) = identifier) ;) (expression_statement "br_token.opr.idx = 3;" (assignment_expression "br_token.opr.idx = 3" (field_expression "br_token.opr.idx" (field_expression "br_token.opr" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "rVar14 = parse_bracket_element\n                               ((bracket_elem_t *)&br_token,regexp,&t,iVar15,(re_dfa_t *)syntax,1,\n                                (_Bool)accept_hyphen);" (assignment_expression "rVar14 = parse_bracket_element\n                               ((bracket_elem_t *)&br_token,regexp,&t,iVar15,(re_dfa_t *)syntax,1,\n                                (_Bool)accept_hyphen)" identifier = (call_expression "parse_bracket_element\n                               ((bracket_elem_t *)&br_token,regexp,&t,iVar15,(re_dfa_t *)syntax,1,\n                                (_Bool)accept_hyphen)" identifier (argument_list "((bracket_elem_t *)&br_token,regexp,&t,iVar15,(re_dfa_t *)syntax,1,\n                                (_Bool)accept_hyphen)" ( (cast_expression "(bracket_elem_t *)&br_token" ( (type_descriptor "bracket_elem_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&br_token" & identifier)) , identifier , (pointer_expression "&t" & identifier) , identifier , (cast_expression "(re_dfa_t *)syntax" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , (cast_expression "(_Bool)accept_hyphen" ( (type_descriptor "_Bool" type_identifier) ) identifier) )))) ;) (if_statement "if (rVar14 == _REG_NOERROR) {\n              iVar10 = 0x31728;\n              local_c0 = (bin_tree_t *)peek_token_bracket(token,regexp,syntax);\n              aVar16.sbcset = cset.sbcset;\n              if (dfa->mb_cur_max < 2) {\n                aVar16.sbcset = (re_bitset_ptr_t)0x0;\n              }\n              if (((start_elem.type - EQUIV_CLASS & 0xfffffffd) == 0) ||\n                 ((br_token.opr.idx - 2U & 0xfffffffd) == 0)) {\nLAB_00031b91:\n                *err = _REG_ERANGE;\n              }\n              else {\n                if (start_elem.type != COLL_SYM) {\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) {\n                    uVar23 = 0xffffffff;\n                    pcVar24 = (char *)br_token._4_4_;\n                    do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');\n                    if (1 < ~uVar23 - 1) goto LAB_00031b44;\n                    b = '\0';\n                    if (start_elem.type == SB_CHAR) goto LAB_0003178a;\nLAB_000317a2:\n                    uVar22 = *(uchar *)br_token._4_4_;\n                  }\n                  else {\n                    if (start_elem.type == SB_CHAR) {\nLAB_0003178a:\n                      b = start_elem.opr.ch;\n                      goto LAB_0003178f;\n                    }\n                    b = '\0';\n                    uVar22 = '\0';\n                    uVar8 = '\0';\n                    if (br_token.opr.sbcset != (re_bitset_ptr_t)0x0) goto LAB_000317a5;\nLAB_00031b87:\n                    b = uVar8;\n                    uVar22 = br_token._4_1_;\n                  }\nLAB_000317a5:\n                  if ((start_elem.type == SB_CHAR) ||\n                     (aVar19 = start_elem.opr, start_elem.type == COLL_SYM)) {\n                    iVar10 = 0x31b70;\n                    aVar19.wch = parse_byte(b,aVar16.mbcset);\n                  }\n                  if ((br_token.opr.sbcset == (re_bitset_ptr_t)0x0) ||\n                     (local_8c = (uchar *)br_token._4_4_,\n                     br_token.opr.sbcset == (re_bitset_ptr_t)0x3)) {\n                    iVar10 = 0x31b5e;\n                    local_8c = (uchar *)parse_byte(uVar22,aVar16.mbcset);\n                  }\n                  if ((aVar19.name == (uchar *)0xffffffff) || (local_8c == (uchar *)0xffffffff))\n                  goto LAB_00031b44;\n                  if (((syntax & 0x10000) != 0) && (local_8c < aVar19.name)) goto LAB_00031b91;\n                  if ((re_charset_t *)aVar16.sbcset != (re_charset_t *)0x0) {\n                    iVar15 = (aVar16.mbcset)->nranges;\n                    __ptr = (aVar16.mbcset)->range_starts;\n                    if (iVar15 == local_90) {\n                      local_90 = local_90 * 2 + 1;\n                      iVar10 = local_90;\n                      __ptr = (wchar_t *)realloc(__ptr,local_90 * 4);\n                      __ptr_00 = (wchar_t *)realloc((aVar16.mbcset)->range_ends,local_90 * 4);\n                      if ((__ptr == (wchar_t *)0x0) || (__ptr_00 == (wchar_t *)0x0)) {\n                        free(__ptr);\n                        free(__ptr_00);\n                        *err = _REG_ESPACE;\n                        goto LAB_000314ef;\n                      }\n                      (aVar16.mbcset)->range_ends = __ptr_00;\n                      iVar15 = (aVar16.mbcset)->nranges;\n                      (aVar16.mbcset)->range_starts = __ptr;\n                    }\n                    ((anon_union_4_3_ebfdf496_for_opr *)(__ptr + iVar15))->name = (uchar *)aVar19;\n                    (aVar16.mbcset)->nranges = iVar15 + 1;\n                    (aVar16.mbcset)->range_ends[iVar15] = (wchar_t)local_8c;\n                  }\n                  puVar20 = (uchar *)0x0;\n                  do {\n                    if ((aVar19.name <= puVar20) && (puVar20 <= local_8c)) {\n                      aVar13.sbcset[(int)puVar20 >> 5] =\n                           aVar13.sbcset[(int)puVar20 >> 5] | 1 << ((byte)puVar20 & 0x1f);\n                    }\n                    puVar20 = puVar20 + 1;\n                  } while (puVar20 != (uchar *)0x100);\n                  *err = _REG_NOERROR;\n                  if (token->field_0x4 == '\x02') goto LAB_00031615;\n                  if (token->field_0x4 != '\x15') goto code_r0x000314d1;\n                  regexp->cur_idx = regexp->cur_idx + (int)local_c0;\n                  if (bVar7) {\n                    aVar16.sbcset = aVar13.sbcset;\n                    do {\n                      *aVar16.sbcset = ~*aVar16.sbcset;\n                      aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                    } while ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges != aVar16.sbcset);\n                  }\n                  iVar10 = dfa->mb_cur_max;\n                  if (1 < iVar10) {\n                    pbVar6 = dfa->sb_char;\n                    iVar15 = 0;\n                    do {\n                      aVar13.sbcset[iVar15] = aVar13.sbcset[iVar15] & pbVar6[iVar15];\n                      iVar15 = iVar15 + 1;\n                    } while (iVar15 != 8);\n                  }\n                  if ((((((cset.mbcset)->nmbchars != 0) || ((cset.mbcset)->ncoll_syms != 0)) ||\n                       ((cset.mbcset)->nequiv_classes != 0)) || ((cset.mbcset)->nranges != 0)) ||\n                     ((1 < iVar10 &&\n                      (((cset.mbcset)->nchar_classes != 0 || ((*(byte *)(cset.idx + 0x10) & 1) != 0)\n                       ))))) {\n                    dfa->field_0x58 = dfa->field_0x58 | 2;\n                    br_token._4_1_ = 6;\n                    br_token.opr.sbcset = cset.sbcset;\n                    local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                 (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                 (re_dfa_t *)&br_token);\n                    aVar16.sbcset = aVar13.sbcset;\n                    if (local_b0 != (bin_tree_t *)0x0) {\n                      while (*aVar16.sbcset == 0) {\n                        aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                        if ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges == aVar16.sbcset) {\n                          free(aVar13.sbcset);\n                          goto LAB_0003093e;\n                        }\n                      }\n                      br_token._4_1_ = 3;\n                      br_token.opr.sbcset = aVar13.sbcset;\n                      pbVar12 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                  (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                  (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                  (re_dfa_t *)&br_token);\n                      if (pbVar12 != (bin_tree_t *)0x0) {\n                        t._4_1_ = 10;\n                        dfa_1 = (re_dfa_t *)&t;\n                        goto LAB_000319aa;\n                      }\n                    }\nLAB_000319be:\n                    *err = _REG_ESPACE;\n                    goto LAB_000314ef;\n                  }\n                  free_charset(cset.mbcset);\n                  br_token._4_1_ = 3;\n                  dfa_1 = (re_dfa_t *)&br_token;\n                  pbVar12 = (bin_tree_t *)0x0;\n                  local_b0 = (bin_tree_t *)0x0;\n                  br_token.opr.sbcset = aVar13.sbcset;\nLAB_000319aa:\n                  local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                               (bin_tree_t *)&dfa->str_tree_storage_idx,pbVar12,\n                                               (re_token_t *)local_b0,dfa_1);\n                  if (local_b0 == (bin_tree_t *)0x0) goto LAB_000319be;\n                  goto LAB_0003093e;\n                }\n                uVar23 = 0xffffffff;\n                aVar19 = start_elem.opr;\n                do {\n                  if (uVar23 == 0) break;\n                  uVar23 = uVar23 - 1;\n                  uVar22 = *aVar19.name;\n                  aVar19.name = (uchar *)((char *)(aVar19.wch + L'\x01') + (uint)bVar25 * -2);\n                } while (uVar22 != '\0');\n                if (~uVar23 - 1 < 2) {\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) {\n                    uVar23 = 0xffffffff;\n                    pcVar24 = (char *)br_token._4_4_;\n                    do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');\n                    if (1 < ~uVar23 - 1) goto LAB_00031b44;\n                  }\n                  b = *start_elem.opr.name;\nLAB_0003178f:\n                  uVar8 = b;\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x0) goto LAB_00031b87;\n                  uVar22 = '\0';\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) goto LAB_000317a2;\n                  goto LAB_000317a5;\n                }\nLAB_00031b44:\n                *err = _REG_ECOLLATE;\n              }\n            }\n            else {\n              *err = rVar14;\n            }" if (parenthesized_expression "(rVar14 == _REG_NOERROR)" ( (binary_expression "rVar14 == _REG_NOERROR" identifier == identifier) )) (compound_statement "{\n              iVar10 = 0x31728;\n              local_c0 = (bin_tree_t *)peek_token_bracket(token,regexp,syntax);\n              aVar16.sbcset = cset.sbcset;\n              if (dfa->mb_cur_max < 2) {\n                aVar16.sbcset = (re_bitset_ptr_t)0x0;\n              }\n              if (((start_elem.type - EQUIV_CLASS & 0xfffffffd) == 0) ||\n                 ((br_token.opr.idx - 2U & 0xfffffffd) == 0)) {\nLAB_00031b91:\n                *err = _REG_ERANGE;\n              }\n              else {\n                if (start_elem.type != COLL_SYM) {\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) {\n                    uVar23 = 0xffffffff;\n                    pcVar24 = (char *)br_token._4_4_;\n                    do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');\n                    if (1 < ~uVar23 - 1) goto LAB_00031b44;\n                    b = '\0';\n                    if (start_elem.type == SB_CHAR) goto LAB_0003178a;\nLAB_000317a2:\n                    uVar22 = *(uchar *)br_token._4_4_;\n                  }\n                  else {\n                    if (start_elem.type == SB_CHAR) {\nLAB_0003178a:\n                      b = start_elem.opr.ch;\n                      goto LAB_0003178f;\n                    }\n                    b = '\0';\n                    uVar22 = '\0';\n                    uVar8 = '\0';\n                    if (br_token.opr.sbcset != (re_bitset_ptr_t)0x0) goto LAB_000317a5;\nLAB_00031b87:\n                    b = uVar8;\n                    uVar22 = br_token._4_1_;\n                  }\nLAB_000317a5:\n                  if ((start_elem.type == SB_CHAR) ||\n                     (aVar19 = start_elem.opr, start_elem.type == COLL_SYM)) {\n                    iVar10 = 0x31b70;\n                    aVar19.wch = parse_byte(b,aVar16.mbcset);\n                  }\n                  if ((br_token.opr.sbcset == (re_bitset_ptr_t)0x0) ||\n                     (local_8c = (uchar *)br_token._4_4_,\n                     br_token.opr.sbcset == (re_bitset_ptr_t)0x3)) {\n                    iVar10 = 0x31b5e;\n                    local_8c = (uchar *)parse_byte(uVar22,aVar16.mbcset);\n                  }\n                  if ((aVar19.name == (uchar *)0xffffffff) || (local_8c == (uchar *)0xffffffff))\n                  goto LAB_00031b44;\n                  if (((syntax & 0x10000) != 0) && (local_8c < aVar19.name)) goto LAB_00031b91;\n                  if ((re_charset_t *)aVar16.sbcset != (re_charset_t *)0x0) {\n                    iVar15 = (aVar16.mbcset)->nranges;\n                    __ptr = (aVar16.mbcset)->range_starts;\n                    if (iVar15 == local_90) {\n                      local_90 = local_90 * 2 + 1;\n                      iVar10 = local_90;\n                      __ptr = (wchar_t *)realloc(__ptr,local_90 * 4);\n                      __ptr_00 = (wchar_t *)realloc((aVar16.mbcset)->range_ends,local_90 * 4);\n                      if ((__ptr == (wchar_t *)0x0) || (__ptr_00 == (wchar_t *)0x0)) {\n                        free(__ptr);\n                        free(__ptr_00);\n                        *err = _REG_ESPACE;\n                        goto LAB_000314ef;\n                      }\n                      (aVar16.mbcset)->range_ends = __ptr_00;\n                      iVar15 = (aVar16.mbcset)->nranges;\n                      (aVar16.mbcset)->range_starts = __ptr;\n                    }\n                    ((anon_union_4_3_ebfdf496_for_opr *)(__ptr + iVar15))->name = (uchar *)aVar19;\n                    (aVar16.mbcset)->nranges = iVar15 + 1;\n                    (aVar16.mbcset)->range_ends[iVar15] = (wchar_t)local_8c;\n                  }\n                  puVar20 = (uchar *)0x0;\n                  do {\n                    if ((aVar19.name <= puVar20) && (puVar20 <= local_8c)) {\n                      aVar13.sbcset[(int)puVar20 >> 5] =\n                           aVar13.sbcset[(int)puVar20 >> 5] | 1 << ((byte)puVar20 & 0x1f);\n                    }\n                    puVar20 = puVar20 + 1;\n                  } while (puVar20 != (uchar *)0x100);\n                  *err = _REG_NOERROR;\n                  if (token->field_0x4 == '\x02') goto LAB_00031615;\n                  if (token->field_0x4 != '\x15') goto code_r0x000314d1;\n                  regexp->cur_idx = regexp->cur_idx + (int)local_c0;\n                  if (bVar7) {\n                    aVar16.sbcset = aVar13.sbcset;\n                    do {\n                      *aVar16.sbcset = ~*aVar16.sbcset;\n                      aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                    } while ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges != aVar16.sbcset);\n                  }\n                  iVar10 = dfa->mb_cur_max;\n                  if (1 < iVar10) {\n                    pbVar6 = dfa->sb_char;\n                    iVar15 = 0;\n                    do {\n                      aVar13.sbcset[iVar15] = aVar13.sbcset[iVar15] & pbVar6[iVar15];\n                      iVar15 = iVar15 + 1;\n                    } while (iVar15 != 8);\n                  }\n                  if ((((((cset.mbcset)->nmbchars != 0) || ((cset.mbcset)->ncoll_syms != 0)) ||\n                       ((cset.mbcset)->nequiv_classes != 0)) || ((cset.mbcset)->nranges != 0)) ||\n                     ((1 < iVar10 &&\n                      (((cset.mbcset)->nchar_classes != 0 || ((*(byte *)(cset.idx + 0x10) & 1) != 0)\n                       ))))) {\n                    dfa->field_0x58 = dfa->field_0x58 | 2;\n                    br_token._4_1_ = 6;\n                    br_token.opr.sbcset = cset.sbcset;\n                    local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                 (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                 (re_dfa_t *)&br_token);\n                    aVar16.sbcset = aVar13.sbcset;\n                    if (local_b0 != (bin_tree_t *)0x0) {\n                      while (*aVar16.sbcset == 0) {\n                        aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                        if ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges == aVar16.sbcset) {\n                          free(aVar13.sbcset);\n                          goto LAB_0003093e;\n                        }\n                      }\n                      br_token._4_1_ = 3;\n                      br_token.opr.sbcset = aVar13.sbcset;\n                      pbVar12 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                  (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                  (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                  (re_dfa_t *)&br_token);\n                      if (pbVar12 != (bin_tree_t *)0x0) {\n                        t._4_1_ = 10;\n                        dfa_1 = (re_dfa_t *)&t;\n                        goto LAB_000319aa;\n                      }\n                    }\nLAB_000319be:\n                    *err = _REG_ESPACE;\n                    goto LAB_000314ef;\n                  }\n                  free_charset(cset.mbcset);\n                  br_token._4_1_ = 3;\n                  dfa_1 = (re_dfa_t *)&br_token;\n                  pbVar12 = (bin_tree_t *)0x0;\n                  local_b0 = (bin_tree_t *)0x0;\n                  br_token.opr.sbcset = aVar13.sbcset;\nLAB_000319aa:\n                  local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                               (bin_tree_t *)&dfa->str_tree_storage_idx,pbVar12,\n                                               (re_token_t *)local_b0,dfa_1);\n                  if (local_b0 == (bin_tree_t *)0x0) goto LAB_000319be;\n                  goto LAB_0003093e;\n                }\n                uVar23 = 0xffffffff;\n                aVar19 = start_elem.opr;\n                do {\n                  if (uVar23 == 0) break;\n                  uVar23 = uVar23 - 1;\n                  uVar22 = *aVar19.name;\n                  aVar19.name = (uchar *)((char *)(aVar19.wch + L'\x01') + (uint)bVar25 * -2);\n                } while (uVar22 != '\0');\n                if (~uVar23 - 1 < 2) {\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) {\n                    uVar23 = 0xffffffff;\n                    pcVar24 = (char *)br_token._4_4_;\n                    do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');\n                    if (1 < ~uVar23 - 1) goto LAB_00031b44;\n                  }\n                  b = *start_elem.opr.name;\nLAB_0003178f:\n                  uVar8 = b;\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x0) goto LAB_00031b87;\n                  uVar22 = '\0';\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) goto LAB_000317a2;\n                  goto LAB_000317a5;\n                }\nLAB_00031b44:\n                *err = _REG_ECOLLATE;\n              }\n            }" { (expression_statement "iVar10 = 0x31728;" (assignment_expression "iVar10 = 0x31728" identifier = number_literal) ;) (expression_statement "local_c0 = (bin_tree_t *)peek_token_bracket(token,regexp,syntax);" (assignment_expression "local_c0 = (bin_tree_t *)peek_token_bracket(token,regexp,syntax)" identifier = (cast_expression "(bin_tree_t *)peek_token_bracket(token,regexp,syntax)" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "peek_token_bracket(token,regexp,syntax)" identifier (argument_list "(token,regexp,syntax)" ( identifier , identifier , identifier ))))) ;) (expression_statement "aVar16.sbcset = cset.sbcset;" (assignment_expression "aVar16.sbcset = cset.sbcset" (field_expression "aVar16.sbcset" identifier . field_identifier) = (field_expression "cset.sbcset" identifier . field_identifier)) ;) (if_statement "if (dfa->mb_cur_max < 2) {\n                aVar16.sbcset = (re_bitset_ptr_t)0x0;\n              }" if (parenthesized_expression "(dfa->mb_cur_max < 2)" ( (binary_expression "dfa->mb_cur_max < 2" (field_expression "dfa->mb_cur_max" identifier -> field_identifier) < number_literal) )) (compound_statement "{\n                aVar16.sbcset = (re_bitset_ptr_t)0x0;\n              }" { (expression_statement "aVar16.sbcset = (re_bitset_ptr_t)0x0;" (assignment_expression "aVar16.sbcset = (re_bitset_ptr_t)0x0" (field_expression "aVar16.sbcset" identifier . field_identifier) = (cast_expression "(re_bitset_ptr_t)0x0" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal)) ;) })) (if_statement "if (((start_elem.type - EQUIV_CLASS & 0xfffffffd) == 0) ||\n                 ((br_token.opr.idx - 2U & 0xfffffffd) == 0)) {\nLAB_00031b91:\n                *err = _REG_ERANGE;\n              }\n              else {\n                if (start_elem.type != COLL_SYM) {\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) {\n                    uVar23 = 0xffffffff;\n                    pcVar24 = (char *)br_token._4_4_;\n                    do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');\n                    if (1 < ~uVar23 - 1) goto LAB_00031b44;\n                    b = '\0';\n                    if (start_elem.type == SB_CHAR) goto LAB_0003178a;\nLAB_000317a2:\n                    uVar22 = *(uchar *)br_token._4_4_;\n                  }\n                  else {\n                    if (start_elem.type == SB_CHAR) {\nLAB_0003178a:\n                      b = start_elem.opr.ch;\n                      goto LAB_0003178f;\n                    }\n                    b = '\0';\n                    uVar22 = '\0';\n                    uVar8 = '\0';\n                    if (br_token.opr.sbcset != (re_bitset_ptr_t)0x0) goto LAB_000317a5;\nLAB_00031b87:\n                    b = uVar8;\n                    uVar22 = br_token._4_1_;\n                  }\nLAB_000317a5:\n                  if ((start_elem.type == SB_CHAR) ||\n                     (aVar19 = start_elem.opr, start_elem.type == COLL_SYM)) {\n                    iVar10 = 0x31b70;\n                    aVar19.wch = parse_byte(b,aVar16.mbcset);\n                  }\n                  if ((br_token.opr.sbcset == (re_bitset_ptr_t)0x0) ||\n                     (local_8c = (uchar *)br_token._4_4_,\n                     br_token.opr.sbcset == (re_bitset_ptr_t)0x3)) {\n                    iVar10 = 0x31b5e;\n                    local_8c = (uchar *)parse_byte(uVar22,aVar16.mbcset);\n                  }\n                  if ((aVar19.name == (uchar *)0xffffffff) || (local_8c == (uchar *)0xffffffff))\n                  goto LAB_00031b44;\n                  if (((syntax & 0x10000) != 0) && (local_8c < aVar19.name)) goto LAB_00031b91;\n                  if ((re_charset_t *)aVar16.sbcset != (re_charset_t *)0x0) {\n                    iVar15 = (aVar16.mbcset)->nranges;\n                    __ptr = (aVar16.mbcset)->range_starts;\n                    if (iVar15 == local_90) {\n                      local_90 = local_90 * 2 + 1;\n                      iVar10 = local_90;\n                      __ptr = (wchar_t *)realloc(__ptr,local_90 * 4);\n                      __ptr_00 = (wchar_t *)realloc((aVar16.mbcset)->range_ends,local_90 * 4);\n                      if ((__ptr == (wchar_t *)0x0) || (__ptr_00 == (wchar_t *)0x0)) {\n                        free(__ptr);\n                        free(__ptr_00);\n                        *err = _REG_ESPACE;\n                        goto LAB_000314ef;\n                      }\n                      (aVar16.mbcset)->range_ends = __ptr_00;\n                      iVar15 = (aVar16.mbcset)->nranges;\n                      (aVar16.mbcset)->range_starts = __ptr;\n                    }\n                    ((anon_union_4_3_ebfdf496_for_opr *)(__ptr + iVar15))->name = (uchar *)aVar19;\n                    (aVar16.mbcset)->nranges = iVar15 + 1;\n                    (aVar16.mbcset)->range_ends[iVar15] = (wchar_t)local_8c;\n                  }\n                  puVar20 = (uchar *)0x0;\n                  do {\n                    if ((aVar19.name <= puVar20) && (puVar20 <= local_8c)) {\n                      aVar13.sbcset[(int)puVar20 >> 5] =\n                           aVar13.sbcset[(int)puVar20 >> 5] | 1 << ((byte)puVar20 & 0x1f);\n                    }\n                    puVar20 = puVar20 + 1;\n                  } while (puVar20 != (uchar *)0x100);\n                  *err = _REG_NOERROR;\n                  if (token->field_0x4 == '\x02') goto LAB_00031615;\n                  if (token->field_0x4 != '\x15') goto code_r0x000314d1;\n                  regexp->cur_idx = regexp->cur_idx + (int)local_c0;\n                  if (bVar7) {\n                    aVar16.sbcset = aVar13.sbcset;\n                    do {\n                      *aVar16.sbcset = ~*aVar16.sbcset;\n                      aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                    } while ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges != aVar16.sbcset);\n                  }\n                  iVar10 = dfa->mb_cur_max;\n                  if (1 < iVar10) {\n                    pbVar6 = dfa->sb_char;\n                    iVar15 = 0;\n                    do {\n                      aVar13.sbcset[iVar15] = aVar13.sbcset[iVar15] & pbVar6[iVar15];\n                      iVar15 = iVar15 + 1;\n                    } while (iVar15 != 8);\n                  }\n                  if ((((((cset.mbcset)->nmbchars != 0) || ((cset.mbcset)->ncoll_syms != 0)) ||\n                       ((cset.mbcset)->nequiv_classes != 0)) || ((cset.mbcset)->nranges != 0)) ||\n                     ((1 < iVar10 &&\n                      (((cset.mbcset)->nchar_classes != 0 || ((*(byte *)(cset.idx + 0x10) & 1) != 0)\n                       ))))) {\n                    dfa->field_0x58 = dfa->field_0x58 | 2;\n                    br_token._4_1_ = 6;\n                    br_token.opr.sbcset = cset.sbcset;\n                    local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                 (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                 (re_dfa_t *)&br_token);\n                    aVar16.sbcset = aVar13.sbcset;\n                    if (local_b0 != (bin_tree_t *)0x0) {\n                      while (*aVar16.sbcset == 0) {\n                        aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                        if ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges == aVar16.sbcset) {\n                          free(aVar13.sbcset);\n                          goto LAB_0003093e;\n                        }\n                      }\n                      br_token._4_1_ = 3;\n                      br_token.opr.sbcset = aVar13.sbcset;\n                      pbVar12 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                  (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                  (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                  (re_dfa_t *)&br_token);\n                      if (pbVar12 != (bin_tree_t *)0x0) {\n                        t._4_1_ = 10;\n                        dfa_1 = (re_dfa_t *)&t;\n                        goto LAB_000319aa;\n                      }\n                    }\nLAB_000319be:\n                    *err = _REG_ESPACE;\n                    goto LAB_000314ef;\n                  }\n                  free_charset(cset.mbcset);\n                  br_token._4_1_ = 3;\n                  dfa_1 = (re_dfa_t *)&br_token;\n                  pbVar12 = (bin_tree_t *)0x0;\n                  local_b0 = (bin_tree_t *)0x0;\n                  br_token.opr.sbcset = aVar13.sbcset;\nLAB_000319aa:\n                  local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                               (bin_tree_t *)&dfa->str_tree_storage_idx,pbVar12,\n                                               (re_token_t *)local_b0,dfa_1);\n                  if (local_b0 == (bin_tree_t *)0x0) goto LAB_000319be;\n                  goto LAB_0003093e;\n                }\n                uVar23 = 0xffffffff;\n                aVar19 = start_elem.opr;\n                do {\n                  if (uVar23 == 0) break;\n                  uVar23 = uVar23 - 1;\n                  uVar22 = *aVar19.name;\n                  aVar19.name = (uchar *)((char *)(aVar19.wch + L'\x01') + (uint)bVar25 * -2);\n                } while (uVar22 != '\0');\n                if (~uVar23 - 1 < 2) {\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) {\n                    uVar23 = 0xffffffff;\n                    pcVar24 = (char *)br_token._4_4_;\n                    do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');\n                    if (1 < ~uVar23 - 1) goto LAB_00031b44;\n                  }\n                  b = *start_elem.opr.name;\nLAB_0003178f:\n                  uVar8 = b;\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x0) goto LAB_00031b87;\n                  uVar22 = '\0';\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) goto LAB_000317a2;\n                  goto LAB_000317a5;\n                }\nLAB_00031b44:\n                *err = _REG_ECOLLATE;\n              }" if (parenthesized_expression "(((start_elem.type - EQUIV_CLASS & 0xfffffffd) == 0) ||\n                 ((br_token.opr.idx - 2U & 0xfffffffd) == 0))" ( (binary_expression "((start_elem.type - EQUIV_CLASS & 0xfffffffd) == 0) ||\n                 ((br_token.opr.idx - 2U & 0xfffffffd) == 0)" (parenthesized_expression "((start_elem.type - EQUIV_CLASS & 0xfffffffd) == 0)" ( (binary_expression "(start_elem.type - EQUIV_CLASS & 0xfffffffd) == 0" (parenthesized_expression "(start_elem.type - EQUIV_CLASS & 0xfffffffd)" ( (binary_expression "start_elem.type - EQUIV_CLASS & 0xfffffffd" (binary_expression "start_elem.type - EQUIV_CLASS" (field_expression "start_elem.type" identifier . field_identifier) - identifier) & number_literal) )) == number_literal) )) || (parenthesized_expression "((br_token.opr.idx - 2U & 0xfffffffd) == 0)" ( (binary_expression "(br_token.opr.idx - 2U & 0xfffffffd) == 0" (parenthesized_expression "(br_token.opr.idx - 2U & 0xfffffffd)" ( (binary_expression "br_token.opr.idx - 2U & 0xfffffffd" (binary_expression "br_token.opr.idx - 2U" (field_expression "br_token.opr.idx" (field_expression "br_token.opr" identifier . field_identifier) . field_identifier) - number_literal) & number_literal) )) == number_literal) ))) )) (compound_statement "{\nLAB_00031b91:\n                *err = _REG_ERANGE;\n              }" { (labeled_statement "LAB_00031b91:\n                *err = _REG_ERANGE;" statement_identifier : (expression_statement "*err = _REG_ERANGE;" (assignment_expression "*err = _REG_ERANGE" (pointer_expression "*err" * identifier) = identifier) ;)) }) (else_clause "else {\n                if (start_elem.type != COLL_SYM) {\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) {\n                    uVar23 = 0xffffffff;\n                    pcVar24 = (char *)br_token._4_4_;\n                    do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');\n                    if (1 < ~uVar23 - 1) goto LAB_00031b44;\n                    b = '\0';\n                    if (start_elem.type == SB_CHAR) goto LAB_0003178a;\nLAB_000317a2:\n                    uVar22 = *(uchar *)br_token._4_4_;\n                  }\n                  else {\n                    if (start_elem.type == SB_CHAR) {\nLAB_0003178a:\n                      b = start_elem.opr.ch;\n                      goto LAB_0003178f;\n                    }\n                    b = '\0';\n                    uVar22 = '\0';\n                    uVar8 = '\0';\n                    if (br_token.opr.sbcset != (re_bitset_ptr_t)0x0) goto LAB_000317a5;\nLAB_00031b87:\n                    b = uVar8;\n                    uVar22 = br_token._4_1_;\n                  }\nLAB_000317a5:\n                  if ((start_elem.type == SB_CHAR) ||\n                     (aVar19 = start_elem.opr, start_elem.type == COLL_SYM)) {\n                    iVar10 = 0x31b70;\n                    aVar19.wch = parse_byte(b,aVar16.mbcset);\n                  }\n                  if ((br_token.opr.sbcset == (re_bitset_ptr_t)0x0) ||\n                     (local_8c = (uchar *)br_token._4_4_,\n                     br_token.opr.sbcset == (re_bitset_ptr_t)0x3)) {\n                    iVar10 = 0x31b5e;\n                    local_8c = (uchar *)parse_byte(uVar22,aVar16.mbcset);\n                  }\n                  if ((aVar19.name == (uchar *)0xffffffff) || (local_8c == (uchar *)0xffffffff))\n                  goto LAB_00031b44;\n                  if (((syntax & 0x10000) != 0) && (local_8c < aVar19.name)) goto LAB_00031b91;\n                  if ((re_charset_t *)aVar16.sbcset != (re_charset_t *)0x0) {\n                    iVar15 = (aVar16.mbcset)->nranges;\n                    __ptr = (aVar16.mbcset)->range_starts;\n                    if (iVar15 == local_90) {\n                      local_90 = local_90 * 2 + 1;\n                      iVar10 = local_90;\n                      __ptr = (wchar_t *)realloc(__ptr,local_90 * 4);\n                      __ptr_00 = (wchar_t *)realloc((aVar16.mbcset)->range_ends,local_90 * 4);\n                      if ((__ptr == (wchar_t *)0x0) || (__ptr_00 == (wchar_t *)0x0)) {\n                        free(__ptr);\n                        free(__ptr_00);\n                        *err = _REG_ESPACE;\n                        goto LAB_000314ef;\n                      }\n                      (aVar16.mbcset)->range_ends = __ptr_00;\n                      iVar15 = (aVar16.mbcset)->nranges;\n                      (aVar16.mbcset)->range_starts = __ptr;\n                    }\n                    ((anon_union_4_3_ebfdf496_for_opr *)(__ptr + iVar15))->name = (uchar *)aVar19;\n                    (aVar16.mbcset)->nranges = iVar15 + 1;\n                    (aVar16.mbcset)->range_ends[iVar15] = (wchar_t)local_8c;\n                  }\n                  puVar20 = (uchar *)0x0;\n                  do {\n                    if ((aVar19.name <= puVar20) && (puVar20 <= local_8c)) {\n                      aVar13.sbcset[(int)puVar20 >> 5] =\n                           aVar13.sbcset[(int)puVar20 >> 5] | 1 << ((byte)puVar20 & 0x1f);\n                    }\n                    puVar20 = puVar20 + 1;\n                  } while (puVar20 != (uchar *)0x100);\n                  *err = _REG_NOERROR;\n                  if (token->field_0x4 == '\x02') goto LAB_00031615;\n                  if (token->field_0x4 != '\x15') goto code_r0x000314d1;\n                  regexp->cur_idx = regexp->cur_idx + (int)local_c0;\n                  if (bVar7) {\n                    aVar16.sbcset = aVar13.sbcset;\n                    do {\n                      *aVar16.sbcset = ~*aVar16.sbcset;\n                      aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                    } while ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges != aVar16.sbcset);\n                  }\n                  iVar10 = dfa->mb_cur_max;\n                  if (1 < iVar10) {\n                    pbVar6 = dfa->sb_char;\n                    iVar15 = 0;\n                    do {\n                      aVar13.sbcset[iVar15] = aVar13.sbcset[iVar15] & pbVar6[iVar15];\n                      iVar15 = iVar15 + 1;\n                    } while (iVar15 != 8);\n                  }\n                  if ((((((cset.mbcset)->nmbchars != 0) || ((cset.mbcset)->ncoll_syms != 0)) ||\n                       ((cset.mbcset)->nequiv_classes != 0)) || ((cset.mbcset)->nranges != 0)) ||\n                     ((1 < iVar10 &&\n                      (((cset.mbcset)->nchar_classes != 0 || ((*(byte *)(cset.idx + 0x10) & 1) != 0)\n                       ))))) {\n                    dfa->field_0x58 = dfa->field_0x58 | 2;\n                    br_token._4_1_ = 6;\n                    br_token.opr.sbcset = cset.sbcset;\n                    local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                 (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                 (re_dfa_t *)&br_token);\n                    aVar16.sbcset = aVar13.sbcset;\n                    if (local_b0 != (bin_tree_t *)0x0) {\n                      while (*aVar16.sbcset == 0) {\n                        aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                        if ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges == aVar16.sbcset) {\n                          free(aVar13.sbcset);\n                          goto LAB_0003093e;\n                        }\n                      }\n                      br_token._4_1_ = 3;\n                      br_token.opr.sbcset = aVar13.sbcset;\n                      pbVar12 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                  (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                  (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                  (re_dfa_t *)&br_token);\n                      if (pbVar12 != (bin_tree_t *)0x0) {\n                        t._4_1_ = 10;\n                        dfa_1 = (re_dfa_t *)&t;\n                        goto LAB_000319aa;\n                      }\n                    }\nLAB_000319be:\n                    *err = _REG_ESPACE;\n                    goto LAB_000314ef;\n                  }\n                  free_charset(cset.mbcset);\n                  br_token._4_1_ = 3;\n                  dfa_1 = (re_dfa_t *)&br_token;\n                  pbVar12 = (bin_tree_t *)0x0;\n                  local_b0 = (bin_tree_t *)0x0;\n                  br_token.opr.sbcset = aVar13.sbcset;\nLAB_000319aa:\n                  local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                               (bin_tree_t *)&dfa->str_tree_storage_idx,pbVar12,\n                                               (re_token_t *)local_b0,dfa_1);\n                  if (local_b0 == (bin_tree_t *)0x0) goto LAB_000319be;\n                  goto LAB_0003093e;\n                }\n                uVar23 = 0xffffffff;\n                aVar19 = start_elem.opr;\n                do {\n                  if (uVar23 == 0) break;\n                  uVar23 = uVar23 - 1;\n                  uVar22 = *aVar19.name;\n                  aVar19.name = (uchar *)((char *)(aVar19.wch + L'\x01') + (uint)bVar25 * -2);\n                } while (uVar22 != '\0');\n                if (~uVar23 - 1 < 2) {\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) {\n                    uVar23 = 0xffffffff;\n                    pcVar24 = (char *)br_token._4_4_;\n                    do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');\n                    if (1 < ~uVar23 - 1) goto LAB_00031b44;\n                  }\n                  b = *start_elem.opr.name;\nLAB_0003178f:\n                  uVar8 = b;\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x0) goto LAB_00031b87;\n                  uVar22 = '\0';\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) goto LAB_000317a2;\n                  goto LAB_000317a5;\n                }\nLAB_00031b44:\n                *err = _REG_ECOLLATE;\n              }" else (compound_statement "{\n                if (start_elem.type != COLL_SYM) {\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) {\n                    uVar23 = 0xffffffff;\n                    pcVar24 = (char *)br_token._4_4_;\n                    do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');\n                    if (1 < ~uVar23 - 1) goto LAB_00031b44;\n                    b = '\0';\n                    if (start_elem.type == SB_CHAR) goto LAB_0003178a;\nLAB_000317a2:\n                    uVar22 = *(uchar *)br_token._4_4_;\n                  }\n                  else {\n                    if (start_elem.type == SB_CHAR) {\nLAB_0003178a:\n                      b = start_elem.opr.ch;\n                      goto LAB_0003178f;\n                    }\n                    b = '\0';\n                    uVar22 = '\0';\n                    uVar8 = '\0';\n                    if (br_token.opr.sbcset != (re_bitset_ptr_t)0x0) goto LAB_000317a5;\nLAB_00031b87:\n                    b = uVar8;\n                    uVar22 = br_token._4_1_;\n                  }\nLAB_000317a5:\n                  if ((start_elem.type == SB_CHAR) ||\n                     (aVar19 = start_elem.opr, start_elem.type == COLL_SYM)) {\n                    iVar10 = 0x31b70;\n                    aVar19.wch = parse_byte(b,aVar16.mbcset);\n                  }\n                  if ((br_token.opr.sbcset == (re_bitset_ptr_t)0x0) ||\n                     (local_8c = (uchar *)br_token._4_4_,\n                     br_token.opr.sbcset == (re_bitset_ptr_t)0x3)) {\n                    iVar10 = 0x31b5e;\n                    local_8c = (uchar *)parse_byte(uVar22,aVar16.mbcset);\n                  }\n                  if ((aVar19.name == (uchar *)0xffffffff) || (local_8c == (uchar *)0xffffffff))\n                  goto LAB_00031b44;\n                  if (((syntax & 0x10000) != 0) && (local_8c < aVar19.name)) goto LAB_00031b91;\n                  if ((re_charset_t *)aVar16.sbcset != (re_charset_t *)0x0) {\n                    iVar15 = (aVar16.mbcset)->nranges;\n                    __ptr = (aVar16.mbcset)->range_starts;\n                    if (iVar15 == local_90) {\n                      local_90 = local_90 * 2 + 1;\n                      iVar10 = local_90;\n                      __ptr = (wchar_t *)realloc(__ptr,local_90 * 4);\n                      __ptr_00 = (wchar_t *)realloc((aVar16.mbcset)->range_ends,local_90 * 4);\n                      if ((__ptr == (wchar_t *)0x0) || (__ptr_00 == (wchar_t *)0x0)) {\n                        free(__ptr);\n                        free(__ptr_00);\n                        *err = _REG_ESPACE;\n                        goto LAB_000314ef;\n                      }\n                      (aVar16.mbcset)->range_ends = __ptr_00;\n                      iVar15 = (aVar16.mbcset)->nranges;\n                      (aVar16.mbcset)->range_starts = __ptr;\n                    }\n                    ((anon_union_4_3_ebfdf496_for_opr *)(__ptr + iVar15))->name = (uchar *)aVar19;\n                    (aVar16.mbcset)->nranges = iVar15 + 1;\n                    (aVar16.mbcset)->range_ends[iVar15] = (wchar_t)local_8c;\n                  }\n                  puVar20 = (uchar *)0x0;\n                  do {\n                    if ((aVar19.name <= puVar20) && (puVar20 <= local_8c)) {\n                      aVar13.sbcset[(int)puVar20 >> 5] =\n                           aVar13.sbcset[(int)puVar20 >> 5] | 1 << ((byte)puVar20 & 0x1f);\n                    }\n                    puVar20 = puVar20 + 1;\n                  } while (puVar20 != (uchar *)0x100);\n                  *err = _REG_NOERROR;\n                  if (token->field_0x4 == '\x02') goto LAB_00031615;\n                  if (token->field_0x4 != '\x15') goto code_r0x000314d1;\n                  regexp->cur_idx = regexp->cur_idx + (int)local_c0;\n                  if (bVar7) {\n                    aVar16.sbcset = aVar13.sbcset;\n                    do {\n                      *aVar16.sbcset = ~*aVar16.sbcset;\n                      aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                    } while ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges != aVar16.sbcset);\n                  }\n                  iVar10 = dfa->mb_cur_max;\n                  if (1 < iVar10) {\n                    pbVar6 = dfa->sb_char;\n                    iVar15 = 0;\n                    do {\n                      aVar13.sbcset[iVar15] = aVar13.sbcset[iVar15] & pbVar6[iVar15];\n                      iVar15 = iVar15 + 1;\n                    } while (iVar15 != 8);\n                  }\n                  if ((((((cset.mbcset)->nmbchars != 0) || ((cset.mbcset)->ncoll_syms != 0)) ||\n                       ((cset.mbcset)->nequiv_classes != 0)) || ((cset.mbcset)->nranges != 0)) ||\n                     ((1 < iVar10 &&\n                      (((cset.mbcset)->nchar_classes != 0 || ((*(byte *)(cset.idx + 0x10) & 1) != 0)\n                       ))))) {\n                    dfa->field_0x58 = dfa->field_0x58 | 2;\n                    br_token._4_1_ = 6;\n                    br_token.opr.sbcset = cset.sbcset;\n                    local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                 (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                 (re_dfa_t *)&br_token);\n                    aVar16.sbcset = aVar13.sbcset;\n                    if (local_b0 != (bin_tree_t *)0x0) {\n                      while (*aVar16.sbcset == 0) {\n                        aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                        if ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges == aVar16.sbcset) {\n                          free(aVar13.sbcset);\n                          goto LAB_0003093e;\n                        }\n                      }\n                      br_token._4_1_ = 3;\n                      br_token.opr.sbcset = aVar13.sbcset;\n                      pbVar12 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                  (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                  (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                  (re_dfa_t *)&br_token);\n                      if (pbVar12 != (bin_tree_t *)0x0) {\n                        t._4_1_ = 10;\n                        dfa_1 = (re_dfa_t *)&t;\n                        goto LAB_000319aa;\n                      }\n                    }\nLAB_000319be:\n                    *err = _REG_ESPACE;\n                    goto LAB_000314ef;\n                  }\n                  free_charset(cset.mbcset);\n                  br_token._4_1_ = 3;\n                  dfa_1 = (re_dfa_t *)&br_token;\n                  pbVar12 = (bin_tree_t *)0x0;\n                  local_b0 = (bin_tree_t *)0x0;\n                  br_token.opr.sbcset = aVar13.sbcset;\nLAB_000319aa:\n                  local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                               (bin_tree_t *)&dfa->str_tree_storage_idx,pbVar12,\n                                               (re_token_t *)local_b0,dfa_1);\n                  if (local_b0 == (bin_tree_t *)0x0) goto LAB_000319be;\n                  goto LAB_0003093e;\n                }\n                uVar23 = 0xffffffff;\n                aVar19 = start_elem.opr;\n                do {\n                  if (uVar23 == 0) break;\n                  uVar23 = uVar23 - 1;\n                  uVar22 = *aVar19.name;\n                  aVar19.name = (uchar *)((char *)(aVar19.wch + L'\x01') + (uint)bVar25 * -2);\n                } while (uVar22 != '\0');\n                if (~uVar23 - 1 < 2) {\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) {\n                    uVar23 = 0xffffffff;\n                    pcVar24 = (char *)br_token._4_4_;\n                    do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');\n                    if (1 < ~uVar23 - 1) goto LAB_00031b44;\n                  }\n                  b = *start_elem.opr.name;\nLAB_0003178f:\n                  uVar8 = b;\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x0) goto LAB_00031b87;\n                  uVar22 = '\0';\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) goto LAB_000317a2;\n                  goto LAB_000317a5;\n                }\nLAB_00031b44:\n                *err = _REG_ECOLLATE;\n              }" { (if_statement "if (start_elem.type != COLL_SYM) {\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) {\n                    uVar23 = 0xffffffff;\n                    pcVar24 = (char *)br_token._4_4_;\n                    do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');\n                    if (1 < ~uVar23 - 1) goto LAB_00031b44;\n                    b = '\0';\n                    if (start_elem.type == SB_CHAR) goto LAB_0003178a;\nLAB_000317a2:\n                    uVar22 = *(uchar *)br_token._4_4_;\n                  }\n                  else {\n                    if (start_elem.type == SB_CHAR) {\nLAB_0003178a:\n                      b = start_elem.opr.ch;\n                      goto LAB_0003178f;\n                    }\n                    b = '\0';\n                    uVar22 = '\0';\n                    uVar8 = '\0';\n                    if (br_token.opr.sbcset != (re_bitset_ptr_t)0x0) goto LAB_000317a5;\nLAB_00031b87:\n                    b = uVar8;\n                    uVar22 = br_token._4_1_;\n                  }\nLAB_000317a5:\n                  if ((start_elem.type == SB_CHAR) ||\n                     (aVar19 = start_elem.opr, start_elem.type == COLL_SYM)) {\n                    iVar10 = 0x31b70;\n                    aVar19.wch = parse_byte(b,aVar16.mbcset);\n                  }\n                  if ((br_token.opr.sbcset == (re_bitset_ptr_t)0x0) ||\n                     (local_8c = (uchar *)br_token._4_4_,\n                     br_token.opr.sbcset == (re_bitset_ptr_t)0x3)) {\n                    iVar10 = 0x31b5e;\n                    local_8c = (uchar *)parse_byte(uVar22,aVar16.mbcset);\n                  }\n                  if ((aVar19.name == (uchar *)0xffffffff) || (local_8c == (uchar *)0xffffffff))\n                  goto LAB_00031b44;\n                  if (((syntax & 0x10000) != 0) && (local_8c < aVar19.name)) goto LAB_00031b91;\n                  if ((re_charset_t *)aVar16.sbcset != (re_charset_t *)0x0) {\n                    iVar15 = (aVar16.mbcset)->nranges;\n                    __ptr = (aVar16.mbcset)->range_starts;\n                    if (iVar15 == local_90) {\n                      local_90 = local_90 * 2 + 1;\n                      iVar10 = local_90;\n                      __ptr = (wchar_t *)realloc(__ptr,local_90 * 4);\n                      __ptr_00 = (wchar_t *)realloc((aVar16.mbcset)->range_ends,local_90 * 4);\n                      if ((__ptr == (wchar_t *)0x0) || (__ptr_00 == (wchar_t *)0x0)) {\n                        free(__ptr);\n                        free(__ptr_00);\n                        *err = _REG_ESPACE;\n                        goto LAB_000314ef;\n                      }\n                      (aVar16.mbcset)->range_ends = __ptr_00;\n                      iVar15 = (aVar16.mbcset)->nranges;\n                      (aVar16.mbcset)->range_starts = __ptr;\n                    }\n                    ((anon_union_4_3_ebfdf496_for_opr *)(__ptr + iVar15))->name = (uchar *)aVar19;\n                    (aVar16.mbcset)->nranges = iVar15 + 1;\n                    (aVar16.mbcset)->range_ends[iVar15] = (wchar_t)local_8c;\n                  }\n                  puVar20 = (uchar *)0x0;\n                  do {\n                    if ((aVar19.name <= puVar20) && (puVar20 <= local_8c)) {\n                      aVar13.sbcset[(int)puVar20 >> 5] =\n                           aVar13.sbcset[(int)puVar20 >> 5] | 1 << ((byte)puVar20 & 0x1f);\n                    }\n                    puVar20 = puVar20 + 1;\n                  } while (puVar20 != (uchar *)0x100);\n                  *err = _REG_NOERROR;\n                  if (token->field_0x4 == '\x02') goto LAB_00031615;\n                  if (token->field_0x4 != '\x15') goto code_r0x000314d1;\n                  regexp->cur_idx = regexp->cur_idx + (int)local_c0;\n                  if (bVar7) {\n                    aVar16.sbcset = aVar13.sbcset;\n                    do {\n                      *aVar16.sbcset = ~*aVar16.sbcset;\n                      aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                    } while ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges != aVar16.sbcset);\n                  }\n                  iVar10 = dfa->mb_cur_max;\n                  if (1 < iVar10) {\n                    pbVar6 = dfa->sb_char;\n                    iVar15 = 0;\n                    do {\n                      aVar13.sbcset[iVar15] = aVar13.sbcset[iVar15] & pbVar6[iVar15];\n                      iVar15 = iVar15 + 1;\n                    } while (iVar15 != 8);\n                  }\n                  if ((((((cset.mbcset)->nmbchars != 0) || ((cset.mbcset)->ncoll_syms != 0)) ||\n                       ((cset.mbcset)->nequiv_classes != 0)) || ((cset.mbcset)->nranges != 0)) ||\n                     ((1 < iVar10 &&\n                      (((cset.mbcset)->nchar_classes != 0 || ((*(byte *)(cset.idx + 0x10) & 1) != 0)\n                       ))))) {\n                    dfa->field_0x58 = dfa->field_0x58 | 2;\n                    br_token._4_1_ = 6;\n                    br_token.opr.sbcset = cset.sbcset;\n                    local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                 (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                 (re_dfa_t *)&br_token);\n                    aVar16.sbcset = aVar13.sbcset;\n                    if (local_b0 != (bin_tree_t *)0x0) {\n                      while (*aVar16.sbcset == 0) {\n                        aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                        if ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges == aVar16.sbcset) {\n                          free(aVar13.sbcset);\n                          goto LAB_0003093e;\n                        }\n                      }\n                      br_token._4_1_ = 3;\n                      br_token.opr.sbcset = aVar13.sbcset;\n                      pbVar12 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                  (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                  (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                  (re_dfa_t *)&br_token);\n                      if (pbVar12 != (bin_tree_t *)0x0) {\n                        t._4_1_ = 10;\n                        dfa_1 = (re_dfa_t *)&t;\n                        goto LAB_000319aa;\n                      }\n                    }\nLAB_000319be:\n                    *err = _REG_ESPACE;\n                    goto LAB_000314ef;\n                  }\n                  free_charset(cset.mbcset);\n                  br_token._4_1_ = 3;\n                  dfa_1 = (re_dfa_t *)&br_token;\n                  pbVar12 = (bin_tree_t *)0x0;\n                  local_b0 = (bin_tree_t *)0x0;\n                  br_token.opr.sbcset = aVar13.sbcset;\nLAB_000319aa:\n                  local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                               (bin_tree_t *)&dfa->str_tree_storage_idx,pbVar12,\n                                               (re_token_t *)local_b0,dfa_1);\n                  if (local_b0 == (bin_tree_t *)0x0) goto LAB_000319be;\n                  goto LAB_0003093e;\n                }" if (parenthesized_expression "(start_elem.type != COLL_SYM)" ( (binary_expression "start_elem.type != COLL_SYM" (field_expression "start_elem.type" identifier . field_identifier) != identifier) )) (compound_statement "{\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) {\n                    uVar23 = 0xffffffff;\n                    pcVar24 = (char *)br_token._4_4_;\n                    do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');\n                    if (1 < ~uVar23 - 1) goto LAB_00031b44;\n                    b = '\0';\n                    if (start_elem.type == SB_CHAR) goto LAB_0003178a;\nLAB_000317a2:\n                    uVar22 = *(uchar *)br_token._4_4_;\n                  }\n                  else {\n                    if (start_elem.type == SB_CHAR) {\nLAB_0003178a:\n                      b = start_elem.opr.ch;\n                      goto LAB_0003178f;\n                    }\n                    b = '\0';\n                    uVar22 = '\0';\n                    uVar8 = '\0';\n                    if (br_token.opr.sbcset != (re_bitset_ptr_t)0x0) goto LAB_000317a5;\nLAB_00031b87:\n                    b = uVar8;\n                    uVar22 = br_token._4_1_;\n                  }\nLAB_000317a5:\n                  if ((start_elem.type == SB_CHAR) ||\n                     (aVar19 = start_elem.opr, start_elem.type == COLL_SYM)) {\n                    iVar10 = 0x31b70;\n                    aVar19.wch = parse_byte(b,aVar16.mbcset);\n                  }\n                  if ((br_token.opr.sbcset == (re_bitset_ptr_t)0x0) ||\n                     (local_8c = (uchar *)br_token._4_4_,\n                     br_token.opr.sbcset == (re_bitset_ptr_t)0x3)) {\n                    iVar10 = 0x31b5e;\n                    local_8c = (uchar *)parse_byte(uVar22,aVar16.mbcset);\n                  }\n                  if ((aVar19.name == (uchar *)0xffffffff) || (local_8c == (uchar *)0xffffffff))\n                  goto LAB_00031b44;\n                  if (((syntax & 0x10000) != 0) && (local_8c < aVar19.name)) goto LAB_00031b91;\n                  if ((re_charset_t *)aVar16.sbcset != (re_charset_t *)0x0) {\n                    iVar15 = (aVar16.mbcset)->nranges;\n                    __ptr = (aVar16.mbcset)->range_starts;\n                    if (iVar15 == local_90) {\n                      local_90 = local_90 * 2 + 1;\n                      iVar10 = local_90;\n                      __ptr = (wchar_t *)realloc(__ptr,local_90 * 4);\n                      __ptr_00 = (wchar_t *)realloc((aVar16.mbcset)->range_ends,local_90 * 4);\n                      if ((__ptr == (wchar_t *)0x0) || (__ptr_00 == (wchar_t *)0x0)) {\n                        free(__ptr);\n                        free(__ptr_00);\n                        *err = _REG_ESPACE;\n                        goto LAB_000314ef;\n                      }\n                      (aVar16.mbcset)->range_ends = __ptr_00;\n                      iVar15 = (aVar16.mbcset)->nranges;\n                      (aVar16.mbcset)->range_starts = __ptr;\n                    }\n                    ((anon_union_4_3_ebfdf496_for_opr *)(__ptr + iVar15))->name = (uchar *)aVar19;\n                    (aVar16.mbcset)->nranges = iVar15 + 1;\n                    (aVar16.mbcset)->range_ends[iVar15] = (wchar_t)local_8c;\n                  }\n                  puVar20 = (uchar *)0x0;\n                  do {\n                    if ((aVar19.name <= puVar20) && (puVar20 <= local_8c)) {\n                      aVar13.sbcset[(int)puVar20 >> 5] =\n                           aVar13.sbcset[(int)puVar20 >> 5] | 1 << ((byte)puVar20 & 0x1f);\n                    }\n                    puVar20 = puVar20 + 1;\n                  } while (puVar20 != (uchar *)0x100);\n                  *err = _REG_NOERROR;\n                  if (token->field_0x4 == '\x02') goto LAB_00031615;\n                  if (token->field_0x4 != '\x15') goto code_r0x000314d1;\n                  regexp->cur_idx = regexp->cur_idx + (int)local_c0;\n                  if (bVar7) {\n                    aVar16.sbcset = aVar13.sbcset;\n                    do {\n                      *aVar16.sbcset = ~*aVar16.sbcset;\n                      aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                    } while ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges != aVar16.sbcset);\n                  }\n                  iVar10 = dfa->mb_cur_max;\n                  if (1 < iVar10) {\n                    pbVar6 = dfa->sb_char;\n                    iVar15 = 0;\n                    do {\n                      aVar13.sbcset[iVar15] = aVar13.sbcset[iVar15] & pbVar6[iVar15];\n                      iVar15 = iVar15 + 1;\n                    } while (iVar15 != 8);\n                  }\n                  if ((((((cset.mbcset)->nmbchars != 0) || ((cset.mbcset)->ncoll_syms != 0)) ||\n                       ((cset.mbcset)->nequiv_classes != 0)) || ((cset.mbcset)->nranges != 0)) ||\n                     ((1 < iVar10 &&\n                      (((cset.mbcset)->nchar_classes != 0 || ((*(byte *)(cset.idx + 0x10) & 1) != 0)\n                       ))))) {\n                    dfa->field_0x58 = dfa->field_0x58 | 2;\n                    br_token._4_1_ = 6;\n                    br_token.opr.sbcset = cset.sbcset;\n                    local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                 (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                 (re_dfa_t *)&br_token);\n                    aVar16.sbcset = aVar13.sbcset;\n                    if (local_b0 != (bin_tree_t *)0x0) {\n                      while (*aVar16.sbcset == 0) {\n                        aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                        if ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges == aVar16.sbcset) {\n                          free(aVar13.sbcset);\n                          goto LAB_0003093e;\n                        }\n                      }\n                      br_token._4_1_ = 3;\n                      br_token.opr.sbcset = aVar13.sbcset;\n                      pbVar12 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                  (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                  (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                  (re_dfa_t *)&br_token);\n                      if (pbVar12 != (bin_tree_t *)0x0) {\n                        t._4_1_ = 10;\n                        dfa_1 = (re_dfa_t *)&t;\n                        goto LAB_000319aa;\n                      }\n                    }\nLAB_000319be:\n                    *err = _REG_ESPACE;\n                    goto LAB_000314ef;\n                  }\n                  free_charset(cset.mbcset);\n                  br_token._4_1_ = 3;\n                  dfa_1 = (re_dfa_t *)&br_token;\n                  pbVar12 = (bin_tree_t *)0x0;\n                  local_b0 = (bin_tree_t *)0x0;\n                  br_token.opr.sbcset = aVar13.sbcset;\nLAB_000319aa:\n                  local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                               (bin_tree_t *)&dfa->str_tree_storage_idx,pbVar12,\n                                               (re_token_t *)local_b0,dfa_1);\n                  if (local_b0 == (bin_tree_t *)0x0) goto LAB_000319be;\n                  goto LAB_0003093e;\n                }" { (if_statement "if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) {\n                    uVar23 = 0xffffffff;\n                    pcVar24 = (char *)br_token._4_4_;\n                    do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');\n                    if (1 < ~uVar23 - 1) goto LAB_00031b44;\n                    b = '\0';\n                    if (start_elem.type == SB_CHAR) goto LAB_0003178a;\nLAB_000317a2:\n                    uVar22 = *(uchar *)br_token._4_4_;\n                  }\n                  else {\n                    if (start_elem.type == SB_CHAR) {\nLAB_0003178a:\n                      b = start_elem.opr.ch;\n                      goto LAB_0003178f;\n                    }\n                    b = '\0';\n                    uVar22 = '\0';\n                    uVar8 = '\0';\n                    if (br_token.opr.sbcset != (re_bitset_ptr_t)0x0) goto LAB_000317a5;\nLAB_00031b87:\n                    b = uVar8;\n                    uVar22 = br_token._4_1_;\n                  }" if (parenthesized_expression "(br_token.opr.sbcset == (re_bitset_ptr_t)0x3)" ( (binary_expression "br_token.opr.sbcset == (re_bitset_ptr_t)0x3" (field_expression "br_token.opr.sbcset" (field_expression "br_token.opr" identifier . field_identifier) . field_identifier) == (cast_expression "(re_bitset_ptr_t)0x3" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal)) )) (compound_statement "{\n                    uVar23 = 0xffffffff;\n                    pcVar24 = (char *)br_token._4_4_;\n                    do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');\n                    if (1 < ~uVar23 - 1) goto LAB_00031b44;\n                    b = '\0';\n                    if (start_elem.type == SB_CHAR) goto LAB_0003178a;\nLAB_000317a2:\n                    uVar22 = *(uchar *)br_token._4_4_;\n                  }" { (expression_statement "uVar23 = 0xffffffff;" (assignment_expression "uVar23 = 0xffffffff" identifier = number_literal) ;) (expression_statement "pcVar24 = (char *)br_token._4_4_;" (assignment_expression "pcVar24 = (char *)br_token._4_4_" identifier = (cast_expression "(char *)br_token._4_4_" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "br_token._4_4_" identifier . field_identifier))) ;) (do_statement "do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');" do (compound_statement "{\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    }" { (if_statement "if (uVar23 == 0) break;" if (parenthesized_expression "(uVar23 == 0)" ( (binary_expression "uVar23 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar23 = uVar23 - 1;" (assignment_expression "uVar23 = uVar23 - 1" identifier = (binary_expression "uVar23 - 1" identifier - number_literal)) ;) (expression_statement "cVar9 = *pcVar24;" (assignment_expression "cVar9 = *pcVar24" identifier = (pointer_expression "*pcVar24" * identifier)) ;) (expression_statement "pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;" (assignment_expression "pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pcVar24 + (uint)bVar25 * -2 + 1" (binary_expression "pcVar24 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (if_statement "if (1 < ~uVar23 - 1) goto LAB_00031b44;" if (parenthesized_expression "(1 < ~uVar23 - 1)" ( (binary_expression "1 < ~uVar23 - 1" number_literal < (binary_expression "~uVar23 - 1" (unary_expression "~uVar23" ~ identifier) - number_literal)) )) (goto_statement "goto LAB_00031b44;" goto statement_identifier ;)) (expression_statement "b = '\0';" (assignment_expression "b = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (start_elem.type == SB_CHAR) goto LAB_0003178a;" if (parenthesized_expression "(start_elem.type == SB_CHAR)" ( (binary_expression "start_elem.type == SB_CHAR" (field_expression "start_elem.type" identifier . field_identifier) == identifier) )) (goto_statement "goto LAB_0003178a;" goto statement_identifier ;)) (labeled_statement "LAB_000317a2:\n                    uVar22 = *(uchar *)br_token._4_4_;" statement_identifier : (expression_statement "uVar22 = *(uchar *)br_token._4_4_;" (assignment_expression "uVar22 = *(uchar *)br_token._4_4_" identifier = (pointer_expression "*(uchar *)br_token._4_4_" * (cast_expression "(uchar *)br_token._4_4_" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "br_token._4_4_" identifier . field_identifier)))) ;)) }) (else_clause "else {\n                    if (start_elem.type == SB_CHAR) {\nLAB_0003178a:\n                      b = start_elem.opr.ch;\n                      goto LAB_0003178f;\n                    }\n                    b = '\0';\n                    uVar22 = '\0';\n                    uVar8 = '\0';\n                    if (br_token.opr.sbcset != (re_bitset_ptr_t)0x0) goto LAB_000317a5;\nLAB_00031b87:\n                    b = uVar8;\n                    uVar22 = br_token._4_1_;\n                  }" else (compound_statement "{\n                    if (start_elem.type == SB_CHAR) {\nLAB_0003178a:\n                      b = start_elem.opr.ch;\n                      goto LAB_0003178f;\n                    }\n                    b = '\0';\n                    uVar22 = '\0';\n                    uVar8 = '\0';\n                    if (br_token.opr.sbcset != (re_bitset_ptr_t)0x0) goto LAB_000317a5;\nLAB_00031b87:\n                    b = uVar8;\n                    uVar22 = br_token._4_1_;\n                  }" { (if_statement "if (start_elem.type == SB_CHAR) {\nLAB_0003178a:\n                      b = start_elem.opr.ch;\n                      goto LAB_0003178f;\n                    }" if (parenthesized_expression "(start_elem.type == SB_CHAR)" ( (binary_expression "start_elem.type == SB_CHAR" (field_expression "start_elem.type" identifier . field_identifier) == identifier) )) (compound_statement "{\nLAB_0003178a:\n                      b = start_elem.opr.ch;\n                      goto LAB_0003178f;\n                    }" { (labeled_statement "LAB_0003178a:\n                      b = start_elem.opr.ch;" statement_identifier : (expression_statement "b = start_elem.opr.ch;" (assignment_expression "b = start_elem.opr.ch" identifier = (field_expression "start_elem.opr.ch" (field_expression "start_elem.opr" identifier . field_identifier) . field_identifier)) ;)) (goto_statement "goto LAB_0003178f;" goto statement_identifier ;) })) (expression_statement "b = '\0';" (assignment_expression "b = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar22 = '\0';" (assignment_expression "uVar22 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar8 = '\0';" (assignment_expression "uVar8 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (br_token.opr.sbcset != (re_bitset_ptr_t)0x0) goto LAB_000317a5;" if (parenthesized_expression "(br_token.opr.sbcset != (re_bitset_ptr_t)0x0)" ( (binary_expression "br_token.opr.sbcset != (re_bitset_ptr_t)0x0" (field_expression "br_token.opr.sbcset" (field_expression "br_token.opr" identifier . field_identifier) . field_identifier) != (cast_expression "(re_bitset_ptr_t)0x0" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_000317a5;" goto statement_identifier ;)) (labeled_statement "LAB_00031b87:\n                    b = uVar8;" statement_identifier : (expression_statement "b = uVar8;" (assignment_expression "b = uVar8" identifier = identifier) ;)) (expression_statement "uVar22 = br_token._4_1_;" (assignment_expression "uVar22 = br_token._4_1_" identifier = (field_expression "br_token._4_1_" identifier . field_identifier)) ;) }))) (labeled_statement "LAB_000317a5:\n                  if ((start_elem.type == SB_CHAR) ||\n                     (aVar19 = start_elem.opr, start_elem.type == COLL_SYM)) {\n                    iVar10 = 0x31b70;\n                    aVar19.wch = parse_byte(b,aVar16.mbcset);\n                  }" statement_identifier : (if_statement "if ((start_elem.type == SB_CHAR) ||\n                     (aVar19 = start_elem.opr, start_elem.type == COLL_SYM)) {\n                    iVar10 = 0x31b70;\n                    aVar19.wch = parse_byte(b,aVar16.mbcset);\n                  }" if (parenthesized_expression "((start_elem.type == SB_CHAR) ||\n                     (aVar19 = start_elem.opr, start_elem.type == COLL_SYM))" ( (binary_expression "(start_elem.type == SB_CHAR) ||\n                     (aVar19 = start_elem.opr, start_elem.type == COLL_SYM)" (parenthesized_expression "(start_elem.type == SB_CHAR)" ( (binary_expression "start_elem.type == SB_CHAR" (field_expression "start_elem.type" identifier . field_identifier) == identifier) )) || (parenthesized_expression "(aVar19 = start_elem.opr, start_elem.type == COLL_SYM)" ( (comma_expression "aVar19 = start_elem.opr, start_elem.type == COLL_SYM" (assignment_expression "aVar19 = start_elem.opr" identifier = (field_expression "start_elem.opr" identifier . field_identifier)) , (binary_expression "start_elem.type == COLL_SYM" (field_expression "start_elem.type" identifier . field_identifier) == identifier)) ))) )) (compound_statement "{\n                    iVar10 = 0x31b70;\n                    aVar19.wch = parse_byte(b,aVar16.mbcset);\n                  }" { (expression_statement "iVar10 = 0x31b70;" (assignment_expression "iVar10 = 0x31b70" identifier = number_literal) ;) (expression_statement "aVar19.wch = parse_byte(b,aVar16.mbcset);" (assignment_expression "aVar19.wch = parse_byte(b,aVar16.mbcset)" (field_expression "aVar19.wch" identifier . field_identifier) = (call_expression "parse_byte(b,aVar16.mbcset)" identifier (argument_list "(b,aVar16.mbcset)" ( identifier , (field_expression "aVar16.mbcset" identifier . field_identifier) )))) ;) }))) (if_statement "if ((br_token.opr.sbcset == (re_bitset_ptr_t)0x0) ||\n                     (local_8c = (uchar *)br_token._4_4_,\n                     br_token.opr.sbcset == (re_bitset_ptr_t)0x3)) {\n                    iVar10 = 0x31b5e;\n                    local_8c = (uchar *)parse_byte(uVar22,aVar16.mbcset);\n                  }" if (parenthesized_expression "((br_token.opr.sbcset == (re_bitset_ptr_t)0x0) ||\n                     (local_8c = (uchar *)br_token._4_4_,\n                     br_token.opr.sbcset == (re_bitset_ptr_t)0x3))" ( (binary_expression "(br_token.opr.sbcset == (re_bitset_ptr_t)0x0) ||\n                     (local_8c = (uchar *)br_token._4_4_,\n                     br_token.opr.sbcset == (re_bitset_ptr_t)0x3)" (parenthesized_expression "(br_token.opr.sbcset == (re_bitset_ptr_t)0x0)" ( (binary_expression "br_token.opr.sbcset == (re_bitset_ptr_t)0x0" (field_expression "br_token.opr.sbcset" (field_expression "br_token.opr" identifier . field_identifier) . field_identifier) == (cast_expression "(re_bitset_ptr_t)0x0" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal)) )) || (parenthesized_expression "(local_8c = (uchar *)br_token._4_4_,\n                     br_token.opr.sbcset == (re_bitset_ptr_t)0x3)" ( (comma_expression "local_8c = (uchar *)br_token._4_4_,\n                     br_token.opr.sbcset == (re_bitset_ptr_t)0x3" (assignment_expression "local_8c = (uchar *)br_token._4_4_" identifier = (cast_expression "(uchar *)br_token._4_4_" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "br_token._4_4_" identifier . field_identifier))) , (binary_expression "br_token.opr.sbcset == (re_bitset_ptr_t)0x3" (field_expression "br_token.opr.sbcset" (field_expression "br_token.opr" identifier . field_identifier) . field_identifier) == (cast_expression "(re_bitset_ptr_t)0x3" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal))) ))) )) (compound_statement "{\n                    iVar10 = 0x31b5e;\n                    local_8c = (uchar *)parse_byte(uVar22,aVar16.mbcset);\n                  }" { (expression_statement "iVar10 = 0x31b5e;" (assignment_expression "iVar10 = 0x31b5e" identifier = number_literal) ;) (expression_statement "local_8c = (uchar *)parse_byte(uVar22,aVar16.mbcset);" (assignment_expression "local_8c = (uchar *)parse_byte(uVar22,aVar16.mbcset)" identifier = (cast_expression "(uchar *)parse_byte(uVar22,aVar16.mbcset)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "parse_byte(uVar22,aVar16.mbcset)" identifier (argument_list "(uVar22,aVar16.mbcset)" ( identifier , (field_expression "aVar16.mbcset" identifier . field_identifier) ))))) ;) })) (if_statement "if ((aVar19.name == (uchar *)0xffffffff) || (local_8c == (uchar *)0xffffffff))\n                  goto LAB_00031b44;" if (parenthesized_expression "((aVar19.name == (uchar *)0xffffffff) || (local_8c == (uchar *)0xffffffff))" ( (binary_expression "(aVar19.name == (uchar *)0xffffffff) || (local_8c == (uchar *)0xffffffff)" (parenthesized_expression "(aVar19.name == (uchar *)0xffffffff)" ( (binary_expression "aVar19.name == (uchar *)0xffffffff" (field_expression "aVar19.name" identifier . field_identifier) == (cast_expression "(uchar *)0xffffffff" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(local_8c == (uchar *)0xffffffff)" ( (binary_expression "local_8c == (uchar *)0xffffffff" identifier == (cast_expression "(uchar *)0xffffffff" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (goto_statement "goto LAB_00031b44;" goto statement_identifier ;)) (if_statement "if (((syntax & 0x10000) != 0) && (local_8c < aVar19.name)) goto LAB_00031b91;" if (parenthesized_expression "(((syntax & 0x10000) != 0) && (local_8c < aVar19.name))" ( (binary_expression "((syntax & 0x10000) != 0) && (local_8c < aVar19.name)" (parenthesized_expression "((syntax & 0x10000) != 0)" ( (binary_expression "(syntax & 0x10000) != 0" (parenthesized_expression "(syntax & 0x10000)" ( (binary_expression "syntax & 0x10000" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(local_8c < aVar19.name)" ( (binary_expression "local_8c < aVar19.name" identifier < (field_expression "aVar19.name" identifier . field_identifier)) ))) )) (goto_statement "goto LAB_00031b91;" goto statement_identifier ;)) (if_statement "if ((re_charset_t *)aVar16.sbcset != (re_charset_t *)0x0) {\n                    iVar15 = (aVar16.mbcset)->nranges;\n                    __ptr = (aVar16.mbcset)->range_starts;\n                    if (iVar15 == local_90) {\n                      local_90 = local_90 * 2 + 1;\n                      iVar10 = local_90;\n                      __ptr = (wchar_t *)realloc(__ptr,local_90 * 4);\n                      __ptr_00 = (wchar_t *)realloc((aVar16.mbcset)->range_ends,local_90 * 4);\n                      if ((__ptr == (wchar_t *)0x0) || (__ptr_00 == (wchar_t *)0x0)) {\n                        free(__ptr);\n                        free(__ptr_00);\n                        *err = _REG_ESPACE;\n                        goto LAB_000314ef;\n                      }\n                      (aVar16.mbcset)->range_ends = __ptr_00;\n                      iVar15 = (aVar16.mbcset)->nranges;\n                      (aVar16.mbcset)->range_starts = __ptr;\n                    }\n                    ((anon_union_4_3_ebfdf496_for_opr *)(__ptr + iVar15))->name = (uchar *)aVar19;\n                    (aVar16.mbcset)->nranges = iVar15 + 1;\n                    (aVar16.mbcset)->range_ends[iVar15] = (wchar_t)local_8c;\n                  }" if (parenthesized_expression "((re_charset_t *)aVar16.sbcset != (re_charset_t *)0x0)" ( (binary_expression "(re_charset_t *)aVar16.sbcset != (re_charset_t *)0x0" (cast_expression "(re_charset_t *)aVar16.sbcset" ( (type_descriptor "re_charset_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "aVar16.sbcset" identifier . field_identifier)) != (cast_expression "(re_charset_t *)0x0" ( (type_descriptor "re_charset_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    iVar15 = (aVar16.mbcset)->nranges;\n                    __ptr = (aVar16.mbcset)->range_starts;\n                    if (iVar15 == local_90) {\n                      local_90 = local_90 * 2 + 1;\n                      iVar10 = local_90;\n                      __ptr = (wchar_t *)realloc(__ptr,local_90 * 4);\n                      __ptr_00 = (wchar_t *)realloc((aVar16.mbcset)->range_ends,local_90 * 4);\n                      if ((__ptr == (wchar_t *)0x0) || (__ptr_00 == (wchar_t *)0x0)) {\n                        free(__ptr);\n                        free(__ptr_00);\n                        *err = _REG_ESPACE;\n                        goto LAB_000314ef;\n                      }\n                      (aVar16.mbcset)->range_ends = __ptr_00;\n                      iVar15 = (aVar16.mbcset)->nranges;\n                      (aVar16.mbcset)->range_starts = __ptr;\n                    }\n                    ((anon_union_4_3_ebfdf496_for_opr *)(__ptr + iVar15))->name = (uchar *)aVar19;\n                    (aVar16.mbcset)->nranges = iVar15 + 1;\n                    (aVar16.mbcset)->range_ends[iVar15] = (wchar_t)local_8c;\n                  }" { (expression_statement "iVar15 = (aVar16.mbcset)->nranges;" (assignment_expression "iVar15 = (aVar16.mbcset)->nranges" identifier = (field_expression "(aVar16.mbcset)->nranges" (parenthesized_expression "(aVar16.mbcset)" ( (field_expression "aVar16.mbcset" identifier . field_identifier) )) -> field_identifier)) ;) (expression_statement "__ptr = (aVar16.mbcset)->range_starts;" (assignment_expression "__ptr = (aVar16.mbcset)->range_starts" identifier = (field_expression "(aVar16.mbcset)->range_starts" (parenthesized_expression "(aVar16.mbcset)" ( (field_expression "aVar16.mbcset" identifier . field_identifier) )) -> field_identifier)) ;) (if_statement "if (iVar15 == local_90) {\n                      local_90 = local_90 * 2 + 1;\n                      iVar10 = local_90;\n                      __ptr = (wchar_t *)realloc(__ptr,local_90 * 4);\n                      __ptr_00 = (wchar_t *)realloc((aVar16.mbcset)->range_ends,local_90 * 4);\n                      if ((__ptr == (wchar_t *)0x0) || (__ptr_00 == (wchar_t *)0x0)) {\n                        free(__ptr);\n                        free(__ptr_00);\n                        *err = _REG_ESPACE;\n                        goto LAB_000314ef;\n                      }\n                      (aVar16.mbcset)->range_ends = __ptr_00;\n                      iVar15 = (aVar16.mbcset)->nranges;\n                      (aVar16.mbcset)->range_starts = __ptr;\n                    }" if (parenthesized_expression "(iVar15 == local_90)" ( (binary_expression "iVar15 == local_90" identifier == identifier) )) (compound_statement "{\n                      local_90 = local_90 * 2 + 1;\n                      iVar10 = local_90;\n                      __ptr = (wchar_t *)realloc(__ptr,local_90 * 4);\n                      __ptr_00 = (wchar_t *)realloc((aVar16.mbcset)->range_ends,local_90 * 4);\n                      if ((__ptr == (wchar_t *)0x0) || (__ptr_00 == (wchar_t *)0x0)) {\n                        free(__ptr);\n                        free(__ptr_00);\n                        *err = _REG_ESPACE;\n                        goto LAB_000314ef;\n                      }\n                      (aVar16.mbcset)->range_ends = __ptr_00;\n                      iVar15 = (aVar16.mbcset)->nranges;\n                      (aVar16.mbcset)->range_starts = __ptr;\n                    }" { (expression_statement "local_90 = local_90 * 2 + 1;" (assignment_expression "local_90 = local_90 * 2 + 1" identifier = (binary_expression "local_90 * 2 + 1" (binary_expression "local_90 * 2" identifier * number_literal) + number_literal)) ;) (expression_statement "iVar10 = local_90;" (assignment_expression "iVar10 = local_90" identifier = identifier) ;) (expression_statement "__ptr = (wchar_t *)realloc(__ptr,local_90 * 4);" (assignment_expression "__ptr = (wchar_t *)realloc(__ptr,local_90 * 4)" identifier = (cast_expression "(wchar_t *)realloc(__ptr,local_90 * 4)" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "realloc(__ptr,local_90 * 4)" identifier (argument_list "(__ptr,local_90 * 4)" ( identifier , (binary_expression "local_90 * 4" identifier * number_literal) ))))) ;) (expression_statement "__ptr_00 = (wchar_t *)realloc((aVar16.mbcset)->range_ends,local_90 * 4);" (assignment_expression "__ptr_00 = (wchar_t *)realloc((aVar16.mbcset)->range_ends,local_90 * 4)" identifier = (cast_expression "(wchar_t *)realloc((aVar16.mbcset)->range_ends,local_90 * 4)" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "realloc((aVar16.mbcset)->range_ends,local_90 * 4)" identifier (argument_list "((aVar16.mbcset)->range_ends,local_90 * 4)" ( (field_expression "(aVar16.mbcset)->range_ends" (parenthesized_expression "(aVar16.mbcset)" ( (field_expression "aVar16.mbcset" identifier . field_identifier) )) -> field_identifier) , (binary_expression "local_90 * 4" identifier * number_literal) ))))) ;) (if_statement "if ((__ptr == (wchar_t *)0x0) || (__ptr_00 == (wchar_t *)0x0)) {\n                        free(__ptr);\n                        free(__ptr_00);\n                        *err = _REG_ESPACE;\n                        goto LAB_000314ef;\n                      }" if (parenthesized_expression "((__ptr == (wchar_t *)0x0) || (__ptr_00 == (wchar_t *)0x0))" ( (binary_expression "(__ptr == (wchar_t *)0x0) || (__ptr_00 == (wchar_t *)0x0)" (parenthesized_expression "(__ptr == (wchar_t *)0x0)" ( (binary_expression "__ptr == (wchar_t *)0x0" identifier == (cast_expression "(wchar_t *)0x0" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(__ptr_00 == (wchar_t *)0x0)" ( (binary_expression "__ptr_00 == (wchar_t *)0x0" identifier == (cast_expression "(wchar_t *)0x0" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n                        free(__ptr);\n                        free(__ptr_00);\n                        *err = _REG_ESPACE;\n                        goto LAB_000314ef;\n                      }" { (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "free(__ptr_00);" (call_expression "free(__ptr_00)" identifier (argument_list "(__ptr_00)" ( identifier ))) ;) (expression_statement "*err = _REG_ESPACE;" (assignment_expression "*err = _REG_ESPACE" (pointer_expression "*err" * identifier) = identifier) ;) (goto_statement "goto LAB_000314ef;" goto statement_identifier ;) })) (expression_statement "(aVar16.mbcset)->range_ends = __ptr_00;" (assignment_expression "(aVar16.mbcset)->range_ends = __ptr_00" (field_expression "(aVar16.mbcset)->range_ends" (parenthesized_expression "(aVar16.mbcset)" ( (field_expression "aVar16.mbcset" identifier . field_identifier) )) -> field_identifier) = identifier) ;) (expression_statement "iVar15 = (aVar16.mbcset)->nranges;" (assignment_expression "iVar15 = (aVar16.mbcset)->nranges" identifier = (field_expression "(aVar16.mbcset)->nranges" (parenthesized_expression "(aVar16.mbcset)" ( (field_expression "aVar16.mbcset" identifier . field_identifier) )) -> field_identifier)) ;) (expression_statement "(aVar16.mbcset)->range_starts = __ptr;" (assignment_expression "(aVar16.mbcset)->range_starts = __ptr" (field_expression "(aVar16.mbcset)->range_starts" (parenthesized_expression "(aVar16.mbcset)" ( (field_expression "aVar16.mbcset" identifier . field_identifier) )) -> field_identifier) = identifier) ;) })) (expression_statement "((anon_union_4_3_ebfdf496_for_opr *)(__ptr + iVar15))->name = (uchar *)aVar19;" (assignment_expression "((anon_union_4_3_ebfdf496_for_opr *)(__ptr + iVar15))->name = (uchar *)aVar19" (field_expression "((anon_union_4_3_ebfdf496_for_opr *)(__ptr + iVar15))->name" (parenthesized_expression "((anon_union_4_3_ebfdf496_for_opr *)(__ptr + iVar15))" ( (cast_expression "(anon_union_4_3_ebfdf496_for_opr *)(__ptr + iVar15)" ( (type_descriptor "anon_union_4_3_ebfdf496_for_opr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__ptr + iVar15)" ( (binary_expression "__ptr + iVar15" identifier + identifier) ))) )) -> field_identifier) = (cast_expression "(uchar *)aVar19" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "(aVar16.mbcset)->nranges = iVar15 + 1;" (assignment_expression "(aVar16.mbcset)->nranges = iVar15 + 1" (field_expression "(aVar16.mbcset)->nranges" (parenthesized_expression "(aVar16.mbcset)" ( (field_expression "aVar16.mbcset" identifier . field_identifier) )) -> field_identifier) = (binary_expression "iVar15 + 1" identifier + number_literal)) ;) (expression_statement "(aVar16.mbcset)->range_ends[iVar15] = (wchar_t)local_8c;" (assignment_expression "(aVar16.mbcset)->range_ends[iVar15] = (wchar_t)local_8c" (subscript_expression "(aVar16.mbcset)->range_ends[iVar15]" (field_expression "(aVar16.mbcset)->range_ends" (parenthesized_expression "(aVar16.mbcset)" ( (field_expression "aVar16.mbcset" identifier . field_identifier) )) -> field_identifier) [ identifier ]) = (cast_expression "(wchar_t)local_8c" ( (type_descriptor "wchar_t" type_identifier) ) identifier)) ;) })) (expression_statement "puVar20 = (uchar *)0x0;" (assignment_expression "puVar20 = (uchar *)0x0" identifier = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n                    if ((aVar19.name <= puVar20) && (puVar20 <= local_8c)) {\n                      aVar13.sbcset[(int)puVar20 >> 5] =\n                           aVar13.sbcset[(int)puVar20 >> 5] | 1 << ((byte)puVar20 & 0x1f);\n                    }\n                    puVar20 = puVar20 + 1;\n                  } while (puVar20 != (uchar *)0x100);" do (compound_statement "{\n                    if ((aVar19.name <= puVar20) && (puVar20 <= local_8c)) {\n                      aVar13.sbcset[(int)puVar20 >> 5] =\n                           aVar13.sbcset[(int)puVar20 >> 5] | 1 << ((byte)puVar20 & 0x1f);\n                    }\n                    puVar20 = puVar20 + 1;\n                  }" { (if_statement "if ((aVar19.name <= puVar20) && (puVar20 <= local_8c)) {\n                      aVar13.sbcset[(int)puVar20 >> 5] =\n                           aVar13.sbcset[(int)puVar20 >> 5] | 1 << ((byte)puVar20 & 0x1f);\n                    }" if (parenthesized_expression "((aVar19.name <= puVar20) && (puVar20 <= local_8c))" ( (binary_expression "(aVar19.name <= puVar20) && (puVar20 <= local_8c)" (parenthesized_expression "(aVar19.name <= puVar20)" ( (binary_expression "aVar19.name <= puVar20" (field_expression "aVar19.name" identifier . field_identifier) <= identifier) )) && (parenthesized_expression "(puVar20 <= local_8c)" ( (binary_expression "puVar20 <= local_8c" identifier <= identifier) ))) )) (compound_statement "{\n                      aVar13.sbcset[(int)puVar20 >> 5] =\n                           aVar13.sbcset[(int)puVar20 >> 5] | 1 << ((byte)puVar20 & 0x1f);\n                    }" { (expression_statement "aVar13.sbcset[(int)puVar20 >> 5] =\n                           aVar13.sbcset[(int)puVar20 >> 5] | 1 << ((byte)puVar20 & 0x1f);" (assignment_expression "aVar13.sbcset[(int)puVar20 >> 5] =\n                           aVar13.sbcset[(int)puVar20 >> 5] | 1 << ((byte)puVar20 & 0x1f)" (subscript_expression "aVar13.sbcset[(int)puVar20 >> 5]" (field_expression "aVar13.sbcset" identifier . field_identifier) [ (binary_expression "(int)puVar20 >> 5" (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ]) = (binary_expression "aVar13.sbcset[(int)puVar20 >> 5] | 1 << ((byte)puVar20 & 0x1f)" (subscript_expression "aVar13.sbcset[(int)puVar20 >> 5]" (field_expression "aVar13.sbcset" identifier . field_identifier) [ (binary_expression "(int)puVar20 >> 5" (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ]) | (binary_expression "1 << ((byte)puVar20 & 0x1f)" number_literal << (parenthesized_expression "((byte)puVar20 & 0x1f)" ( (binary_expression "(byte)puVar20 & 0x1f" (cast_expression "(byte)puVar20" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))))) ;) })) (expression_statement "puVar20 = puVar20 + 1;" (assignment_expression "puVar20 = puVar20 + 1" identifier = (binary_expression "puVar20 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar20 != (uchar *)0x100)" ( (binary_expression "puVar20 != (uchar *)0x100" identifier != (cast_expression "(uchar *)0x100" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "*err = _REG_NOERROR;" (assignment_expression "*err = _REG_NOERROR" (pointer_expression "*err" * identifier) = identifier) ;) (if_statement "if (token->field_0x4 == '\x02') goto LAB_00031615;" if (parenthesized_expression "(token->field_0x4 == '\x02')" ( (binary_expression "token->field_0x4 == '\x02'" (field_expression "token->field_0x4" identifier -> field_identifier) == (char_literal "'\x02'" ' escape_sequence ')) )) (goto_statement "goto LAB_00031615;" goto statement_identifier ;)) (if_statement "if (token->field_0x4 != '\x15') goto code_r0x000314d1;" if (parenthesized_expression "(token->field_0x4 != '\x15')" ( (binary_expression "token->field_0x4 != '\x15'" (field_expression "token->field_0x4" identifier -> field_identifier) != (char_literal "'\x15'" ' escape_sequence ')) )) (goto_statement "goto code_r0x000314d1;" goto statement_identifier ;)) (expression_statement "regexp->cur_idx = regexp->cur_idx + (int)local_c0;" (assignment_expression "regexp->cur_idx = regexp->cur_idx + (int)local_c0" (field_expression "regexp->cur_idx" identifier -> field_identifier) = (binary_expression "regexp->cur_idx + (int)local_c0" (field_expression "regexp->cur_idx" identifier -> field_identifier) + (cast_expression "(int)local_c0" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (bVar7) {\n                    aVar16.sbcset = aVar13.sbcset;\n                    do {\n                      *aVar16.sbcset = ~*aVar16.sbcset;\n                      aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                    } while ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges != aVar16.sbcset);\n                  }" if (parenthesized_expression "(bVar7)" ( identifier )) (compound_statement "{\n                    aVar16.sbcset = aVar13.sbcset;\n                    do {\n                      *aVar16.sbcset = ~*aVar16.sbcset;\n                      aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                    } while ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges != aVar16.sbcset);\n                  }" { (expression_statement "aVar16.sbcset = aVar13.sbcset;" (assignment_expression "aVar16.sbcset = aVar13.sbcset" (field_expression "aVar16.sbcset" identifier . field_identifier) = (field_expression "aVar13.sbcset" identifier . field_identifier)) ;) (do_statement "do {\n                      *aVar16.sbcset = ~*aVar16.sbcset;\n                      aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                    } while ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges != aVar16.sbcset);" do (compound_statement "{\n                      *aVar16.sbcset = ~*aVar16.sbcset;\n                      aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                    }" { (expression_statement "*aVar16.sbcset = ~*aVar16.sbcset;" (assignment_expression "*aVar16.sbcset = ~*aVar16.sbcset" (pointer_expression "*aVar16.sbcset" * (field_expression "aVar16.sbcset" identifier . field_identifier)) = (unary_expression "~*aVar16.sbcset" ~ (pointer_expression "*aVar16.sbcset" * (field_expression "aVar16.sbcset" identifier . field_identifier)))) ;) (expression_statement "aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;" (assignment_expression "aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts" (field_expression "aVar16.sbcset" identifier . field_identifier) = (binary_expression "(re_bitset_ptr_t)&(aVar16.mbcset)->range_starts" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) & (field_expression "(aVar16.mbcset)->range_starts" (parenthesized_expression "(aVar16.mbcset)" ( (field_expression "aVar16.mbcset" identifier . field_identifier) )) -> field_identifier))) ;) }) while (parenthesized_expression "((re_bitset_ptr_t)&(aVar13.mbcset)->nranges != aVar16.sbcset)" ( (binary_expression "(re_bitset_ptr_t)&(aVar13.mbcset)->nranges != aVar16.sbcset" (cast_expression "(re_bitset_ptr_t)&(aVar13.mbcset)->nranges" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) (pointer_expression "&(aVar13.mbcset)->nranges" & (field_expression "(aVar13.mbcset)->nranges" (parenthesized_expression "(aVar13.mbcset)" ( (field_expression "aVar13.mbcset" identifier . field_identifier) )) -> field_identifier))) != (field_expression "aVar16.sbcset" identifier . field_identifier)) )) ;) })) (expression_statement "iVar10 = dfa->mb_cur_max;" (assignment_expression "iVar10 = dfa->mb_cur_max" identifier = (field_expression "dfa->mb_cur_max" identifier -> field_identifier)) ;) (if_statement "if (1 < iVar10) {\n                    pbVar6 = dfa->sb_char;\n                    iVar15 = 0;\n                    do {\n                      aVar13.sbcset[iVar15] = aVar13.sbcset[iVar15] & pbVar6[iVar15];\n                      iVar15 = iVar15 + 1;\n                    } while (iVar15 != 8);\n                  }" if (parenthesized_expression "(1 < iVar10)" ( (binary_expression "1 < iVar10" number_literal < identifier) )) (compound_statement "{\n                    pbVar6 = dfa->sb_char;\n                    iVar15 = 0;\n                    do {\n                      aVar13.sbcset[iVar15] = aVar13.sbcset[iVar15] & pbVar6[iVar15];\n                      iVar15 = iVar15 + 1;\n                    } while (iVar15 != 8);\n                  }" { (expression_statement "pbVar6 = dfa->sb_char;" (assignment_expression "pbVar6 = dfa->sb_char" identifier = (field_expression "dfa->sb_char" identifier -> field_identifier)) ;) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (do_statement "do {\n                      aVar13.sbcset[iVar15] = aVar13.sbcset[iVar15] & pbVar6[iVar15];\n                      iVar15 = iVar15 + 1;\n                    } while (iVar15 != 8);" do (compound_statement "{\n                      aVar13.sbcset[iVar15] = aVar13.sbcset[iVar15] & pbVar6[iVar15];\n                      iVar15 = iVar15 + 1;\n                    }" { (expression_statement "aVar13.sbcset[iVar15] = aVar13.sbcset[iVar15] & pbVar6[iVar15];" (assignment_expression "aVar13.sbcset[iVar15] = aVar13.sbcset[iVar15] & pbVar6[iVar15]" (subscript_expression "aVar13.sbcset[iVar15]" (field_expression "aVar13.sbcset" identifier . field_identifier) [ identifier ]) = (binary_expression "aVar13.sbcset[iVar15] & pbVar6[iVar15]" (subscript_expression "aVar13.sbcset[iVar15]" (field_expression "aVar13.sbcset" identifier . field_identifier) [ identifier ]) & (subscript_expression "pbVar6[iVar15]" identifier [ identifier ]))) ;) (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" identifier = (binary_expression "iVar15 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar15 != 8)" ( (binary_expression "iVar15 != 8" identifier != number_literal) )) ;) })) (if_statement "if ((((((cset.mbcset)->nmbchars != 0) || ((cset.mbcset)->ncoll_syms != 0)) ||\n                       ((cset.mbcset)->nequiv_classes != 0)) || ((cset.mbcset)->nranges != 0)) ||\n                     ((1 < iVar10 &&\n                      (((cset.mbcset)->nchar_classes != 0 || ((*(byte *)(cset.idx + 0x10) & 1) != 0)\n                       ))))) {\n                    dfa->field_0x58 = dfa->field_0x58 | 2;\n                    br_token._4_1_ = 6;\n                    br_token.opr.sbcset = cset.sbcset;\n                    local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                 (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                 (re_dfa_t *)&br_token);\n                    aVar16.sbcset = aVar13.sbcset;\n                    if (local_b0 != (bin_tree_t *)0x0) {\n                      while (*aVar16.sbcset == 0) {\n                        aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                        if ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges == aVar16.sbcset) {\n                          free(aVar13.sbcset);\n                          goto LAB_0003093e;\n                        }\n                      }\n                      br_token._4_1_ = 3;\n                      br_token.opr.sbcset = aVar13.sbcset;\n                      pbVar12 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                  (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                  (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                  (re_dfa_t *)&br_token);\n                      if (pbVar12 != (bin_tree_t *)0x0) {\n                        t._4_1_ = 10;\n                        dfa_1 = (re_dfa_t *)&t;\n                        goto LAB_000319aa;\n                      }\n                    }\nLAB_000319be:\n                    *err = _REG_ESPACE;\n                    goto LAB_000314ef;\n                  }" if (parenthesized_expression "((((((cset.mbcset)->nmbchars != 0) || ((cset.mbcset)->ncoll_syms != 0)) ||\n                       ((cset.mbcset)->nequiv_classes != 0)) || ((cset.mbcset)->nranges != 0)) ||\n                     ((1 < iVar10 &&\n                      (((cset.mbcset)->nchar_classes != 0 || ((*(byte *)(cset.idx + 0x10) & 1) != 0)\n                       )))))" ( (binary_expression "(((((cset.mbcset)->nmbchars != 0) || ((cset.mbcset)->ncoll_syms != 0)) ||\n                       ((cset.mbcset)->nequiv_classes != 0)) || ((cset.mbcset)->nranges != 0)) ||\n                     ((1 < iVar10 &&\n                      (((cset.mbcset)->nchar_classes != 0 || ((*(byte *)(cset.idx + 0x10) & 1) != 0)\n                       ))))" (parenthesized_expression "(((((cset.mbcset)->nmbchars != 0) || ((cset.mbcset)->ncoll_syms != 0)) ||\n                       ((cset.mbcset)->nequiv_classes != 0)) || ((cset.mbcset)->nranges != 0))" ( (binary_expression "((((cset.mbcset)->nmbchars != 0) || ((cset.mbcset)->ncoll_syms != 0)) ||\n                       ((cset.mbcset)->nequiv_classes != 0)) || ((cset.mbcset)->nranges != 0)" (parenthesized_expression "((((cset.mbcset)->nmbchars != 0) || ((cset.mbcset)->ncoll_syms != 0)) ||\n                       ((cset.mbcset)->nequiv_classes != 0))" ( (binary_expression "(((cset.mbcset)->nmbchars != 0) || ((cset.mbcset)->ncoll_syms != 0)) ||\n                       ((cset.mbcset)->nequiv_classes != 0)" (parenthesized_expression "(((cset.mbcset)->nmbchars != 0) || ((cset.mbcset)->ncoll_syms != 0))" ( (binary_expression "((cset.mbcset)->nmbchars != 0) || ((cset.mbcset)->ncoll_syms != 0)" (parenthesized_expression "((cset.mbcset)->nmbchars != 0)" ( (binary_expression "(cset.mbcset)->nmbchars != 0" (field_expression "(cset.mbcset)->nmbchars" (parenthesized_expression "(cset.mbcset)" ( (field_expression "cset.mbcset" identifier . field_identifier) )) -> field_identifier) != number_literal) )) || (parenthesized_expression "((cset.mbcset)->ncoll_syms != 0)" ( (binary_expression "(cset.mbcset)->ncoll_syms != 0" (field_expression "(cset.mbcset)->ncoll_syms" (parenthesized_expression "(cset.mbcset)" ( (field_expression "cset.mbcset" identifier . field_identifier) )) -> field_identifier) != number_literal) ))) )) || (parenthesized_expression "((cset.mbcset)->nequiv_classes != 0)" ( (binary_expression "(cset.mbcset)->nequiv_classes != 0" (field_expression "(cset.mbcset)->nequiv_classes" (parenthesized_expression "(cset.mbcset)" ( (field_expression "cset.mbcset" identifier . field_identifier) )) -> field_identifier) != number_literal) ))) )) || (parenthesized_expression "((cset.mbcset)->nranges != 0)" ( (binary_expression "(cset.mbcset)->nranges != 0" (field_expression "(cset.mbcset)->nranges" (parenthesized_expression "(cset.mbcset)" ( (field_expression "cset.mbcset" identifier . field_identifier) )) -> field_identifier) != number_literal) ))) )) || (parenthesized_expression "((1 < iVar10 &&\n                      (((cset.mbcset)->nchar_classes != 0 || ((*(byte *)(cset.idx + 0x10) & 1) != 0)\n                       ))))" ( (parenthesized_expression "(1 < iVar10 &&\n                      (((cset.mbcset)->nchar_classes != 0 || ((*(byte *)(cset.idx + 0x10) & 1) != 0)\n                       )))" ( (binary_expression "1 < iVar10 &&\n                      (((cset.mbcset)->nchar_classes != 0 || ((*(byte *)(cset.idx + 0x10) & 1) != 0)\n                       ))" (binary_expression "1 < iVar10" number_literal < identifier) && (parenthesized_expression "(((cset.mbcset)->nchar_classes != 0 || ((*(byte *)(cset.idx + 0x10) & 1) != 0)\n                       ))" ( (parenthesized_expression "((cset.mbcset)->nchar_classes != 0 || ((*(byte *)(cset.idx + 0x10) & 1) != 0)\n                       )" ( (binary_expression "(cset.mbcset)->nchar_classes != 0 || ((*(byte *)(cset.idx + 0x10) & 1) != 0)" (binary_expression "(cset.mbcset)->nchar_classes != 0" (field_expression "(cset.mbcset)->nchar_classes" (parenthesized_expression "(cset.mbcset)" ( (field_expression "cset.mbcset" identifier . field_identifier) )) -> field_identifier) != number_literal) || (parenthesized_expression "((*(byte *)(cset.idx + 0x10) & 1) != 0)" ( (binary_expression "(*(byte *)(cset.idx + 0x10) & 1) != 0" (parenthesized_expression "(*(byte *)(cset.idx + 0x10) & 1)" ( (binary_expression "*(byte *)(cset.idx + 0x10) & 1" (pointer_expression "*(byte *)(cset.idx + 0x10)" * (cast_expression "(byte *)(cset.idx + 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(cset.idx + 0x10)" ( (binary_expression "cset.idx + 0x10" (field_expression "cset.idx" identifier . field_identifier) + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) ))) )) (compound_statement "{\n                    dfa->field_0x58 = dfa->field_0x58 | 2;\n                    br_token._4_1_ = 6;\n                    br_token.opr.sbcset = cset.sbcset;\n                    local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                 (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                 (re_dfa_t *)&br_token);\n                    aVar16.sbcset = aVar13.sbcset;\n                    if (local_b0 != (bin_tree_t *)0x0) {\n                      while (*aVar16.sbcset == 0) {\n                        aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                        if ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges == aVar16.sbcset) {\n                          free(aVar13.sbcset);\n                          goto LAB_0003093e;\n                        }\n                      }\n                      br_token._4_1_ = 3;\n                      br_token.opr.sbcset = aVar13.sbcset;\n                      pbVar12 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                  (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                  (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                  (re_dfa_t *)&br_token);\n                      if (pbVar12 != (bin_tree_t *)0x0) {\n                        t._4_1_ = 10;\n                        dfa_1 = (re_dfa_t *)&t;\n                        goto LAB_000319aa;\n                      }\n                    }\nLAB_000319be:\n                    *err = _REG_ESPACE;\n                    goto LAB_000314ef;\n                  }" { (expression_statement "dfa->field_0x58 = dfa->field_0x58 | 2;" (assignment_expression "dfa->field_0x58 = dfa->field_0x58 | 2" (field_expression "dfa->field_0x58" identifier -> field_identifier) = (binary_expression "dfa->field_0x58 | 2" (field_expression "dfa->field_0x58" identifier -> field_identifier) | number_literal)) ;) (expression_statement "br_token._4_1_ = 6;" (assignment_expression "br_token._4_1_ = 6" (field_expression "br_token._4_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "br_token.opr.sbcset = cset.sbcset;" (assignment_expression "br_token.opr.sbcset = cset.sbcset" (field_expression "br_token.opr.sbcset" (field_expression "br_token.opr" identifier . field_identifier) . field_identifier) = (field_expression "cset.sbcset" identifier . field_identifier)) ;) (expression_statement "local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                 (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                 (re_dfa_t *)&br_token);" (assignment_expression "local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                 (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                 (re_dfa_t *)&br_token)" identifier = (call_expression "create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                 (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                 (re_dfa_t *)&br_token)" identifier (argument_list "((re_dfa_t *)&dfa->str_tree_storage,\n                                                 (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                 (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                 (re_dfa_t *)&br_token)" ( (cast_expression "(re_dfa_t *)&dfa->str_tree_storage" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&dfa->str_tree_storage" & (field_expression "dfa->str_tree_storage" identifier -> field_identifier))) , (cast_expression "(bin_tree_t *)&dfa->str_tree_storage_idx" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&dfa->str_tree_storage_idx" & (field_expression "dfa->str_tree_storage_idx" identifier -> field_identifier))) , (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(re_token_t *)0x0" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(re_dfa_t *)&br_token" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&br_token" & identifier)) )))) ;) (expression_statement "aVar16.sbcset = aVar13.sbcset;" (assignment_expression "aVar16.sbcset = aVar13.sbcset" (field_expression "aVar16.sbcset" identifier . field_identifier) = (field_expression "aVar13.sbcset" identifier . field_identifier)) ;) (if_statement "if (local_b0 != (bin_tree_t *)0x0) {\n                      while (*aVar16.sbcset == 0) {\n                        aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                        if ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges == aVar16.sbcset) {\n                          free(aVar13.sbcset);\n                          goto LAB_0003093e;\n                        }\n                      }\n                      br_token._4_1_ = 3;\n                      br_token.opr.sbcset = aVar13.sbcset;\n                      pbVar12 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                  (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                  (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                  (re_dfa_t *)&br_token);\n                      if (pbVar12 != (bin_tree_t *)0x0) {\n                        t._4_1_ = 10;\n                        dfa_1 = (re_dfa_t *)&t;\n                        goto LAB_000319aa;\n                      }\n                    }" if (parenthesized_expression "(local_b0 != (bin_tree_t *)0x0)" ( (binary_expression "local_b0 != (bin_tree_t *)0x0" identifier != (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      while (*aVar16.sbcset == 0) {\n                        aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                        if ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges == aVar16.sbcset) {\n                          free(aVar13.sbcset);\n                          goto LAB_0003093e;\n                        }\n                      }\n                      br_token._4_1_ = 3;\n                      br_token.opr.sbcset = aVar13.sbcset;\n                      pbVar12 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                  (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                  (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                  (re_dfa_t *)&br_token);\n                      if (pbVar12 != (bin_tree_t *)0x0) {\n                        t._4_1_ = 10;\n                        dfa_1 = (re_dfa_t *)&t;\n                        goto LAB_000319aa;\n                      }\n                    }" { (while_statement "while (*aVar16.sbcset == 0) {\n                        aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                        if ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges == aVar16.sbcset) {\n                          free(aVar13.sbcset);\n                          goto LAB_0003093e;\n                        }\n                      }" while (parenthesized_expression "(*aVar16.sbcset == 0)" ( (binary_expression "*aVar16.sbcset == 0" (pointer_expression "*aVar16.sbcset" * (field_expression "aVar16.sbcset" identifier . field_identifier)) == number_literal) )) (compound_statement "{\n                        aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;\n                        if ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges == aVar16.sbcset) {\n                          free(aVar13.sbcset);\n                          goto LAB_0003093e;\n                        }\n                      }" { (expression_statement "aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts;" (assignment_expression "aVar16.sbcset = (re_bitset_ptr_t)&(aVar16.mbcset)->range_starts" (field_expression "aVar16.sbcset" identifier . field_identifier) = (binary_expression "(re_bitset_ptr_t)&(aVar16.mbcset)->range_starts" (parenthesized_expression "(re_bitset_ptr_t)" ( identifier )) & (field_expression "(aVar16.mbcset)->range_starts" (parenthesized_expression "(aVar16.mbcset)" ( (field_expression "aVar16.mbcset" identifier . field_identifier) )) -> field_identifier))) ;) (if_statement "if ((re_bitset_ptr_t)&(aVar13.mbcset)->nranges == aVar16.sbcset) {\n                          free(aVar13.sbcset);\n                          goto LAB_0003093e;\n                        }" if (parenthesized_expression "((re_bitset_ptr_t)&(aVar13.mbcset)->nranges == aVar16.sbcset)" ( (binary_expression "(re_bitset_ptr_t)&(aVar13.mbcset)->nranges == aVar16.sbcset" (cast_expression "(re_bitset_ptr_t)&(aVar13.mbcset)->nranges" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) (pointer_expression "&(aVar13.mbcset)->nranges" & (field_expression "(aVar13.mbcset)->nranges" (parenthesized_expression "(aVar13.mbcset)" ( (field_expression "aVar13.mbcset" identifier . field_identifier) )) -> field_identifier))) == (field_expression "aVar16.sbcset" identifier . field_identifier)) )) (compound_statement "{\n                          free(aVar13.sbcset);\n                          goto LAB_0003093e;\n                        }" { (expression_statement "free(aVar13.sbcset);" (call_expression "free(aVar13.sbcset)" identifier (argument_list "(aVar13.sbcset)" ( (field_expression "aVar13.sbcset" identifier . field_identifier) ))) ;) (goto_statement "goto LAB_0003093e;" goto statement_identifier ;) })) })) (expression_statement "br_token._4_1_ = 3;" (assignment_expression "br_token._4_1_ = 3" (field_expression "br_token._4_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "br_token.opr.sbcset = aVar13.sbcset;" (assignment_expression "br_token.opr.sbcset = aVar13.sbcset" (field_expression "br_token.opr.sbcset" (field_expression "br_token.opr" identifier . field_identifier) . field_identifier) = (field_expression "aVar13.sbcset" identifier . field_identifier)) ;) (expression_statement "pbVar12 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                  (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                  (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                  (re_dfa_t *)&br_token);" (assignment_expression "pbVar12 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                  (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                  (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                  (re_dfa_t *)&br_token)" identifier = (call_expression "create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                                  (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                  (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                  (re_dfa_t *)&br_token)" identifier (argument_list "((re_dfa_t *)&dfa->str_tree_storage,\n                                                  (bin_tree_t *)&dfa->str_tree_storage_idx,\n                                                  (bin_tree_t *)0x0,(re_token_t *)0x0,\n                                                  (re_dfa_t *)&br_token)" ( (cast_expression "(re_dfa_t *)&dfa->str_tree_storage" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&dfa->str_tree_storage" & (field_expression "dfa->str_tree_storage" identifier -> field_identifier))) , (cast_expression "(bin_tree_t *)&dfa->str_tree_storage_idx" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&dfa->str_tree_storage_idx" & (field_expression "dfa->str_tree_storage_idx" identifier -> field_identifier))) , (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(re_token_t *)0x0" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(re_dfa_t *)&br_token" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&br_token" & identifier)) )))) ;) (if_statement "if (pbVar12 != (bin_tree_t *)0x0) {\n                        t._4_1_ = 10;\n                        dfa_1 = (re_dfa_t *)&t;\n                        goto LAB_000319aa;\n                      }" if (parenthesized_expression "(pbVar12 != (bin_tree_t *)0x0)" ( (binary_expression "pbVar12 != (bin_tree_t *)0x0" identifier != (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                        t._4_1_ = 10;\n                        dfa_1 = (re_dfa_t *)&t;\n                        goto LAB_000319aa;\n                      }" { (expression_statement "t._4_1_ = 10;" (assignment_expression "t._4_1_ = 10" (field_expression "t._4_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "dfa_1 = (re_dfa_t *)&t;" (assignment_expression "dfa_1 = (re_dfa_t *)&t" identifier = (cast_expression "(re_dfa_t *)&t" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&t" & identifier))) ;) (goto_statement "goto LAB_000319aa;" goto statement_identifier ;) })) })) (labeled_statement "LAB_000319be:\n                    *err = _REG_ESPACE;" statement_identifier : (expression_statement "*err = _REG_ESPACE;" (assignment_expression "*err = _REG_ESPACE" (pointer_expression "*err" * identifier) = identifier) ;)) (goto_statement "goto LAB_000314ef;" goto statement_identifier ;) })) (expression_statement "free_charset(cset.mbcset);" (call_expression "free_charset(cset.mbcset)" identifier (argument_list "(cset.mbcset)" ( (field_expression "cset.mbcset" identifier . field_identifier) ))) ;) (expression_statement "br_token._4_1_ = 3;" (assignment_expression "br_token._4_1_ = 3" (field_expression "br_token._4_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "dfa_1 = (re_dfa_t *)&br_token;" (assignment_expression "dfa_1 = (re_dfa_t *)&br_token" identifier = (cast_expression "(re_dfa_t *)&br_token" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&br_token" & identifier))) ;) (expression_statement "pbVar12 = (bin_tree_t *)0x0;" (assignment_expression "pbVar12 = (bin_tree_t *)0x0" identifier = (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_b0 = (bin_tree_t *)0x0;" (assignment_expression "local_b0 = (bin_tree_t *)0x0" identifier = (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "br_token.opr.sbcset = aVar13.sbcset;" (assignment_expression "br_token.opr.sbcset = aVar13.sbcset" (field_expression "br_token.opr.sbcset" (field_expression "br_token.opr" identifier . field_identifier) . field_identifier) = (field_expression "aVar13.sbcset" identifier . field_identifier)) ;) (labeled_statement "LAB_000319aa:\n                  local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                               (bin_tree_t *)&dfa->str_tree_storage_idx,pbVar12,\n                                               (re_token_t *)local_b0,dfa_1);" statement_identifier : (expression_statement "local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                               (bin_tree_t *)&dfa->str_tree_storage_idx,pbVar12,\n                                               (re_token_t *)local_b0,dfa_1);" (assignment_expression "local_b0 = create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                               (bin_tree_t *)&dfa->str_tree_storage_idx,pbVar12,\n                                               (re_token_t *)local_b0,dfa_1)" identifier = (call_expression "create_token_tree((re_dfa_t *)&dfa->str_tree_storage,\n                                               (bin_tree_t *)&dfa->str_tree_storage_idx,pbVar12,\n                                               (re_token_t *)local_b0,dfa_1)" identifier (argument_list "((re_dfa_t *)&dfa->str_tree_storage,\n                                               (bin_tree_t *)&dfa->str_tree_storage_idx,pbVar12,\n                                               (re_token_t *)local_b0,dfa_1)" ( (cast_expression "(re_dfa_t *)&dfa->str_tree_storage" ( (type_descriptor "re_dfa_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&dfa->str_tree_storage" & (field_expression "dfa->str_tree_storage" identifier -> field_identifier))) , (cast_expression "(bin_tree_t *)&dfa->str_tree_storage_idx" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&dfa->str_tree_storage_idx" & (field_expression "dfa->str_tree_storage_idx" identifier -> field_identifier))) , identifier , (cast_expression "(re_token_t *)local_b0" ( (type_descriptor "re_token_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;)) (if_statement "if (local_b0 == (bin_tree_t *)0x0) goto LAB_000319be;" if (parenthesized_expression "(local_b0 == (bin_tree_t *)0x0)" ( (binary_expression "local_b0 == (bin_tree_t *)0x0" identifier == (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000319be;" goto statement_identifier ;)) (goto_statement "goto LAB_0003093e;" goto statement_identifier ;) })) (expression_statement "uVar23 = 0xffffffff;" (assignment_expression "uVar23 = 0xffffffff" identifier = number_literal) ;) (expression_statement "aVar19 = start_elem.opr;" (assignment_expression "aVar19 = start_elem.opr" identifier = (field_expression "start_elem.opr" identifier . field_identifier)) ;) (do_statement "do {\n                  if (uVar23 == 0) break;\n                  uVar23 = uVar23 - 1;\n                  uVar22 = *aVar19.name;\n                  aVar19.name = (uchar *)((char *)(aVar19.wch + L'\x01') + (uint)bVar25 * -2);\n                } while (uVar22 != '\0');" do (compound_statement "{\n                  if (uVar23 == 0) break;\n                  uVar23 = uVar23 - 1;\n                  uVar22 = *aVar19.name;\n                  aVar19.name = (uchar *)((char *)(aVar19.wch + L'\x01') + (uint)bVar25 * -2);\n                }" { (if_statement "if (uVar23 == 0) break;" if (parenthesized_expression "(uVar23 == 0)" ( (binary_expression "uVar23 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar23 = uVar23 - 1;" (assignment_expression "uVar23 = uVar23 - 1" identifier = (binary_expression "uVar23 - 1" identifier - number_literal)) ;) (expression_statement "uVar22 = *aVar19.name;" (assignment_expression "uVar22 = *aVar19.name" identifier = (pointer_expression "*aVar19.name" * (field_expression "aVar19.name" identifier . field_identifier))) ;) (expression_statement "aVar19.name = (uchar *)((char *)(aVar19.wch + L'\x01') + (uint)bVar25 * -2);" (assignment_expression "aVar19.name = (uchar *)((char *)(aVar19.wch + L'\x01') + (uint)bVar25 * -2)" (field_expression "aVar19.name" identifier . field_identifier) = (cast_expression "(uchar *)((char *)(aVar19.wch + L'\x01') + (uint)bVar25 * -2)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((char *)(aVar19.wch + L'\x01') + (uint)bVar25 * -2)" ( (binary_expression "(char *)(aVar19.wch + L'\x01') + (uint)bVar25 * -2" (cast_expression "(char *)(aVar19.wch + L'\x01')" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(aVar19.wch + L'\x01')" ( (binary_expression "aVar19.wch + L'\x01'" (field_expression "aVar19.wch" identifier . field_identifier) + (char_literal "L'\x01'" L' escape_sequence ')) ))) + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) )))) ;) }) while (parenthesized_expression "(uVar22 != '\0')" ( (binary_expression "uVar22 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (if_statement "if (~uVar23 - 1 < 2) {\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) {\n                    uVar23 = 0xffffffff;\n                    pcVar24 = (char *)br_token._4_4_;\n                    do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');\n                    if (1 < ~uVar23 - 1) goto LAB_00031b44;\n                  }\n                  b = *start_elem.opr.name;\nLAB_0003178f:\n                  uVar8 = b;\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x0) goto LAB_00031b87;\n                  uVar22 = '\0';\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) goto LAB_000317a2;\n                  goto LAB_000317a5;\n                }" if (parenthesized_expression "(~uVar23 - 1 < 2)" ( (binary_expression "~uVar23 - 1 < 2" (binary_expression "~uVar23 - 1" (unary_expression "~uVar23" ~ identifier) - number_literal) < number_literal) )) (compound_statement "{\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) {\n                    uVar23 = 0xffffffff;\n                    pcVar24 = (char *)br_token._4_4_;\n                    do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');\n                    if (1 < ~uVar23 - 1) goto LAB_00031b44;\n                  }\n                  b = *start_elem.opr.name;\nLAB_0003178f:\n                  uVar8 = b;\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x0) goto LAB_00031b87;\n                  uVar22 = '\0';\n                  if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) goto LAB_000317a2;\n                  goto LAB_000317a5;\n                }" { (if_statement "if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) {\n                    uVar23 = 0xffffffff;\n                    pcVar24 = (char *)br_token._4_4_;\n                    do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');\n                    if (1 < ~uVar23 - 1) goto LAB_00031b44;\n                  }" if (parenthesized_expression "(br_token.opr.sbcset == (re_bitset_ptr_t)0x3)" ( (binary_expression "br_token.opr.sbcset == (re_bitset_ptr_t)0x3" (field_expression "br_token.opr.sbcset" (field_expression "br_token.opr" identifier . field_identifier) . field_identifier) == (cast_expression "(re_bitset_ptr_t)0x3" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal)) )) (compound_statement "{\n                    uVar23 = 0xffffffff;\n                    pcVar24 = (char *)br_token._4_4_;\n                    do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');\n                    if (1 < ~uVar23 - 1) goto LAB_00031b44;\n                  }" { (expression_statement "uVar23 = 0xffffffff;" (assignment_expression "uVar23 = 0xffffffff" identifier = number_literal) ;) (expression_statement "pcVar24 = (char *)br_token._4_4_;" (assignment_expression "pcVar24 = (char *)br_token._4_4_" identifier = (cast_expression "(char *)br_token._4_4_" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "br_token._4_4_" identifier . field_identifier))) ;) (do_statement "do {\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    } while (cVar9 != '\0');" do (compound_statement "{\n                      if (uVar23 == 0) break;\n                      uVar23 = uVar23 - 1;\n                      cVar9 = *pcVar24;\n                      pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;\n                    }" { (if_statement "if (uVar23 == 0) break;" if (parenthesized_expression "(uVar23 == 0)" ( (binary_expression "uVar23 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar23 = uVar23 - 1;" (assignment_expression "uVar23 = uVar23 - 1" identifier = (binary_expression "uVar23 - 1" identifier - number_literal)) ;) (expression_statement "cVar9 = *pcVar24;" (assignment_expression "cVar9 = *pcVar24" identifier = (pointer_expression "*pcVar24" * identifier)) ;) (expression_statement "pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1;" (assignment_expression "pcVar24 = pcVar24 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pcVar24 + (uint)bVar25 * -2 + 1" (binary_expression "pcVar24 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (if_statement "if (1 < ~uVar23 - 1) goto LAB_00031b44;" if (parenthesized_expression "(1 < ~uVar23 - 1)" ( (binary_expression "1 < ~uVar23 - 1" number_literal < (binary_expression "~uVar23 - 1" (unary_expression "~uVar23" ~ identifier) - number_literal)) )) (goto_statement "goto LAB_00031b44;" goto statement_identifier ;)) })) (expression_statement "b = *start_elem.opr.name;" (assignment_expression "b = *start_elem.opr.name" identifier = (pointer_expression "*start_elem.opr.name" * (field_expression "start_elem.opr.name" (field_expression "start_elem.opr" identifier . field_identifier) . field_identifier))) ;) (labeled_statement "LAB_0003178f:\n                  uVar8 = b;" statement_identifier : (expression_statement "uVar8 = b;" (assignment_expression "uVar8 = b" identifier = identifier) ;)) (if_statement "if (br_token.opr.sbcset == (re_bitset_ptr_t)0x0) goto LAB_00031b87;" if (parenthesized_expression "(br_token.opr.sbcset == (re_bitset_ptr_t)0x0)" ( (binary_expression "br_token.opr.sbcset == (re_bitset_ptr_t)0x0" (field_expression "br_token.opr.sbcset" (field_expression "br_token.opr" identifier . field_identifier) . field_identifier) == (cast_expression "(re_bitset_ptr_t)0x0" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_00031b87;" goto statement_identifier ;)) (expression_statement "uVar22 = '\0';" (assignment_expression "uVar22 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (br_token.opr.sbcset == (re_bitset_ptr_t)0x3) goto LAB_000317a2;" if (parenthesized_expression "(br_token.opr.sbcset == (re_bitset_ptr_t)0x3)" ( (binary_expression "br_token.opr.sbcset == (re_bitset_ptr_t)0x3" (field_expression "br_token.opr.sbcset" (field_expression "br_token.opr" identifier . field_identifier) . field_identifier) == (cast_expression "(re_bitset_ptr_t)0x3" ( (type_descriptor "re_bitset_ptr_t" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_000317a2;" goto statement_identifier ;)) (goto_statement "goto LAB_000317a5;" goto statement_identifier ;) })) (labeled_statement "LAB_00031b44:\n                *err = _REG_ECOLLATE;" statement_identifier : (expression_statement "*err = _REG_ECOLLATE;" (assignment_expression "*err = _REG_ECOLLATE" (pointer_expression "*err" * identifier) = identifier) ;)) }))) }) (else_clause "else {\n              *err = rVar14;\n            }" else (compound_statement "{\n              *err = rVar14;\n            }" { (expression_statement "*err = rVar14;" (assignment_expression "*err = rVar14" (pointer_expression "*err" * identifier) = identifier) ;) }))) }))) }) (else_clause "else {\n          *err = rVar14;\n        }" else (compound_statement "{\n          *err = rVar14;\n        }" { (expression_statement "*err = rVar14;" (assignment_expression "*err = rVar14" (pointer_expression "*err" * identifier) = identifier) ;) }))) (goto_statement "goto LAB_000314ef;" goto statement_identifier ;) })) (expression_statement "*(byte *)(cset.idx + 0x10) = *(byte *)(cset.idx + 0x10) | 1;" (assignment_expression "*(byte *)(cset.idx + 0x10) = *(byte *)(cset.idx + 0x10) | 1" (pointer_expression "*(byte *)(cset.idx + 0x10)" * (cast_expression "(byte *)(cset.idx + 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(cset.idx + 0x10)" ( (binary_expression "cset.idx + 0x10" (field_expression "cset.idx" identifier . field_identifier) + number_literal) )))) = (binary_expression "*(byte *)(cset.idx + 0x10) | 1" (pointer_expression "*(byte *)(cset.idx + 0x10)" * (cast_expression "(byte *)(cset.idx + 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(cset.idx + 0x10)" ( (binary_expression "cset.idx + 0x10" (field_expression "cset.idx" identifier . field_identifier) + number_literal) )))) | number_literal)) ;) (if_statement "if ((syntax & 0x100) != 0) {\n        *aVar13.sbcset = *aVar13.sbcset | 0x400;\n      }" if (parenthesized_expression "((syntax & 0x100) != 0)" ( (binary_expression "(syntax & 0x100) != 0" (parenthesized_expression "(syntax & 0x100)" ( (binary_expression "syntax & 0x100" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        *aVar13.sbcset = *aVar13.sbcset | 0x400;\n      }" { (expression_statement "*aVar13.sbcset = *aVar13.sbcset | 0x400;" (assignment_expression "*aVar13.sbcset = *aVar13.sbcset | 0x400" (pointer_expression "*aVar13.sbcset" * (field_expression "aVar13.sbcset" identifier . field_identifier)) = (binary_expression "*aVar13.sbcset | 0x400" (pointer_expression "*aVar13.sbcset" * (field_expression "aVar13.sbcset" identifier . field_identifier)) | number_literal)) ;) })) (expression_statement "regexp->cur_idx = regexp->cur_idx + (int)local_c0;" (assignment_expression "regexp->cur_idx = regexp->cur_idx + (int)local_c0" (field_expression "regexp->cur_idx" identifier -> field_identifier) = (binary_expression "regexp->cur_idx + (int)local_c0" (field_expression "regexp->cur_idx" identifier -> field_identifier) + (cast_expression "(int)local_c0" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar10 = 0x315ee;" (assignment_expression "iVar10 = 0x315ee" identifier = number_literal) ;) (expression_statement "local_c0 = (bin_tree_t *)peek_token_bracket(token,regexp,syntax);" (assignment_expression "local_c0 = (bin_tree_t *)peek_token_bracket(token,regexp,syntax)" identifier = (cast_expression "(bin_tree_t *)peek_token_bracket(token,regexp,syntax)" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "peek_token_bracket(token,regexp,syntax)" identifier (argument_list "(token,regexp,syntax)" ( identifier , identifier , identifier ))))) ;) (expression_statement "cVar9 = token->field_0x4;" (assignment_expression "cVar9 = token->field_0x4" identifier = (field_expression "token->field_0x4" identifier -> field_identifier)) ;) (if_statement "if (cVar9 != '\x02') {\n        bVar7 = true;\n        goto LAB_000312a6;\n      }" if (parenthesized_expression "(cVar9 != '\x02')" ( (binary_expression "cVar9 != '\x02'" identifier != (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n        bVar7 = true;\n        goto LAB_000312a6;\n      }" { (expression_statement "bVar7 = true;" (assignment_expression "bVar7 = true" identifier = true) ;) (goto_statement "goto LAB_000312a6;" goto statement_identifier ;) })) })) (expression_statement "*err = _REG_BADPAT;" (assignment_expression "*err = _REG_BADPAT" (pointer_expression "*err" * identifier) = identifier) ;) (labeled_statement "LAB_000314ef:\n    free(aVar13.sbcset);" statement_identifier : (expression_statement "free(aVar13.sbcset);" (call_expression "free(aVar13.sbcset)" identifier (argument_list "(aVar13.sbcset)" ( (field_expression "aVar13.sbcset" identifier . field_identifier) ))) ;)) (expression_statement "free_charset(cset.mbcset);" (call_expression "free_charset(cset.mbcset)" identifier (argument_list "(cset.mbcset)" ( (field_expression "cset.mbcset" identifier . field_identifier) ))) ;) (if_statement "if (*err == _REG_NOERROR) {\n      local_b0 = (bin_tree_t *)0x0;\n      goto LAB_0003093e;\n    }" if (parenthesized_expression "(*err == _REG_NOERROR)" ( (binary_expression "*err == _REG_NOERROR" (pointer_expression "*err" * identifier) == identifier) )) (compound_statement "{\n      local_b0 = (bin_tree_t *)0x0;\n      goto LAB_0003093e;\n    }" { (expression_statement "local_b0 = (bin_tree_t *)0x0;" (assignment_expression "local_b0 = (bin_tree_t *)0x0" identifier = (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0003093e;" goto statement_identifier ;) })) (labeled_statement "_L3134:\n    local_b0 = (bin_tree_t *)0x0;" statement_identifier : (expression_statement "local_b0 = (bin_tree_t *)0x0;" (assignment_expression "local_b0 = (bin_tree_t *)0x0" identifier = (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (goto_statement "goto LAB_00030965;" goto statement_identifier ;)) (case_statement "case '\x17':\n    if ((syntax & 0x1000000) == 0) goto _L3121;\nLAB_00030b48:\n    local_b0 = (bin_tree_t *)0x0;\n    *err = _REG_BADRPT;\n    goto LAB_00030965;" case (char_literal "'\x17'" ' escape_sequence ') : (if_statement "if ((syntax & 0x1000000) == 0) goto _L3121;" if (parenthesized_expression "((syntax & 0x1000000) == 0)" ( (binary_expression "(syntax & 0x1000000) == 0" (parenthesized_expression "(syntax & 0x1000000)" ( (binary_expression "syntax & 0x1000000" identifier & number_literal) )) == number_literal) )) (goto_statement "goto _L3121;" goto statement_identifier ;)) (labeled_statement "LAB_00030b48:\n    local_b0 = (bin_tree_t *)0x0;" statement_identifier : (expression_statement "local_b0 = (bin_tree_t *)0x0;" (assignment_expression "local_b0 = (bin_tree_t *)0x0" identifier = (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "*err = _REG_BADRPT;" (assignment_expression "*err = _REG_BADRPT" (pointer_expression "*err" * identifier) = identifier) ;) (goto_statement "goto LAB_00030965;" goto statement_identifier ;)) (case_statement "case ' ':" case (char_literal "' '" ' character ') :) (case_statement "case '!':\n    local_b0 = build_charclass_op(dfa,regexp->trans,"alnum","_",cVar9 == '!',err);\n    rVar14 = *err;\n    goto joined_r0x00030f59;" case (char_literal "'!'" ' character ') : (expression_statement "local_b0 = build_charclass_op(dfa,regexp->trans,"alnum","_",cVar9 == '!',err);" (assignment_expression "local_b0 = build_charclass_op(dfa,regexp->trans,"alnum","_",cVar9 == '!',err)" identifier = (call_expression "build_charclass_op(dfa,regexp->trans,"alnum","_",cVar9 == '!',err)" identifier (argument_list "(dfa,regexp->trans,"alnum","_",cVar9 == '!',err)" ( identifier , (field_expression "regexp->trans" identifier -> field_identifier) , (string_literal ""alnum"" " string_content ") , (string_literal ""_"" " string_content ") , (binary_expression "cVar9 == '!'" identifier == (char_literal "'!'" ' character ')) , identifier )))) ;) (expression_statement "rVar14 = *err;" (assignment_expression "rVar14 = *err" identifier = (pointer_expression "*err" * identifier)) ;) (goto_statement "goto joined_r0x00030f59;" goto statement_identifier ;)) (case_statement "case '\"':" case (char_literal "'\"'" ' escape_sequence ') :) (case_statement "case '#':\n    local_b0 = build_charclass_op(dfa,regexp->trans,"space","",cVar9 == '#',err);\n    rVar14 = *err;\njoined_r0x00030f59:\n    if ((rVar14 != _REG_NOERROR) && (local_b0 == (bin_tree_t *)0x0)) goto _L3134;\n    goto LAB_0003093e;" case (char_literal "'#'" ' character ') : (expression_statement "local_b0 = build_charclass_op(dfa,regexp->trans,"space","",cVar9 == '#',err);" (assignment_expression "local_b0 = build_charclass_op(dfa,regexp->trans,"space","",cVar9 == '#',err)" identifier = (call_expression "build_charclass_op(dfa,regexp->trans,"space","",cVar9 == '#',err)" identifier (argument_list "(dfa,regexp->trans,"space","",cVar9 == '#',err)" ( identifier , (field_expression "regexp->trans" identifier -> field_identifier) , (string_literal ""space"" " string_content ") , (string_literal """" " ") , (binary_expression "cVar9 == '#'" identifier == (char_literal "'#'" ' character ')) , identifier )))) ;) (expression_statement "rVar14 = *err;" (assignment_expression "rVar14 = *err" identifier = (pointer_expression "*err" * identifier)) ;) (labeled_statement "joined_r0x00030f59:\n    if ((rVar14 != _REG_NOERROR) && (local_b0 == (bin_tree_t *)0x0)) goto _L3134;" statement_identifier : (if_statement "if ((rVar14 != _REG_NOERROR) && (local_b0 == (bin_tree_t *)0x0)) goto _L3134;" if (parenthesized_expression "((rVar14 != _REG_NOERROR) && (local_b0 == (bin_tree_t *)0x0))" ( (binary_expression "(rVar14 != _REG_NOERROR) && (local_b0 == (bin_tree_t *)0x0)" (parenthesized_expression "(rVar14 != _REG_NOERROR)" ( (binary_expression "rVar14 != _REG_NOERROR" identifier != identifier) )) && (parenthesized_expression "(local_b0 == (bin_tree_t *)0x0)" ( (binary_expression "local_b0 == (bin_tree_t *)0x0" identifier == (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (goto_statement "goto _L3134;" goto statement_identifier ;))) (goto_statement "goto LAB_0003093e;" goto statement_identifier ;)) (case_statement "case '$':\n    local_b0 = (bin_tree_t *)0x0;\n    *err = _REG_EESCAPE;\n    goto LAB_00030965;" case (char_literal "'$'" ' character ') : (expression_statement "local_b0 = (bin_tree_t *)0x0;" (assignment_expression "local_b0 = (bin_tree_t *)0x0" identifier = (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*err = _REG_EESCAPE;" (assignment_expression "*err = _REG_EESCAPE" (pointer_expression "*err" * identifier) = identifier) ;) (goto_statement "goto LAB_00030965;" goto statement_identifier ;)) })) (expression_statement "local_b0 = (bin_tree_t *)0x0;" (assignment_expression "local_b0 = (bin_tree_t *)0x0" identifier = (cast_expression "(bin_tree_t *)0x0" ( (type_descriptor "bin_tree_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*err = _REG_ESPACE;" (assignment_expression "*err = _REG_ESPACE" (pointer_expression "*err" * identifier) = identifier) ;) (labeled_statement "LAB_00030965:\n  if (iVar3 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_b0;\n  }" statement_identifier : (if_statement "if (iVar3 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_b0;\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 local_b0;\n  }" { (return_statement "return local_b0;" return identifier ;) }))) comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) (labeled_statement "code_r0x000314d1:\n  syntax_00 = 0;" statement_identifier : (expression_statement "syntax_00 = 0;" (assignment_expression "syntax_00 = 0" identifier = number_literal) ;)) (goto_statement "goto LAB_000312e4;" goto statement_identifier ;) }))
(translation_unit "int __regparm3\nFUN_00030880(int param_1,int *param_2,uint *param_3,uint param_4,int param_5,int *param_6)\n\n{\n  bool bVar1;\n  char cVar2;\n  int iVar3;\n  int iVar4;\n  uint *__ptr;\n  uint *puVar5;\n  undefined4 uVar6;\n  uint *puVar7;\n  ushort **ppuVar8;\n  ushort *puVar9;\n  char *pcVar10;\n  void *__ptr_00;\n  void *__ptr_01;\n  char *pcVar11;\n  int iVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  int iVar16;\n  int in_GS_OFFSET;\n  byte bVar17;\n  uint **ppuVar18;\n  uint uStack_c0;\n  int local_b0;\n  int iStack_a4;\n  uint uStack_90;\n  char *pcStack_8c;\n  uint *puStack_70;\n  char *pcStack_6c;\n  uint *puStack_68;\n  char cStack_64;\n  char acStack_60 [32];\n  char acStack_40 [32];\n  int local_20;\n  \n  bVar17 = 0;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar3 = *param_2;\n  cVar2 = (char)param_3[1];\n  switch(cVar2) {\n  default:\n    goto LAB_00030e58;\n  case '\x01':\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\n      if (*(int *)(iVar3 + 0x5c) < 2) goto code_r0x0003093e;\n      do {\n        iVar3 = *(int *)(param_1 + 0x28);\n        if (((*(int *)(param_1 + 0x38) <= iVar3) || (iVar3 == *(int *)(param_1 + 0x1c))) ||\n           (*(int *)(*(int *)(param_1 + 8) + iVar3 * 4) != -1)) goto code_r0x0003093e;\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        iVar3 = FUN_00028330(0,param_3);\n        cStack_64 = '\x10';\n        local_b0 = FUN_00028330(iVar3,&puStack_68);\n      } while (iVar3 != 0 && local_b0 != 0);\n    }\n    break;\n  case '\x04':\n    uVar14 = 1 << ((byte)*param_3 & 0x1f);\n    if ((*(uint *)(iVar3 + 0x54) & uVar14) == 0) {\n      local_b0 = 0;\n      *param_6 = 6;\n      goto LAB_00030965;\n    }\n    *(uint *)(iVar3 + 0x50) = *(uint *)(iVar3 + 0x50) | uVar14;\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\n      *(int *)(iVar3 + 0x4c) = *(int *)(iVar3 + 0x4c) + 1;\n      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n      goto code_r0x0003093e;\n    }\n    break;\n  case '\x05':\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 == 0) break;\n    if (1 < *(int *)(iVar3 + 0x5c)) {\n      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n    }\n    goto code_r0x0003093e;\n  case '\b':\n    uVar14 = param_2[6];\n    param_2[6] = uVar14 + 1;\n    iVar16 = FUN_000300e0();\n    *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n    if ((char)param_3[1] == '\t') {\ncode_r0x00030fd0:\n      if (uVar14 < 9) {\n        *(uint *)(iVar3 + 0x54) = *(uint *)(iVar3 + 0x54) | 1 << ((byte)uVar14 & 0x1f);\n      }\n      cStack_64 = '\x11';\n      local_b0 = FUN_00028330(0,&puStack_68);\n      if (local_b0 != 0) {\n        *(uint *)(local_b0 + 0x14) = uVar14;\n        goto code_r0x0003093e;\n      }\n      break;\n    }\n    iVar16 = FUN_00031e70(param_4,param_5 + 1,param_6);\n    if (*param_6 == 0) {\n      if ((char)param_3[1] == '\t') goto code_r0x00030fd0;\n      if (iVar16 != 0) {\n        FUN_00025a40();\n      }\n      *param_6 = 8;\n    }\n    goto LAB_00030e58;\n  case '\t':\ncode_r0x000313dd:\n    if ((param_4 & 0x20000) == 0) {\n      local_b0 = 0;\n      *param_6 = 0x10;\n      goto LAB_00030965;\n    }\n  case '\x18':\ncode_r0x00030910:\n    *(char *)(param_3 + 1) = '\x01';\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\ncode_r0x0003093e:\n      iVar3 = FUN_000300e0();\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n      uVar14 = (uint)(byte)param_3[1];\n      do {\n        bVar17 = (byte)uVar14;\n        if ((0x17 < bVar17) || ((0x8c0800U >> (uVar14 & 0x1f) & 1) == 0)) goto LAB_00030965;\n        uVar6 = *(undefined4 *)(param_1 + 0x28);\n        uVar14 = *param_3;\n        uVar13 = param_3[1];\n        iStack_a4 = local_b0;\n        if (bVar17 == 0x17) {\n          uVar15 = FUN_000307e0();\n          if (uVar15 == 0xffffffff) {\n            if (((char)param_3[1] == '\x01') && ((char)*param_3 == ',')) {\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\ncode_r0x00030e40:\n            *param_6 = 10;\n          }\n          else {\n            if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }\ncode_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }\ncode_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;\n            *param_3 = uVar14;\n            param_3[1] = uVar13;\n            *(char *)(param_3 + 1) = '\x01';\n            iVar3 = local_b0;\ncode_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;\n          }\ncode_r0x00030e4a:\n          if (local_b0 == 0) goto LAB_00030e58;\ncode_r0x00030bea:\n          FUN_00025a40();\n          local_b0 = 0;\n          goto LAB_00030965;\n        }\n        uVar15 = (uint)(bVar17 == 0x12);\n        if (bVar17 == 0x13) {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 == 0) goto code_r0x00030d10;\n          if (*(char *)(local_b0 + 0x18) == '\x11') {\n            uStack_c0 = 1;\n            iStack_a4 = 0;\n            goto code_r0x00030c76;\n          }\n          uStack_c0 = 1;\n          cStack_64 = '\n';\n          iStack_a4 = 0;\ncode_r0x00030a18:\n          iVar3 = FUN_00028330(0,&puStack_68);\n          if (iVar3 == 0) {\ncode_r0x00030be0:\n            *param_6 = 0xc;\n            goto code_r0x00030bea;\n          }\n          for (iVar16 = uVar15 + 2; iVar16 <= (int)uStack_c0; iVar16 = iVar16 + 1) {\n            iVar3 = FUN_00028410();\n            cStack_64 = '\x10';\n            iVar4 = FUN_00028330(iVar3,&puStack_68);\n            if ((iVar3 == 0) || (iVar4 == 0)) goto code_r0x00030be0;\n            cStack_64 = '\n';\n            iVar3 = FUN_00028330(0,&puStack_68);\n            if (iVar3 == 0) goto code_r0x00030be0;\n          }\n          if (iStack_a4 != 0) {\n            cStack_64 = '\x10';\n            iVar3 = FUN_00028330(iVar3,&puStack_68);\n            goto code_r0x00030af2;\n          }\n        }\n        else {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 != 0) {\n            if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }\n            uStack_c0 = 0xffffffff;\n            uVar15 = 1;\ncode_r0x00030e9c:\n            iVar3 = FUN_00028410();\n            if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }\n            goto code_r0x00030be0;\n          }\ncode_r0x00030d10:\n          if (*param_6 != 0) goto LAB_00030e58;\ncode_r0x00030d1e:\n          local_b0 = 0;\n          iVar3 = local_b0;\n        }\ncode_r0x00030b08:\n        local_b0 = iVar3;\n        bVar17 = (byte)param_3[1];\n        uVar14 = (uint)bVar17;\n      } while (((param_4 & 0x1000000) == 0) || ((bVar17 != 0xb && (bVar17 != 0x17))));\n      if (local_b0 != 0) {\n        FUN_00025a40();\n      }\n      goto code_r0x00030b48;\n    }\n    break;\n  case '\v':\n  case '\x12':\n  case '\x13':\ncode_r0x000308ec:\n    if ((param_4 & 0x20) == 0) {\n      if ((param_4 & 0x10) != 0) {\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        local_b0 = FUN_00030880(param_4,param_5,param_6);\n        goto LAB_00030965;\n      }\n      if (cVar2 == '\t') goto code_r0x000313dd;\n      goto code_r0x00030910;\n    }\n    goto code_r0x00030b48;\n  case '\f':\n    uStack_c0 = *param_3;\n    if (((uStack_c0 & 0x30f) != 0) && (bVar17 = *(byte *)(iVar3 + 0x58), (bVar17 & 0x10) == 0)) {\n      *(byte *)(iVar3 + 0x58) = bVar17 | 0x10;\n      if ((bVar17 & 8) == 0) {\n        *(undefined4 *)(iVar3 + 0x60) = 0;\n        *(undefined4 *)(iVar3 + 100) = 0x3ff0000;\n        *(undefined4 *)(iVar3 + 0x68) = 0x87fffffe;\n        *(undefined4 *)(iVar3 + 0x6c) = 0x7fffffe;\n        if ((bVar17 & 4) != 0) {\n          *(undefined4 *)(iVar3 + 0x70) = 0;\n          *(undefined4 *)(iVar3 + 0x74) = 0;\n          *(undefined4 *)(iVar3 + 0x78) = 0;\n          *(undefined4 *)(iVar3 + 0x7c) = 0;\n          uStack_c0 = *param_3;\n          goto code_r0x00031089;\n        }\n        iVar4 = 0x80;\n        iVar16 = 4;\n      }\n      else {\n        iVar4 = 0;\n        iVar16 = 0;\n      }\n      ppuVar8 = __ctype_b_loc();\n      iVar16 = iVar3 + iVar16 * 4;\n      puVar9 = *ppuVar8 + iVar4;\n      do {\n        iVar12 = 0;\n        do {\n          if (((puVar9[iVar12] & 8) != 0) || (iVar4 + iVar12 == 0x5f)) {\n            *(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f);\n          }\n          iVar12 = iVar12 + 1;\n        } while (iVar12 != 0x20);\n        iVar4 = iVar4 + 0x20;\n        iVar16 = iVar16 + 4;\n        puVar9 = puVar9 + 0x20;\n      } while (iVar3 + 0x20 != iVar16);\n    }\ncode_r0x00031089:\n    if ((uStack_c0 - 0x100 & 0xfffffeff) == 0) {\n      if (uStack_c0 == 0x100) {\n        *param_3 = 6;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 9;\n      }\n      else {\n        *param_3 = 5;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 10;\n      }\n      iVar3 = FUN_00028330(0,param_3);\n      cStack_64 = '\n';\n      local_b0 = FUN_00028330(iVar3,&puStack_68);\n      if (uStack_c0 == 0 || iVar3 == 0) break;\n    }\n    else {\n      local_b0 = FUN_00028330(0,param_3);\n    }\n    if (local_b0 != 0) {\n      iVar3 = FUN_000300e0();\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n      goto LAB_00030965;\n    }\n    break;\n  case '\x14':\n    __ptr = (uint *)calloc(0x20,1);\n    puVar5 = (uint *)calloc(0x28,1);\n    if (__ptr == (uint *)0x0 || puVar5 == (uint *)0x0) {\n      free(__ptr);\n      free(puVar5);\n      *param_6 = 0xc;\n      local_b0 = 0;\n      goto LAB_00030965;\n    }\n    uStack_c0 = FUN_00025ab0();\n    cVar2 = (char)param_3[1];\n    if (cVar2 != '\x02') {\n      bVar1 = false;\n      if (cVar2 != '\x19') {\ncode_r0x000312a6:\n        if (cVar2 == '\x15') {\n          *(char *)(param_3 + 1) = '\x01';\n        }\n        uStack_90 = 0;\n        uVar6 = 1;\ncode_r0x000312e4:\n        iVar16 = FUN_0002fec0(uStack_c0,param_4,uVar6);\n        if (iVar16 == 0) {\n          iVar16 = FUN_00025ab0();\n          if ((char)param_3[1] == '\x02') {\ncode_r0x00031615:\n            *param_6 = 7;\n          }\n          else {\n            if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    \n                    \n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }\n            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n            uVar6 = FUN_00025ab0();\n            if (cStack_64 == '\x02') goto code_r0x00031615;\n            if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }\n            pcStack_6c = acStack_40;\n            puStack_70 = (uint *)0x3;\n            uVar14 = 1;\n            iVar16 = FUN_0002fec0(uVar6,param_4,1);\n            if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }\n          }\n        }\n        else {\n          *param_6 = iVar16;\n        }\n        goto code_r0x000314ef;\n      }\n      *(byte *)(puVar5 + 4) = (byte)puVar5[4] | 1;\n      if ((param_4 & 0x100) != 0) {\n        *__ptr = *__ptr | 0x400;\n      }\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n      uStack_c0 = FUN_00025ab0();\n      cVar2 = (char)param_3[1];\n      if (cVar2 != '\x02') {\n        bVar1 = true;\n        goto code_r0x000312a6;\n      }\n    }\n    *param_6 = 2;\ncode_r0x000314ef:\n    free(__ptr);\n    FUN_00026c30();\n    if (*param_6 == 0) {\n      local_b0 = 0;\n      goto code_r0x0003093e;\n    }\nLAB_00030e58:\n    local_b0 = 0;\n    goto LAB_00030965;\n  case '\x17':\n    if ((param_4 & 0x1000000) == 0) goto code_r0x000308ec;\ncode_r0x00030b48:\n    local_b0 = 0;\n    *param_6 = 0xd;\n    goto LAB_00030965;\n  case ' ':\n  case '!':\n    local_b0 = FUN_0002b9b0(&UNK_000370bb,cVar2 == '!',param_6);\n    iVar3 = *param_6;\n    goto joined_r0x00030f59;\n  case '\"':\n  case '#':\n    local_b0 = FUN_0002b9b0("",cVar2 == '#',param_6);\n    iVar3 = *param_6;\njoined_r0x00030f59:\n    if ((iVar3 != 0) && (local_b0 == 0)) goto LAB_00030e58;\n    goto code_r0x0003093e;\n  case '$':\n    local_b0 = 0;\n    *param_6 = 5;\n    goto LAB_00030965;\n  }\n  local_b0 = 0;\n  *param_6 = 0xc;\nLAB_00030965:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00036030();\n  }\n  return local_b0;\ncode_r0x000314d1:\n  uVar6 = 0;\n  goto code_r0x000312e4;\n}\n\n" (function_definition "int __regparm3\nFUN_00030880(int param_1,int *param_2,uint *param_3,uint param_4,int param_5,int *param_6)\n\n{\n  bool bVar1;\n  char cVar2;\n  int iVar3;\n  int iVar4;\n  uint *__ptr;\n  uint *puVar5;\n  undefined4 uVar6;\n  uint *puVar7;\n  ushort **ppuVar8;\n  ushort *puVar9;\n  char *pcVar10;\n  void *__ptr_00;\n  void *__ptr_01;\n  char *pcVar11;\n  int iVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  int iVar16;\n  int in_GS_OFFSET;\n  byte bVar17;\n  uint **ppuVar18;\n  uint uStack_c0;\n  int local_b0;\n  int iStack_a4;\n  uint uStack_90;\n  char *pcStack_8c;\n  uint *puStack_70;\n  char *pcStack_6c;\n  uint *puStack_68;\n  char cStack_64;\n  char acStack_60 [32];\n  char acStack_40 [32];\n  int local_20;\n  \n  bVar17 = 0;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar3 = *param_2;\n  cVar2 = (char)param_3[1];\n  switch(cVar2) {\n  default:\n    goto LAB_00030e58;\n  case '\x01':\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\n      if (*(int *)(iVar3 + 0x5c) < 2) goto code_r0x0003093e;\n      do {\n        iVar3 = *(int *)(param_1 + 0x28);\n        if (((*(int *)(param_1 + 0x38) <= iVar3) || (iVar3 == *(int *)(param_1 + 0x1c))) ||\n           (*(int *)(*(int *)(param_1 + 8) + iVar3 * 4) != -1)) goto code_r0x0003093e;\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        iVar3 = FUN_00028330(0,param_3);\n        cStack_64 = '\x10';\n        local_b0 = FUN_00028330(iVar3,&puStack_68);\n      } while (iVar3 != 0 && local_b0 != 0);\n    }\n    break;\n  case '\x04':\n    uVar14 = 1 << ((byte)*param_3 & 0x1f);\n    if ((*(uint *)(iVar3 + 0x54) & uVar14) == 0) {\n      local_b0 = 0;\n      *param_6 = 6;\n      goto LAB_00030965;\n    }\n    *(uint *)(iVar3 + 0x50) = *(uint *)(iVar3 + 0x50) | uVar14;\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\n      *(int *)(iVar3 + 0x4c) = *(int *)(iVar3 + 0x4c) + 1;\n      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n      goto code_r0x0003093e;\n    }\n    break;\n  case '\x05':\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 == 0) break;\n    if (1 < *(int *)(iVar3 + 0x5c)) {\n      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n    }\n    goto code_r0x0003093e;\n  case '\b':\n    uVar14 = param_2[6];\n    param_2[6] = uVar14 + 1;\n    iVar16 = FUN_000300e0();\n    *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n    if ((char)param_3[1] == '\t') {\ncode_r0x00030fd0:\n      if (uVar14 < 9) {\n        *(uint *)(iVar3 + 0x54) = *(uint *)(iVar3 + 0x54) | 1 << ((byte)uVar14 & 0x1f);\n      }\n      cStack_64 = '\x11';\n      local_b0 = FUN_00028330(0,&puStack_68);\n      if (local_b0 != 0) {\n        *(uint *)(local_b0 + 0x14) = uVar14;\n        goto code_r0x0003093e;\n      }\n      break;\n    }\n    iVar16 = FUN_00031e70(param_4,param_5 + 1,param_6);\n    if (*param_6 == 0) {\n      if ((char)param_3[1] == '\t') goto code_r0x00030fd0;\n      if (iVar16 != 0) {\n        FUN_00025a40();\n      }\n      *param_6 = 8;\n    }\n    goto LAB_00030e58;\n  case '\t':\ncode_r0x000313dd:\n    if ((param_4 & 0x20000) == 0) {\n      local_b0 = 0;\n      *param_6 = 0x10;\n      goto LAB_00030965;\n    }\n  case '\x18':\ncode_r0x00030910:\n    *(char *)(param_3 + 1) = '\x01';\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\ncode_r0x0003093e:\n      iVar3 = FUN_000300e0();\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n      uVar14 = (uint)(byte)param_3[1];\n      do {\n        bVar17 = (byte)uVar14;\n        if ((0x17 < bVar17) || ((0x8c0800U >> (uVar14 & 0x1f) & 1) == 0)) goto LAB_00030965;\n        uVar6 = *(undefined4 *)(param_1 + 0x28);\n        uVar14 = *param_3;\n        uVar13 = param_3[1];\n        iStack_a4 = local_b0;\n        if (bVar17 == 0x17) {\n          uVar15 = FUN_000307e0();\n          if (uVar15 == 0xffffffff) {\n            if (((char)param_3[1] == '\x01') && ((char)*param_3 == ',')) {\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\ncode_r0x00030e40:\n            *param_6 = 10;\n          }\n          else {\n            if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }\ncode_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }\ncode_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;\n            *param_3 = uVar14;\n            param_3[1] = uVar13;\n            *(char *)(param_3 + 1) = '\x01';\n            iVar3 = local_b0;\ncode_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;\n          }\ncode_r0x00030e4a:\n          if (local_b0 == 0) goto LAB_00030e58;\ncode_r0x00030bea:\n          FUN_00025a40();\n          local_b0 = 0;\n          goto LAB_00030965;\n        }\n        uVar15 = (uint)(bVar17 == 0x12);\n        if (bVar17 == 0x13) {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 == 0) goto code_r0x00030d10;\n          if (*(char *)(local_b0 + 0x18) == '\x11') {\n            uStack_c0 = 1;\n            iStack_a4 = 0;\n            goto code_r0x00030c76;\n          }\n          uStack_c0 = 1;\n          cStack_64 = '\n';\n          iStack_a4 = 0;\ncode_r0x00030a18:\n          iVar3 = FUN_00028330(0,&puStack_68);\n          if (iVar3 == 0) {\ncode_r0x00030be0:\n            *param_6 = 0xc;\n            goto code_r0x00030bea;\n          }\n          for (iVar16 = uVar15 + 2; iVar16 <= (int)uStack_c0; iVar16 = iVar16 + 1) {\n            iVar3 = FUN_00028410();\n            cStack_64 = '\x10';\n            iVar4 = FUN_00028330(iVar3,&puStack_68);\n            if ((iVar3 == 0) || (iVar4 == 0)) goto code_r0x00030be0;\n            cStack_64 = '\n';\n            iVar3 = FUN_00028330(0,&puStack_68);\n            if (iVar3 == 0) goto code_r0x00030be0;\n          }\n          if (iStack_a4 != 0) {\n            cStack_64 = '\x10';\n            iVar3 = FUN_00028330(iVar3,&puStack_68);\n            goto code_r0x00030af2;\n          }\n        }\n        else {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 != 0) {\n            if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }\n            uStack_c0 = 0xffffffff;\n            uVar15 = 1;\ncode_r0x00030e9c:\n            iVar3 = FUN_00028410();\n            if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }\n            goto code_r0x00030be0;\n          }\ncode_r0x00030d10:\n          if (*param_6 != 0) goto LAB_00030e58;\ncode_r0x00030d1e:\n          local_b0 = 0;\n          iVar3 = local_b0;\n        }\ncode_r0x00030b08:\n        local_b0 = iVar3;\n        bVar17 = (byte)param_3[1];\n        uVar14 = (uint)bVar17;\n      } while (((param_4 & 0x1000000) == 0) || ((bVar17 != 0xb && (bVar17 != 0x17))));\n      if (local_b0 != 0) {\n        FUN_00025a40();\n      }\n      goto code_r0x00030b48;\n    }\n    break;\n  case '\v':\n  case '\x12':\n  case '\x13':\ncode_r0x000308ec:\n    if ((param_4 & 0x20) == 0) {\n      if ((param_4 & 0x10) != 0) {\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        local_b0 = FUN_00030880(param_4,param_5,param_6);\n        goto LAB_00030965;\n      }\n      if (cVar2 == '\t') goto code_r0x000313dd;\n      goto code_r0x00030910;\n    }\n    goto code_r0x00030b48;\n  case '\f':\n    uStack_c0 = *param_3;\n    if (((uStack_c0 & 0x30f) != 0) && (bVar17 = *(byte *)(iVar3 + 0x58), (bVar17 & 0x10) == 0)) {\n      *(byte *)(iVar3 + 0x58) = bVar17 | 0x10;\n      if ((bVar17 & 8) == 0) {\n        *(undefined4 *)(iVar3 + 0x60) = 0;\n        *(undefined4 *)(iVar3 + 100) = 0x3ff0000;\n        *(undefined4 *)(iVar3 + 0x68) = 0x87fffffe;\n        *(undefined4 *)(iVar3 + 0x6c) = 0x7fffffe;\n        if ((bVar17 & 4) != 0) {\n          *(undefined4 *)(iVar3 + 0x70) = 0;\n          *(undefined4 *)(iVar3 + 0x74) = 0;\n          *(undefined4 *)(iVar3 + 0x78) = 0;\n          *(undefined4 *)(iVar3 + 0x7c) = 0;\n          uStack_c0 = *param_3;\n          goto code_r0x00031089;\n        }\n        iVar4 = 0x80;\n        iVar16 = 4;\n      }\n      else {\n        iVar4 = 0;\n        iVar16 = 0;\n      }\n      ppuVar8 = __ctype_b_loc();\n      iVar16 = iVar3 + iVar16 * 4;\n      puVar9 = *ppuVar8 + iVar4;\n      do {\n        iVar12 = 0;\n        do {\n          if (((puVar9[iVar12] & 8) != 0) || (iVar4 + iVar12 == 0x5f)) {\n            *(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f);\n          }\n          iVar12 = iVar12 + 1;\n        } while (iVar12 != 0x20);\n        iVar4 = iVar4 + 0x20;\n        iVar16 = iVar16 + 4;\n        puVar9 = puVar9 + 0x20;\n      } while (iVar3 + 0x20 != iVar16);\n    }\ncode_r0x00031089:\n    if ((uStack_c0 - 0x100 & 0xfffffeff) == 0) {\n      if (uStack_c0 == 0x100) {\n        *param_3 = 6;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 9;\n      }\n      else {\n        *param_3 = 5;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 10;\n      }\n      iVar3 = FUN_00028330(0,param_3);\n      cStack_64 = '\n';\n      local_b0 = FUN_00028330(iVar3,&puStack_68);\n      if (uStack_c0 == 0 || iVar3 == 0) break;\n    }\n    else {\n      local_b0 = FUN_00028330(0,param_3);\n    }\n    if (local_b0 != 0) {\n      iVar3 = FUN_000300e0();\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n      goto LAB_00030965;\n    }\n    break;\n  case '\x14':\n    __ptr = (uint *)calloc(0x20,1);\n    puVar5 = (uint *)calloc(0x28,1);\n    if (__ptr == (uint *)0x0 || puVar5 == (uint *)0x0) {\n      free(__ptr);\n      free(puVar5);\n      *param_6 = 0xc;\n      local_b0 = 0;\n      goto LAB_00030965;\n    }\n    uStack_c0 = FUN_00025ab0();\n    cVar2 = (char)param_3[1];\n    if (cVar2 != '\x02') {\n      bVar1 = false;\n      if (cVar2 != '\x19') {\ncode_r0x000312a6:\n        if (cVar2 == '\x15') {\n          *(char *)(param_3 + 1) = '\x01';\n        }\n        uStack_90 = 0;\n        uVar6 = 1;\ncode_r0x000312e4:\n        iVar16 = FUN_0002fec0(uStack_c0,param_4,uVar6);\n        if (iVar16 == 0) {\n          iVar16 = FUN_00025ab0();\n          if ((char)param_3[1] == '\x02') {\ncode_r0x00031615:\n            *param_6 = 7;\n          }\n          else {\n            if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    \n                    \n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }\n            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n            uVar6 = FUN_00025ab0();\n            if (cStack_64 == '\x02') goto code_r0x00031615;\n            if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }\n            pcStack_6c = acStack_40;\n            puStack_70 = (uint *)0x3;\n            uVar14 = 1;\n            iVar16 = FUN_0002fec0(uVar6,param_4,1);\n            if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }\n          }\n        }\n        else {\n          *param_6 = iVar16;\n        }\n        goto code_r0x000314ef;\n      }\n      *(byte *)(puVar5 + 4) = (byte)puVar5[4] | 1;\n      if ((param_4 & 0x100) != 0) {\n        *__ptr = *__ptr | 0x400;\n      }\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n      uStack_c0 = FUN_00025ab0();\n      cVar2 = (char)param_3[1];\n      if (cVar2 != '\x02') {\n        bVar1 = true;\n        goto code_r0x000312a6;\n      }\n    }\n    *param_6 = 2;\ncode_r0x000314ef:\n    free(__ptr);\n    FUN_00026c30();\n    if (*param_6 == 0) {\n      local_b0 = 0;\n      goto code_r0x0003093e;\n    }\nLAB_00030e58:\n    local_b0 = 0;\n    goto LAB_00030965;\n  case '\x17':\n    if ((param_4 & 0x1000000) == 0) goto code_r0x000308ec;\ncode_r0x00030b48:\n    local_b0 = 0;\n    *param_6 = 0xd;\n    goto LAB_00030965;\n  case ' ':\n  case '!':\n    local_b0 = FUN_0002b9b0(&UNK_000370bb,cVar2 == '!',param_6);\n    iVar3 = *param_6;\n    goto joined_r0x00030f59;\n  case '\"':\n  case '#':\n    local_b0 = FUN_0002b9b0("",cVar2 == '#',param_6);\n    iVar3 = *param_6;\njoined_r0x00030f59:\n    if ((iVar3 != 0) && (local_b0 == 0)) goto LAB_00030e58;\n    goto code_r0x0003093e;\n  case '$':\n    local_b0 = 0;\n    *param_6 = 5;\n    goto LAB_00030965;\n  }\n  local_b0 = 0;\n  *param_6 = 0xc;\nLAB_00030965:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00036030();\n  }\n  return local_b0;\ncode_r0x000314d1:\n  uVar6 = 0;\n  goto code_r0x000312e4;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00030880(int param_1,int *param_2,uint *param_3,uint param_4,int param_5,int *param_6)" identifier (parameter_list "(int param_1,int *param_2,uint *param_3,uint param_4,int param_5,int *param_6)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "uint param_4" type_identifier identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "int *param_6" primitive_type (pointer_declarator "*param_6" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  char cVar2;\n  int iVar3;\n  int iVar4;\n  uint *__ptr;\n  uint *puVar5;\n  undefined4 uVar6;\n  uint *puVar7;\n  ushort **ppuVar8;\n  ushort *puVar9;\n  char *pcVar10;\n  void *__ptr_00;\n  void *__ptr_01;\n  char *pcVar11;\n  int iVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  int iVar16;\n  int in_GS_OFFSET;\n  byte bVar17;\n  uint **ppuVar18;\n  uint uStack_c0;\n  int local_b0;\n  int iStack_a4;\n  uint uStack_90;\n  char *pcStack_8c;\n  uint *puStack_70;\n  char *pcStack_6c;\n  uint *puStack_68;\n  char cStack_64;\n  char acStack_60 [32];\n  char acStack_40 [32];\n  int local_20;\n  \n  bVar17 = 0;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar3 = *param_2;\n  cVar2 = (char)param_3[1];\n  switch(cVar2) {\n  default:\n    goto LAB_00030e58;\n  case '\x01':\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\n      if (*(int *)(iVar3 + 0x5c) < 2) goto code_r0x0003093e;\n      do {\n        iVar3 = *(int *)(param_1 + 0x28);\n        if (((*(int *)(param_1 + 0x38) <= iVar3) || (iVar3 == *(int *)(param_1 + 0x1c))) ||\n           (*(int *)(*(int *)(param_1 + 8) + iVar3 * 4) != -1)) goto code_r0x0003093e;\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        iVar3 = FUN_00028330(0,param_3);\n        cStack_64 = '\x10';\n        local_b0 = FUN_00028330(iVar3,&puStack_68);\n      } while (iVar3 != 0 && local_b0 != 0);\n    }\n    break;\n  case '\x04':\n    uVar14 = 1 << ((byte)*param_3 & 0x1f);\n    if ((*(uint *)(iVar3 + 0x54) & uVar14) == 0) {\n      local_b0 = 0;\n      *param_6 = 6;\n      goto LAB_00030965;\n    }\n    *(uint *)(iVar3 + 0x50) = *(uint *)(iVar3 + 0x50) | uVar14;\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\n      *(int *)(iVar3 + 0x4c) = *(int *)(iVar3 + 0x4c) + 1;\n      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n      goto code_r0x0003093e;\n    }\n    break;\n  case '\x05':\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 == 0) break;\n    if (1 < *(int *)(iVar3 + 0x5c)) {\n      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n    }\n    goto code_r0x0003093e;\n  case '\b':\n    uVar14 = param_2[6];\n    param_2[6] = uVar14 + 1;\n    iVar16 = FUN_000300e0();\n    *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n    if ((char)param_3[1] == '\t') {\ncode_r0x00030fd0:\n      if (uVar14 < 9) {\n        *(uint *)(iVar3 + 0x54) = *(uint *)(iVar3 + 0x54) | 1 << ((byte)uVar14 & 0x1f);\n      }\n      cStack_64 = '\x11';\n      local_b0 = FUN_00028330(0,&puStack_68);\n      if (local_b0 != 0) {\n        *(uint *)(local_b0 + 0x14) = uVar14;\n        goto code_r0x0003093e;\n      }\n      break;\n    }\n    iVar16 = FUN_00031e70(param_4,param_5 + 1,param_6);\n    if (*param_6 == 0) {\n      if ((char)param_3[1] == '\t') goto code_r0x00030fd0;\n      if (iVar16 != 0) {\n        FUN_00025a40();\n      }\n      *param_6 = 8;\n    }\n    goto LAB_00030e58;\n  case '\t':\ncode_r0x000313dd:\n    if ((param_4 & 0x20000) == 0) {\n      local_b0 = 0;\n      *param_6 = 0x10;\n      goto LAB_00030965;\n    }\n  case '\x18':\ncode_r0x00030910:\n    *(char *)(param_3 + 1) = '\x01';\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\ncode_r0x0003093e:\n      iVar3 = FUN_000300e0();\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n      uVar14 = (uint)(byte)param_3[1];\n      do {\n        bVar17 = (byte)uVar14;\n        if ((0x17 < bVar17) || ((0x8c0800U >> (uVar14 & 0x1f) & 1) == 0)) goto LAB_00030965;\n        uVar6 = *(undefined4 *)(param_1 + 0x28);\n        uVar14 = *param_3;\n        uVar13 = param_3[1];\n        iStack_a4 = local_b0;\n        if (bVar17 == 0x17) {\n          uVar15 = FUN_000307e0();\n          if (uVar15 == 0xffffffff) {\n            if (((char)param_3[1] == '\x01') && ((char)*param_3 == ',')) {\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\ncode_r0x00030e40:\n            *param_6 = 10;\n          }\n          else {\n            if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }\ncode_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }\ncode_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;\n            *param_3 = uVar14;\n            param_3[1] = uVar13;\n            *(char *)(param_3 + 1) = '\x01';\n            iVar3 = local_b0;\ncode_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;\n          }\ncode_r0x00030e4a:\n          if (local_b0 == 0) goto LAB_00030e58;\ncode_r0x00030bea:\n          FUN_00025a40();\n          local_b0 = 0;\n          goto LAB_00030965;\n        }\n        uVar15 = (uint)(bVar17 == 0x12);\n        if (bVar17 == 0x13) {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 == 0) goto code_r0x00030d10;\n          if (*(char *)(local_b0 + 0x18) == '\x11') {\n            uStack_c0 = 1;\n            iStack_a4 = 0;\n            goto code_r0x00030c76;\n          }\n          uStack_c0 = 1;\n          cStack_64 = '\n';\n          iStack_a4 = 0;\ncode_r0x00030a18:\n          iVar3 = FUN_00028330(0,&puStack_68);\n          if (iVar3 == 0) {\ncode_r0x00030be0:\n            *param_6 = 0xc;\n            goto code_r0x00030bea;\n          }\n          for (iVar16 = uVar15 + 2; iVar16 <= (int)uStack_c0; iVar16 = iVar16 + 1) {\n            iVar3 = FUN_00028410();\n            cStack_64 = '\x10';\n            iVar4 = FUN_00028330(iVar3,&puStack_68);\n            if ((iVar3 == 0) || (iVar4 == 0)) goto code_r0x00030be0;\n            cStack_64 = '\n';\n            iVar3 = FUN_00028330(0,&puStack_68);\n            if (iVar3 == 0) goto code_r0x00030be0;\n          }\n          if (iStack_a4 != 0) {\n            cStack_64 = '\x10';\n            iVar3 = FUN_00028330(iVar3,&puStack_68);\n            goto code_r0x00030af2;\n          }\n        }\n        else {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 != 0) {\n            if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }\n            uStack_c0 = 0xffffffff;\n            uVar15 = 1;\ncode_r0x00030e9c:\n            iVar3 = FUN_00028410();\n            if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }\n            goto code_r0x00030be0;\n          }\ncode_r0x00030d10:\n          if (*param_6 != 0) goto LAB_00030e58;\ncode_r0x00030d1e:\n          local_b0 = 0;\n          iVar3 = local_b0;\n        }\ncode_r0x00030b08:\n        local_b0 = iVar3;\n        bVar17 = (byte)param_3[1];\n        uVar14 = (uint)bVar17;\n      } while (((param_4 & 0x1000000) == 0) || ((bVar17 != 0xb && (bVar17 != 0x17))));\n      if (local_b0 != 0) {\n        FUN_00025a40();\n      }\n      goto code_r0x00030b48;\n    }\n    break;\n  case '\v':\n  case '\x12':\n  case '\x13':\ncode_r0x000308ec:\n    if ((param_4 & 0x20) == 0) {\n      if ((param_4 & 0x10) != 0) {\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        local_b0 = FUN_00030880(param_4,param_5,param_6);\n        goto LAB_00030965;\n      }\n      if (cVar2 == '\t') goto code_r0x000313dd;\n      goto code_r0x00030910;\n    }\n    goto code_r0x00030b48;\n  case '\f':\n    uStack_c0 = *param_3;\n    if (((uStack_c0 & 0x30f) != 0) && (bVar17 = *(byte *)(iVar3 + 0x58), (bVar17 & 0x10) == 0)) {\n      *(byte *)(iVar3 + 0x58) = bVar17 | 0x10;\n      if ((bVar17 & 8) == 0) {\n        *(undefined4 *)(iVar3 + 0x60) = 0;\n        *(undefined4 *)(iVar3 + 100) = 0x3ff0000;\n        *(undefined4 *)(iVar3 + 0x68) = 0x87fffffe;\n        *(undefined4 *)(iVar3 + 0x6c) = 0x7fffffe;\n        if ((bVar17 & 4) != 0) {\n          *(undefined4 *)(iVar3 + 0x70) = 0;\n          *(undefined4 *)(iVar3 + 0x74) = 0;\n          *(undefined4 *)(iVar3 + 0x78) = 0;\n          *(undefined4 *)(iVar3 + 0x7c) = 0;\n          uStack_c0 = *param_3;\n          goto code_r0x00031089;\n        }\n        iVar4 = 0x80;\n        iVar16 = 4;\n      }\n      else {\n        iVar4 = 0;\n        iVar16 = 0;\n      }\n      ppuVar8 = __ctype_b_loc();\n      iVar16 = iVar3 + iVar16 * 4;\n      puVar9 = *ppuVar8 + iVar4;\n      do {\n        iVar12 = 0;\n        do {\n          if (((puVar9[iVar12] & 8) != 0) || (iVar4 + iVar12 == 0x5f)) {\n            *(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f);\n          }\n          iVar12 = iVar12 + 1;\n        } while (iVar12 != 0x20);\n        iVar4 = iVar4 + 0x20;\n        iVar16 = iVar16 + 4;\n        puVar9 = puVar9 + 0x20;\n      } while (iVar3 + 0x20 != iVar16);\n    }\ncode_r0x00031089:\n    if ((uStack_c0 - 0x100 & 0xfffffeff) == 0) {\n      if (uStack_c0 == 0x100) {\n        *param_3 = 6;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 9;\n      }\n      else {\n        *param_3 = 5;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 10;\n      }\n      iVar3 = FUN_00028330(0,param_3);\n      cStack_64 = '\n';\n      local_b0 = FUN_00028330(iVar3,&puStack_68);\n      if (uStack_c0 == 0 || iVar3 == 0) break;\n    }\n    else {\n      local_b0 = FUN_00028330(0,param_3);\n    }\n    if (local_b0 != 0) {\n      iVar3 = FUN_000300e0();\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n      goto LAB_00030965;\n    }\n    break;\n  case '\x14':\n    __ptr = (uint *)calloc(0x20,1);\n    puVar5 = (uint *)calloc(0x28,1);\n    if (__ptr == (uint *)0x0 || puVar5 == (uint *)0x0) {\n      free(__ptr);\n      free(puVar5);\n      *param_6 = 0xc;\n      local_b0 = 0;\n      goto LAB_00030965;\n    }\n    uStack_c0 = FUN_00025ab0();\n    cVar2 = (char)param_3[1];\n    if (cVar2 != '\x02') {\n      bVar1 = false;\n      if (cVar2 != '\x19') {\ncode_r0x000312a6:\n        if (cVar2 == '\x15') {\n          *(char *)(param_3 + 1) = '\x01';\n        }\n        uStack_90 = 0;\n        uVar6 = 1;\ncode_r0x000312e4:\n        iVar16 = FUN_0002fec0(uStack_c0,param_4,uVar6);\n        if (iVar16 == 0) {\n          iVar16 = FUN_00025ab0();\n          if ((char)param_3[1] == '\x02') {\ncode_r0x00031615:\n            *param_6 = 7;\n          }\n          else {\n            if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    \n                    \n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }\n            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n            uVar6 = FUN_00025ab0();\n            if (cStack_64 == '\x02') goto code_r0x00031615;\n            if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }\n            pcStack_6c = acStack_40;\n            puStack_70 = (uint *)0x3;\n            uVar14 = 1;\n            iVar16 = FUN_0002fec0(uVar6,param_4,1);\n            if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }\n          }\n        }\n        else {\n          *param_6 = iVar16;\n        }\n        goto code_r0x000314ef;\n      }\n      *(byte *)(puVar5 + 4) = (byte)puVar5[4] | 1;\n      if ((param_4 & 0x100) != 0) {\n        *__ptr = *__ptr | 0x400;\n      }\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n      uStack_c0 = FUN_00025ab0();\n      cVar2 = (char)param_3[1];\n      if (cVar2 != '\x02') {\n        bVar1 = true;\n        goto code_r0x000312a6;\n      }\n    }\n    *param_6 = 2;\ncode_r0x000314ef:\n    free(__ptr);\n    FUN_00026c30();\n    if (*param_6 == 0) {\n      local_b0 = 0;\n      goto code_r0x0003093e;\n    }\nLAB_00030e58:\n    local_b0 = 0;\n    goto LAB_00030965;\n  case '\x17':\n    if ((param_4 & 0x1000000) == 0) goto code_r0x000308ec;\ncode_r0x00030b48:\n    local_b0 = 0;\n    *param_6 = 0xd;\n    goto LAB_00030965;\n  case ' ':\n  case '!':\n    local_b0 = FUN_0002b9b0(&UNK_000370bb,cVar2 == '!',param_6);\n    iVar3 = *param_6;\n    goto joined_r0x00030f59;\n  case '\"':\n  case '#':\n    local_b0 = FUN_0002b9b0("",cVar2 == '#',param_6);\n    iVar3 = *param_6;\njoined_r0x00030f59:\n    if ((iVar3 != 0) && (local_b0 == 0)) goto LAB_00030e58;\n    goto code_r0x0003093e;\n  case '$':\n    local_b0 = 0;\n    *param_6 = 5;\n    goto LAB_00030965;\n  }\n  local_b0 = 0;\n  *param_6 = 0xc;\nLAB_00030965:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00036030();\n  }\n  return local_b0;\ncode_r0x000314d1:\n  uVar6 = 0;\n  goto code_r0x000312e4;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint *__ptr;" type_identifier (pointer_declarator "*__ptr" * identifier) ;) (declaration "uint *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "ushort **ppuVar8;" type_identifier (pointer_declarator "**ppuVar8" * (pointer_declarator "*ppuVar8" * identifier)) ;) (declaration "ushort *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "void *__ptr_00;" primitive_type (pointer_declarator "*__ptr_00" * identifier) ;) (declaration "void *__ptr_01;" primitive_type (pointer_declarator "*__ptr_01" * identifier) ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "byte bVar17;" type_identifier identifier ;) (declaration "uint **ppuVar18;" type_identifier (pointer_declarator "**ppuVar18" * (pointer_declarator "*ppuVar18" * identifier)) ;) (declaration "uint uStack_c0;" type_identifier identifier ;) (declaration "int local_b0;" primitive_type identifier ;) (declaration "int iStack_a4;" primitive_type identifier ;) (declaration "uint uStack_90;" type_identifier identifier ;) (declaration "char *pcStack_8c;" primitive_type (pointer_declarator "*pcStack_8c" * identifier) ;) (declaration "uint *puStack_70;" type_identifier (pointer_declarator "*puStack_70" * identifier) ;) (declaration "char *pcStack_6c;" primitive_type (pointer_declarator "*pcStack_6c" * identifier) ;) (declaration "uint *puStack_68;" type_identifier (pointer_declarator "*puStack_68" * identifier) ;) (declaration "char cStack_64;" primitive_type identifier ;) (declaration "char acStack_60 [32];" primitive_type (array_declarator "acStack_60 [32]" identifier [ number_literal ]) ;) (declaration "char acStack_40 [32];" primitive_type (array_declarator "acStack_40 [32]" identifier [ number_literal ]) ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(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) ))))) ;) (expression_statement "iVar3 = *param_2;" (assignment_expression "iVar3 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "cVar2 = (char)param_3[1];" (assignment_expression "cVar2 = (char)param_3[1]" identifier = (cast_expression "(char)param_3[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_3[1]" identifier [ number_literal ]))) ;) (switch_statement "switch(cVar2) {\n  default:\n    goto LAB_00030e58;\n  case '\x01':\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\n      if (*(int *)(iVar3 + 0x5c) < 2) goto code_r0x0003093e;\n      do {\n        iVar3 = *(int *)(param_1 + 0x28);\n        if (((*(int *)(param_1 + 0x38) <= iVar3) || (iVar3 == *(int *)(param_1 + 0x1c))) ||\n           (*(int *)(*(int *)(param_1 + 8) + iVar3 * 4) != -1)) goto code_r0x0003093e;\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        iVar3 = FUN_00028330(0,param_3);\n        cStack_64 = '\x10';\n        local_b0 = FUN_00028330(iVar3,&puStack_68);\n      } while (iVar3 != 0 && local_b0 != 0);\n    }\n    break;\n  case '\x04':\n    uVar14 = 1 << ((byte)*param_3 & 0x1f);\n    if ((*(uint *)(iVar3 + 0x54) & uVar14) == 0) {\n      local_b0 = 0;\n      *param_6 = 6;\n      goto LAB_00030965;\n    }\n    *(uint *)(iVar3 + 0x50) = *(uint *)(iVar3 + 0x50) | uVar14;\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\n      *(int *)(iVar3 + 0x4c) = *(int *)(iVar3 + 0x4c) + 1;\n      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n      goto code_r0x0003093e;\n    }\n    break;\n  case '\x05':\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 == 0) break;\n    if (1 < *(int *)(iVar3 + 0x5c)) {\n      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n    }\n    goto code_r0x0003093e;\n  case '\b':\n    uVar14 = param_2[6];\n    param_2[6] = uVar14 + 1;\n    iVar16 = FUN_000300e0();\n    *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n    if ((char)param_3[1] == '\t') {\ncode_r0x00030fd0:\n      if (uVar14 < 9) {\n        *(uint *)(iVar3 + 0x54) = *(uint *)(iVar3 + 0x54) | 1 << ((byte)uVar14 & 0x1f);\n      }\n      cStack_64 = '\x11';\n      local_b0 = FUN_00028330(0,&puStack_68);\n      if (local_b0 != 0) {\n        *(uint *)(local_b0 + 0x14) = uVar14;\n        goto code_r0x0003093e;\n      }\n      break;\n    }\n    iVar16 = FUN_00031e70(param_4,param_5 + 1,param_6);\n    if (*param_6 == 0) {\n      if ((char)param_3[1] == '\t') goto code_r0x00030fd0;\n      if (iVar16 != 0) {\n        FUN_00025a40();\n      }\n      *param_6 = 8;\n    }\n    goto LAB_00030e58;\n  case '\t':\ncode_r0x000313dd:\n    if ((param_4 & 0x20000) == 0) {\n      local_b0 = 0;\n      *param_6 = 0x10;\n      goto LAB_00030965;\n    }\n  case '\x18':\ncode_r0x00030910:\n    *(char *)(param_3 + 1) = '\x01';\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\ncode_r0x0003093e:\n      iVar3 = FUN_000300e0();\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n      uVar14 = (uint)(byte)param_3[1];\n      do {\n        bVar17 = (byte)uVar14;\n        if ((0x17 < bVar17) || ((0x8c0800U >> (uVar14 & 0x1f) & 1) == 0)) goto LAB_00030965;\n        uVar6 = *(undefined4 *)(param_1 + 0x28);\n        uVar14 = *param_3;\n        uVar13 = param_3[1];\n        iStack_a4 = local_b0;\n        if (bVar17 == 0x17) {\n          uVar15 = FUN_000307e0();\n          if (uVar15 == 0xffffffff) {\n            if (((char)param_3[1] == '\x01') && ((char)*param_3 == ',')) {\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\ncode_r0x00030e40:\n            *param_6 = 10;\n          }\n          else {\n            if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }\ncode_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }\ncode_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;\n            *param_3 = uVar14;\n            param_3[1] = uVar13;\n            *(char *)(param_3 + 1) = '\x01';\n            iVar3 = local_b0;\ncode_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;\n          }\ncode_r0x00030e4a:\n          if (local_b0 == 0) goto LAB_00030e58;\ncode_r0x00030bea:\n          FUN_00025a40();\n          local_b0 = 0;\n          goto LAB_00030965;\n        }\n        uVar15 = (uint)(bVar17 == 0x12);\n        if (bVar17 == 0x13) {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 == 0) goto code_r0x00030d10;\n          if (*(char *)(local_b0 + 0x18) == '\x11') {\n            uStack_c0 = 1;\n            iStack_a4 = 0;\n            goto code_r0x00030c76;\n          }\n          uStack_c0 = 1;\n          cStack_64 = '\n';\n          iStack_a4 = 0;\ncode_r0x00030a18:\n          iVar3 = FUN_00028330(0,&puStack_68);\n          if (iVar3 == 0) {\ncode_r0x00030be0:\n            *param_6 = 0xc;\n            goto code_r0x00030bea;\n          }\n          for (iVar16 = uVar15 + 2; iVar16 <= (int)uStack_c0; iVar16 = iVar16 + 1) {\n            iVar3 = FUN_00028410();\n            cStack_64 = '\x10';\n            iVar4 = FUN_00028330(iVar3,&puStack_68);\n            if ((iVar3 == 0) || (iVar4 == 0)) goto code_r0x00030be0;\n            cStack_64 = '\n';\n            iVar3 = FUN_00028330(0,&puStack_68);\n            if (iVar3 == 0) goto code_r0x00030be0;\n          }\n          if (iStack_a4 != 0) {\n            cStack_64 = '\x10';\n            iVar3 = FUN_00028330(iVar3,&puStack_68);\n            goto code_r0x00030af2;\n          }\n        }\n        else {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 != 0) {\n            if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }\n            uStack_c0 = 0xffffffff;\n            uVar15 = 1;\ncode_r0x00030e9c:\n            iVar3 = FUN_00028410();\n            if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }\n            goto code_r0x00030be0;\n          }\ncode_r0x00030d10:\n          if (*param_6 != 0) goto LAB_00030e58;\ncode_r0x00030d1e:\n          local_b0 = 0;\n          iVar3 = local_b0;\n        }\ncode_r0x00030b08:\n        local_b0 = iVar3;\n        bVar17 = (byte)param_3[1];\n        uVar14 = (uint)bVar17;\n      } while (((param_4 & 0x1000000) == 0) || ((bVar17 != 0xb && (bVar17 != 0x17))));\n      if (local_b0 != 0) {\n        FUN_00025a40();\n      }\n      goto code_r0x00030b48;\n    }\n    break;\n  case '\v':\n  case '\x12':\n  case '\x13':\ncode_r0x000308ec:\n    if ((param_4 & 0x20) == 0) {\n      if ((param_4 & 0x10) != 0) {\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        local_b0 = FUN_00030880(param_4,param_5,param_6);\n        goto LAB_00030965;\n      }\n      if (cVar2 == '\t') goto code_r0x000313dd;\n      goto code_r0x00030910;\n    }\n    goto code_r0x00030b48;\n  case '\f':\n    uStack_c0 = *param_3;\n    if (((uStack_c0 & 0x30f) != 0) && (bVar17 = *(byte *)(iVar3 + 0x58), (bVar17 & 0x10) == 0)) {\n      *(byte *)(iVar3 + 0x58) = bVar17 | 0x10;\n      if ((bVar17 & 8) == 0) {\n        *(undefined4 *)(iVar3 + 0x60) = 0;\n        *(undefined4 *)(iVar3 + 100) = 0x3ff0000;\n        *(undefined4 *)(iVar3 + 0x68) = 0x87fffffe;\n        *(undefined4 *)(iVar3 + 0x6c) = 0x7fffffe;\n        if ((bVar17 & 4) != 0) {\n          *(undefined4 *)(iVar3 + 0x70) = 0;\n          *(undefined4 *)(iVar3 + 0x74) = 0;\n          *(undefined4 *)(iVar3 + 0x78) = 0;\n          *(undefined4 *)(iVar3 + 0x7c) = 0;\n          uStack_c0 = *param_3;\n          goto code_r0x00031089;\n        }\n        iVar4 = 0x80;\n        iVar16 = 4;\n      }\n      else {\n        iVar4 = 0;\n        iVar16 = 0;\n      }\n      ppuVar8 = __ctype_b_loc();\n      iVar16 = iVar3 + iVar16 * 4;\n      puVar9 = *ppuVar8 + iVar4;\n      do {\n        iVar12 = 0;\n        do {\n          if (((puVar9[iVar12] & 8) != 0) || (iVar4 + iVar12 == 0x5f)) {\n            *(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f);\n          }\n          iVar12 = iVar12 + 1;\n        } while (iVar12 != 0x20);\n        iVar4 = iVar4 + 0x20;\n        iVar16 = iVar16 + 4;\n        puVar9 = puVar9 + 0x20;\n      } while (iVar3 + 0x20 != iVar16);\n    }\ncode_r0x00031089:\n    if ((uStack_c0 - 0x100 & 0xfffffeff) == 0) {\n      if (uStack_c0 == 0x100) {\n        *param_3 = 6;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 9;\n      }\n      else {\n        *param_3 = 5;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 10;\n      }\n      iVar3 = FUN_00028330(0,param_3);\n      cStack_64 = '\n';\n      local_b0 = FUN_00028330(iVar3,&puStack_68);\n      if (uStack_c0 == 0 || iVar3 == 0) break;\n    }\n    else {\n      local_b0 = FUN_00028330(0,param_3);\n    }\n    if (local_b0 != 0) {\n      iVar3 = FUN_000300e0();\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n      goto LAB_00030965;\n    }\n    break;\n  case '\x14':\n    __ptr = (uint *)calloc(0x20,1);\n    puVar5 = (uint *)calloc(0x28,1);\n    if (__ptr == (uint *)0x0 || puVar5 == (uint *)0x0) {\n      free(__ptr);\n      free(puVar5);\n      *param_6 = 0xc;\n      local_b0 = 0;\n      goto LAB_00030965;\n    }\n    uStack_c0 = FUN_00025ab0();\n    cVar2 = (char)param_3[1];\n    if (cVar2 != '\x02') {\n      bVar1 = false;\n      if (cVar2 != '\x19') {\ncode_r0x000312a6:\n        if (cVar2 == '\x15') {\n          *(char *)(param_3 + 1) = '\x01';\n        }\n        uStack_90 = 0;\n        uVar6 = 1;\ncode_r0x000312e4:\n        iVar16 = FUN_0002fec0(uStack_c0,param_4,uVar6);\n        if (iVar16 == 0) {\n          iVar16 = FUN_00025ab0();\n          if ((char)param_3[1] == '\x02') {\ncode_r0x00031615:\n            *param_6 = 7;\n          }\n          else {\n            if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    \n                    \n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }\n            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n            uVar6 = FUN_00025ab0();\n            if (cStack_64 == '\x02') goto code_r0x00031615;\n            if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }\n            pcStack_6c = acStack_40;\n            puStack_70 = (uint *)0x3;\n            uVar14 = 1;\n            iVar16 = FUN_0002fec0(uVar6,param_4,1);\n            if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }\n          }\n        }\n        else {\n          *param_6 = iVar16;\n        }\n        goto code_r0x000314ef;\n      }\n      *(byte *)(puVar5 + 4) = (byte)puVar5[4] | 1;\n      if ((param_4 & 0x100) != 0) {\n        *__ptr = *__ptr | 0x400;\n      }\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n      uStack_c0 = FUN_00025ab0();\n      cVar2 = (char)param_3[1];\n      if (cVar2 != '\x02') {\n        bVar1 = true;\n        goto code_r0x000312a6;\n      }\n    }\n    *param_6 = 2;\ncode_r0x000314ef:\n    free(__ptr);\n    FUN_00026c30();\n    if (*param_6 == 0) {\n      local_b0 = 0;\n      goto code_r0x0003093e;\n    }\nLAB_00030e58:\n    local_b0 = 0;\n    goto LAB_00030965;\n  case '\x17':\n    if ((param_4 & 0x1000000) == 0) goto code_r0x000308ec;\ncode_r0x00030b48:\n    local_b0 = 0;\n    *param_6 = 0xd;\n    goto LAB_00030965;\n  case ' ':\n  case '!':\n    local_b0 = FUN_0002b9b0(&UNK_000370bb,cVar2 == '!',param_6);\n    iVar3 = *param_6;\n    goto joined_r0x00030f59;\n  case '\"':\n  case '#':\n    local_b0 = FUN_0002b9b0("",cVar2 == '#',param_6);\n    iVar3 = *param_6;\njoined_r0x00030f59:\n    if ((iVar3 != 0) && (local_b0 == 0)) goto LAB_00030e58;\n    goto code_r0x0003093e;\n  case '$':\n    local_b0 = 0;\n    *param_6 = 5;\n    goto LAB_00030965;\n  }" switch (parenthesized_expression "(cVar2)" ( identifier )) (compound_statement "{\n  default:\n    goto LAB_00030e58;\n  case '\x01':\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\n      if (*(int *)(iVar3 + 0x5c) < 2) goto code_r0x0003093e;\n      do {\n        iVar3 = *(int *)(param_1 + 0x28);\n        if (((*(int *)(param_1 + 0x38) <= iVar3) || (iVar3 == *(int *)(param_1 + 0x1c))) ||\n           (*(int *)(*(int *)(param_1 + 8) + iVar3 * 4) != -1)) goto code_r0x0003093e;\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        iVar3 = FUN_00028330(0,param_3);\n        cStack_64 = '\x10';\n        local_b0 = FUN_00028330(iVar3,&puStack_68);\n      } while (iVar3 != 0 && local_b0 != 0);\n    }\n    break;\n  case '\x04':\n    uVar14 = 1 << ((byte)*param_3 & 0x1f);\n    if ((*(uint *)(iVar3 + 0x54) & uVar14) == 0) {\n      local_b0 = 0;\n      *param_6 = 6;\n      goto LAB_00030965;\n    }\n    *(uint *)(iVar3 + 0x50) = *(uint *)(iVar3 + 0x50) | uVar14;\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\n      *(int *)(iVar3 + 0x4c) = *(int *)(iVar3 + 0x4c) + 1;\n      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n      goto code_r0x0003093e;\n    }\n    break;\n  case '\x05':\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 == 0) break;\n    if (1 < *(int *)(iVar3 + 0x5c)) {\n      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n    }\n    goto code_r0x0003093e;\n  case '\b':\n    uVar14 = param_2[6];\n    param_2[6] = uVar14 + 1;\n    iVar16 = FUN_000300e0();\n    *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n    if ((char)param_3[1] == '\t') {\ncode_r0x00030fd0:\n      if (uVar14 < 9) {\n        *(uint *)(iVar3 + 0x54) = *(uint *)(iVar3 + 0x54) | 1 << ((byte)uVar14 & 0x1f);\n      }\n      cStack_64 = '\x11';\n      local_b0 = FUN_00028330(0,&puStack_68);\n      if (local_b0 != 0) {\n        *(uint *)(local_b0 + 0x14) = uVar14;\n        goto code_r0x0003093e;\n      }\n      break;\n    }\n    iVar16 = FUN_00031e70(param_4,param_5 + 1,param_6);\n    if (*param_6 == 0) {\n      if ((char)param_3[1] == '\t') goto code_r0x00030fd0;\n      if (iVar16 != 0) {\n        FUN_00025a40();\n      }\n      *param_6 = 8;\n    }\n    goto LAB_00030e58;\n  case '\t':\ncode_r0x000313dd:\n    if ((param_4 & 0x20000) == 0) {\n      local_b0 = 0;\n      *param_6 = 0x10;\n      goto LAB_00030965;\n    }\n  case '\x18':\ncode_r0x00030910:\n    *(char *)(param_3 + 1) = '\x01';\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\ncode_r0x0003093e:\n      iVar3 = FUN_000300e0();\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n      uVar14 = (uint)(byte)param_3[1];\n      do {\n        bVar17 = (byte)uVar14;\n        if ((0x17 < bVar17) || ((0x8c0800U >> (uVar14 & 0x1f) & 1) == 0)) goto LAB_00030965;\n        uVar6 = *(undefined4 *)(param_1 + 0x28);\n        uVar14 = *param_3;\n        uVar13 = param_3[1];\n        iStack_a4 = local_b0;\n        if (bVar17 == 0x17) {\n          uVar15 = FUN_000307e0();\n          if (uVar15 == 0xffffffff) {\n            if (((char)param_3[1] == '\x01') && ((char)*param_3 == ',')) {\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\ncode_r0x00030e40:\n            *param_6 = 10;\n          }\n          else {\n            if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }\ncode_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }\ncode_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;\n            *param_3 = uVar14;\n            param_3[1] = uVar13;\n            *(char *)(param_3 + 1) = '\x01';\n            iVar3 = local_b0;\ncode_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;\n          }\ncode_r0x00030e4a:\n          if (local_b0 == 0) goto LAB_00030e58;\ncode_r0x00030bea:\n          FUN_00025a40();\n          local_b0 = 0;\n          goto LAB_00030965;\n        }\n        uVar15 = (uint)(bVar17 == 0x12);\n        if (bVar17 == 0x13) {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 == 0) goto code_r0x00030d10;\n          if (*(char *)(local_b0 + 0x18) == '\x11') {\n            uStack_c0 = 1;\n            iStack_a4 = 0;\n            goto code_r0x00030c76;\n          }\n          uStack_c0 = 1;\n          cStack_64 = '\n';\n          iStack_a4 = 0;\ncode_r0x00030a18:\n          iVar3 = FUN_00028330(0,&puStack_68);\n          if (iVar3 == 0) {\ncode_r0x00030be0:\n            *param_6 = 0xc;\n            goto code_r0x00030bea;\n          }\n          for (iVar16 = uVar15 + 2; iVar16 <= (int)uStack_c0; iVar16 = iVar16 + 1) {\n            iVar3 = FUN_00028410();\n            cStack_64 = '\x10';\n            iVar4 = FUN_00028330(iVar3,&puStack_68);\n            if ((iVar3 == 0) || (iVar4 == 0)) goto code_r0x00030be0;\n            cStack_64 = '\n';\n            iVar3 = FUN_00028330(0,&puStack_68);\n            if (iVar3 == 0) goto code_r0x00030be0;\n          }\n          if (iStack_a4 != 0) {\n            cStack_64 = '\x10';\n            iVar3 = FUN_00028330(iVar3,&puStack_68);\n            goto code_r0x00030af2;\n          }\n        }\n        else {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 != 0) {\n            if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }\n            uStack_c0 = 0xffffffff;\n            uVar15 = 1;\ncode_r0x00030e9c:\n            iVar3 = FUN_00028410();\n            if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }\n            goto code_r0x00030be0;\n          }\ncode_r0x00030d10:\n          if (*param_6 != 0) goto LAB_00030e58;\ncode_r0x00030d1e:\n          local_b0 = 0;\n          iVar3 = local_b0;\n        }\ncode_r0x00030b08:\n        local_b0 = iVar3;\n        bVar17 = (byte)param_3[1];\n        uVar14 = (uint)bVar17;\n      } while (((param_4 & 0x1000000) == 0) || ((bVar17 != 0xb && (bVar17 != 0x17))));\n      if (local_b0 != 0) {\n        FUN_00025a40();\n      }\n      goto code_r0x00030b48;\n    }\n    break;\n  case '\v':\n  case '\x12':\n  case '\x13':\ncode_r0x000308ec:\n    if ((param_4 & 0x20) == 0) {\n      if ((param_4 & 0x10) != 0) {\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        local_b0 = FUN_00030880(param_4,param_5,param_6);\n        goto LAB_00030965;\n      }\n      if (cVar2 == '\t') goto code_r0x000313dd;\n      goto code_r0x00030910;\n    }\n    goto code_r0x00030b48;\n  case '\f':\n    uStack_c0 = *param_3;\n    if (((uStack_c0 & 0x30f) != 0) && (bVar17 = *(byte *)(iVar3 + 0x58), (bVar17 & 0x10) == 0)) {\n      *(byte *)(iVar3 + 0x58) = bVar17 | 0x10;\n      if ((bVar17 & 8) == 0) {\n        *(undefined4 *)(iVar3 + 0x60) = 0;\n        *(undefined4 *)(iVar3 + 100) = 0x3ff0000;\n        *(undefined4 *)(iVar3 + 0x68) = 0x87fffffe;\n        *(undefined4 *)(iVar3 + 0x6c) = 0x7fffffe;\n        if ((bVar17 & 4) != 0) {\n          *(undefined4 *)(iVar3 + 0x70) = 0;\n          *(undefined4 *)(iVar3 + 0x74) = 0;\n          *(undefined4 *)(iVar3 + 0x78) = 0;\n          *(undefined4 *)(iVar3 + 0x7c) = 0;\n          uStack_c0 = *param_3;\n          goto code_r0x00031089;\n        }\n        iVar4 = 0x80;\n        iVar16 = 4;\n      }\n      else {\n        iVar4 = 0;\n        iVar16 = 0;\n      }\n      ppuVar8 = __ctype_b_loc();\n      iVar16 = iVar3 + iVar16 * 4;\n      puVar9 = *ppuVar8 + iVar4;\n      do {\n        iVar12 = 0;\n        do {\n          if (((puVar9[iVar12] & 8) != 0) || (iVar4 + iVar12 == 0x5f)) {\n            *(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f);\n          }\n          iVar12 = iVar12 + 1;\n        } while (iVar12 != 0x20);\n        iVar4 = iVar4 + 0x20;\n        iVar16 = iVar16 + 4;\n        puVar9 = puVar9 + 0x20;\n      } while (iVar3 + 0x20 != iVar16);\n    }\ncode_r0x00031089:\n    if ((uStack_c0 - 0x100 & 0xfffffeff) == 0) {\n      if (uStack_c0 == 0x100) {\n        *param_3 = 6;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 9;\n      }\n      else {\n        *param_3 = 5;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 10;\n      }\n      iVar3 = FUN_00028330(0,param_3);\n      cStack_64 = '\n';\n      local_b0 = FUN_00028330(iVar3,&puStack_68);\n      if (uStack_c0 == 0 || iVar3 == 0) break;\n    }\n    else {\n      local_b0 = FUN_00028330(0,param_3);\n    }\n    if (local_b0 != 0) {\n      iVar3 = FUN_000300e0();\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n      goto LAB_00030965;\n    }\n    break;\n  case '\x14':\n    __ptr = (uint *)calloc(0x20,1);\n    puVar5 = (uint *)calloc(0x28,1);\n    if (__ptr == (uint *)0x0 || puVar5 == (uint *)0x0) {\n      free(__ptr);\n      free(puVar5);\n      *param_6 = 0xc;\n      local_b0 = 0;\n      goto LAB_00030965;\n    }\n    uStack_c0 = FUN_00025ab0();\n    cVar2 = (char)param_3[1];\n    if (cVar2 != '\x02') {\n      bVar1 = false;\n      if (cVar2 != '\x19') {\ncode_r0x000312a6:\n        if (cVar2 == '\x15') {\n          *(char *)(param_3 + 1) = '\x01';\n        }\n        uStack_90 = 0;\n        uVar6 = 1;\ncode_r0x000312e4:\n        iVar16 = FUN_0002fec0(uStack_c0,param_4,uVar6);\n        if (iVar16 == 0) {\n          iVar16 = FUN_00025ab0();\n          if ((char)param_3[1] == '\x02') {\ncode_r0x00031615:\n            *param_6 = 7;\n          }\n          else {\n            if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    \n                    \n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }\n            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n            uVar6 = FUN_00025ab0();\n            if (cStack_64 == '\x02') goto code_r0x00031615;\n            if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }\n            pcStack_6c = acStack_40;\n            puStack_70 = (uint *)0x3;\n            uVar14 = 1;\n            iVar16 = FUN_0002fec0(uVar6,param_4,1);\n            if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }\n          }\n        }\n        else {\n          *param_6 = iVar16;\n        }\n        goto code_r0x000314ef;\n      }\n      *(byte *)(puVar5 + 4) = (byte)puVar5[4] | 1;\n      if ((param_4 & 0x100) != 0) {\n        *__ptr = *__ptr | 0x400;\n      }\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n      uStack_c0 = FUN_00025ab0();\n      cVar2 = (char)param_3[1];\n      if (cVar2 != '\x02') {\n        bVar1 = true;\n        goto code_r0x000312a6;\n      }\n    }\n    *param_6 = 2;\ncode_r0x000314ef:\n    free(__ptr);\n    FUN_00026c30();\n    if (*param_6 == 0) {\n      local_b0 = 0;\n      goto code_r0x0003093e;\n    }\nLAB_00030e58:\n    local_b0 = 0;\n    goto LAB_00030965;\n  case '\x17':\n    if ((param_4 & 0x1000000) == 0) goto code_r0x000308ec;\ncode_r0x00030b48:\n    local_b0 = 0;\n    *param_6 = 0xd;\n    goto LAB_00030965;\n  case ' ':\n  case '!':\n    local_b0 = FUN_0002b9b0(&UNK_000370bb,cVar2 == '!',param_6);\n    iVar3 = *param_6;\n    goto joined_r0x00030f59;\n  case '\"':\n  case '#':\n    local_b0 = FUN_0002b9b0("",cVar2 == '#',param_6);\n    iVar3 = *param_6;\njoined_r0x00030f59:\n    if ((iVar3 != 0) && (local_b0 == 0)) goto LAB_00030e58;\n    goto code_r0x0003093e;\n  case '$':\n    local_b0 = 0;\n    *param_6 = 5;\n    goto LAB_00030965;\n  }" { (case_statement "default:\n    goto LAB_00030e58;" default : (goto_statement "goto LAB_00030e58;" goto statement_identifier ;)) (case_statement "case '\x01':\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\n      if (*(int *)(iVar3 + 0x5c) < 2) goto code_r0x0003093e;\n      do {\n        iVar3 = *(int *)(param_1 + 0x28);\n        if (((*(int *)(param_1 + 0x38) <= iVar3) || (iVar3 == *(int *)(param_1 + 0x1c))) ||\n           (*(int *)(*(int *)(param_1 + 8) + iVar3 * 4) != -1)) goto code_r0x0003093e;\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        iVar3 = FUN_00028330(0,param_3);\n        cStack_64 = '\x10';\n        local_b0 = FUN_00028330(iVar3,&puStack_68);\n      } while (iVar3 != 0 && local_b0 != 0);\n    }\n    break;" case (char_literal "'\x01'" ' escape_sequence ') : (expression_statement "local_b0 = FUN_00028330(0,param_3);" (assignment_expression "local_b0 = FUN_00028330(0,param_3)" identifier = (call_expression "FUN_00028330(0,param_3)" identifier (argument_list "(0,param_3)" ( number_literal , identifier )))) ;) (if_statement "if (local_b0 != 0) {\n      if (*(int *)(iVar3 + 0x5c) < 2) goto code_r0x0003093e;\n      do {\n        iVar3 = *(int *)(param_1 + 0x28);\n        if (((*(int *)(param_1 + 0x38) <= iVar3) || (iVar3 == *(int *)(param_1 + 0x1c))) ||\n           (*(int *)(*(int *)(param_1 + 8) + iVar3 * 4) != -1)) goto code_r0x0003093e;\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        iVar3 = FUN_00028330(0,param_3);\n        cStack_64 = '\x10';\n        local_b0 = FUN_00028330(iVar3,&puStack_68);\n      } while (iVar3 != 0 && local_b0 != 0);\n    }" if (parenthesized_expression "(local_b0 != 0)" ( (binary_expression "local_b0 != 0" identifier != number_literal) )) (compound_statement "{\n      if (*(int *)(iVar3 + 0x5c) < 2) goto code_r0x0003093e;\n      do {\n        iVar3 = *(int *)(param_1 + 0x28);\n        if (((*(int *)(param_1 + 0x38) <= iVar3) || (iVar3 == *(int *)(param_1 + 0x1c))) ||\n           (*(int *)(*(int *)(param_1 + 8) + iVar3 * 4) != -1)) goto code_r0x0003093e;\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        iVar3 = FUN_00028330(0,param_3);\n        cStack_64 = '\x10';\n        local_b0 = FUN_00028330(iVar3,&puStack_68);\n      } while (iVar3 != 0 && local_b0 != 0);\n    }" { (if_statement "if (*(int *)(iVar3 + 0x5c) < 2) goto code_r0x0003093e;" if (parenthesized_expression "(*(int *)(iVar3 + 0x5c) < 2)" ( (binary_expression "*(int *)(iVar3 + 0x5c) < 2" (pointer_expression "*(int *)(iVar3 + 0x5c)" * (cast_expression "(int *)(iVar3 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x5c)" ( (binary_expression "iVar3 + 0x5c" identifier + number_literal) )))) < number_literal) )) (goto_statement "goto code_r0x0003093e;" goto statement_identifier ;)) (do_statement "do {\n        iVar3 = *(int *)(param_1 + 0x28);\n        if (((*(int *)(param_1 + 0x38) <= iVar3) || (iVar3 == *(int *)(param_1 + 0x1c))) ||\n           (*(int *)(*(int *)(param_1 + 8) + iVar3 * 4) != -1)) goto code_r0x0003093e;\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        iVar3 = FUN_00028330(0,param_3);\n        cStack_64 = '\x10';\n        local_b0 = FUN_00028330(iVar3,&puStack_68);\n      } while (iVar3 != 0 && local_b0 != 0);" do (compound_statement "{\n        iVar3 = *(int *)(param_1 + 0x28);\n        if (((*(int *)(param_1 + 0x38) <= iVar3) || (iVar3 == *(int *)(param_1 + 0x1c))) ||\n           (*(int *)(*(int *)(param_1 + 8) + iVar3 * 4) != -1)) goto code_r0x0003093e;\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        iVar3 = FUN_00028330(0,param_3);\n        cStack_64 = '\x10';\n        local_b0 = FUN_00028330(iVar3,&puStack_68);\n      }" { (expression_statement "iVar3 = *(int *)(param_1 + 0x28);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x28)" identifier = (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (((*(int *)(param_1 + 0x38) <= iVar3) || (iVar3 == *(int *)(param_1 + 0x1c))) ||\n           (*(int *)(*(int *)(param_1 + 8) + iVar3 * 4) != -1)) goto code_r0x0003093e;" if (parenthesized_expression "(((*(int *)(param_1 + 0x38) <= iVar3) || (iVar3 == *(int *)(param_1 + 0x1c))) ||\n           (*(int *)(*(int *)(param_1 + 8) + iVar3 * 4) != -1))" ( (binary_expression "((*(int *)(param_1 + 0x38) <= iVar3) || (iVar3 == *(int *)(param_1 + 0x1c))) ||\n           (*(int *)(*(int *)(param_1 + 8) + iVar3 * 4) != -1)" (parenthesized_expression "((*(int *)(param_1 + 0x38) <= iVar3) || (iVar3 == *(int *)(param_1 + 0x1c)))" ( (binary_expression "(*(int *)(param_1 + 0x38) <= iVar3) || (iVar3 == *(int *)(param_1 + 0x1c))" (parenthesized_expression "(*(int *)(param_1 + 0x38) <= iVar3)" ( (binary_expression "*(int *)(param_1 + 0x38) <= iVar3" (pointer_expression "*(int *)(param_1 + 0x38)" * (cast_expression "(int *)(param_1 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) <= identifier) )) || (parenthesized_expression "(iVar3 == *(int *)(param_1 + 0x1c))" ( (binary_expression "iVar3 == *(int *)(param_1 + 0x1c)" identifier == (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ))) )) || (parenthesized_expression "(*(int *)(*(int *)(param_1 + 8) + iVar3 * 4) != -1)" ( (binary_expression "*(int *)(*(int *)(param_1 + 8) + iVar3 * 4) != -1" (pointer_expression "*(int *)(*(int *)(param_1 + 8) + iVar3 * 4)" * (cast_expression "(int *)(*(int *)(param_1 + 8) + iVar3 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 8) + iVar3 * 4)" ( (binary_expression "*(int *)(param_1 + 8) + iVar3 * 4" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + (binary_expression "iVar3 * 4" identifier * number_literal)) )))) != number_literal) ))) )) (goto_statement "goto code_r0x0003093e;" goto statement_identifier ;)) (expression_statement "iVar3 = FUN_000300e0();" (assignment_expression "iVar3 = FUN_000300e0()" identifier = (call_expression "FUN_000300e0()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;" (assignment_expression "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x28) + iVar3" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) + identifier)) ;) (expression_statement "iVar3 = FUN_00028330(0,param_3);" (assignment_expression "iVar3 = FUN_00028330(0,param_3)" identifier = (call_expression "FUN_00028330(0,param_3)" identifier (argument_list "(0,param_3)" ( number_literal , identifier )))) ;) (expression_statement "cStack_64 = '\x10';" (assignment_expression "cStack_64 = '\x10'" identifier = (char_literal "'\x10'" ' escape_sequence ')) ;) (expression_statement "local_b0 = FUN_00028330(iVar3,&puStack_68);" (assignment_expression "local_b0 = FUN_00028330(iVar3,&puStack_68)" identifier = (call_expression "FUN_00028330(iVar3,&puStack_68)" identifier (argument_list "(iVar3,&puStack_68)" ( identifier , (pointer_expression "&puStack_68" & identifier) )))) ;) }) while (parenthesized_expression "(iVar3 != 0 && local_b0 != 0)" ( (binary_expression "iVar3 != 0 && local_b0 != 0" (binary_expression "iVar3 != 0" identifier != number_literal) && (binary_expression "local_b0 != 0" identifier != number_literal)) )) ;) })) (break_statement "break;" break ;)) (case_statement "case '\x04':\n    uVar14 = 1 << ((byte)*param_3 & 0x1f);\n    if ((*(uint *)(iVar3 + 0x54) & uVar14) == 0) {\n      local_b0 = 0;\n      *param_6 = 6;\n      goto LAB_00030965;\n    }\n    *(uint *)(iVar3 + 0x50) = *(uint *)(iVar3 + 0x50) | uVar14;\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\n      *(int *)(iVar3 + 0x4c) = *(int *)(iVar3 + 0x4c) + 1;\n      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n      goto code_r0x0003093e;\n    }\n    break;" case (char_literal "'\x04'" ' escape_sequence ') : (expression_statement "uVar14 = 1 << ((byte)*param_3 & 0x1f);" (assignment_expression "uVar14 = 1 << ((byte)*param_3 & 0x1f)" identifier = (binary_expression "1 << ((byte)*param_3 & 0x1f)" number_literal << (parenthesized_expression "((byte)*param_3 & 0x1f)" ( (binary_expression "(byte)*param_3 & 0x1f" (binary_expression "(byte)*param_3" (parenthesized_expression "(byte)" ( identifier )) * identifier) & number_literal) )))) ;) (if_statement "if ((*(uint *)(iVar3 + 0x54) & uVar14) == 0) {\n      local_b0 = 0;\n      *param_6 = 6;\n      goto LAB_00030965;\n    }" if (parenthesized_expression "((*(uint *)(iVar3 + 0x54) & uVar14) == 0)" ( (binary_expression "(*(uint *)(iVar3 + 0x54) & uVar14) == 0" (parenthesized_expression "(*(uint *)(iVar3 + 0x54) & uVar14)" ( (binary_expression "*(uint *)(iVar3 + 0x54) & uVar14" (pointer_expression "*(uint *)(iVar3 + 0x54)" * (cast_expression "(uint *)(iVar3 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x54)" ( (binary_expression "iVar3 + 0x54" identifier + number_literal) )))) & identifier) )) == number_literal) )) (compound_statement "{\n      local_b0 = 0;\n      *param_6 = 6;\n      goto LAB_00030965;\n    }" { (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" identifier = number_literal) ;) (expression_statement "*param_6 = 6;" (assignment_expression "*param_6 = 6" (pointer_expression "*param_6" * identifier) = number_literal) ;) (goto_statement "goto LAB_00030965;" goto statement_identifier ;) })) (expression_statement "*(uint *)(iVar3 + 0x50) = *(uint *)(iVar3 + 0x50) | uVar14;" (assignment_expression "*(uint *)(iVar3 + 0x50) = *(uint *)(iVar3 + 0x50) | uVar14" (pointer_expression "*(uint *)(iVar3 + 0x50)" * (cast_expression "(uint *)(iVar3 + 0x50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x50)" ( (binary_expression "iVar3 + 0x50" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar3 + 0x50) | uVar14" (pointer_expression "*(uint *)(iVar3 + 0x50)" * (cast_expression "(uint *)(iVar3 + 0x50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x50)" ( (binary_expression "iVar3 + 0x50" identifier + number_literal) )))) | identifier)) ;) (expression_statement "local_b0 = FUN_00028330(0,param_3);" (assignment_expression "local_b0 = FUN_00028330(0,param_3)" identifier = (call_expression "FUN_00028330(0,param_3)" identifier (argument_list "(0,param_3)" ( number_literal , identifier )))) ;) (if_statement "if (local_b0 != 0) {\n      *(int *)(iVar3 + 0x4c) = *(int *)(iVar3 + 0x4c) + 1;\n      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n      goto code_r0x0003093e;\n    }" if (parenthesized_expression "(local_b0 != 0)" ( (binary_expression "local_b0 != 0" identifier != number_literal) )) (compound_statement "{\n      *(int *)(iVar3 + 0x4c) = *(int *)(iVar3 + 0x4c) + 1;\n      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n      goto code_r0x0003093e;\n    }" { (expression_statement "*(int *)(iVar3 + 0x4c) = *(int *)(iVar3 + 0x4c) + 1;" (assignment_expression "*(int *)(iVar3 + 0x4c) = *(int *)(iVar3 + 0x4c) + 1" (pointer_expression "*(int *)(iVar3 + 0x4c)" * (cast_expression "(int *)(iVar3 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x4c)" ( (binary_expression "iVar3 + 0x4c" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar3 + 0x4c) + 1" (pointer_expression "*(int *)(iVar3 + 0x4c)" * (cast_expression "(int *)(iVar3 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x4c)" ( (binary_expression "iVar3 + 0x4c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;" (assignment_expression "*(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2" (pointer_expression "*(byte *)(iVar3 + 0x58)" * (cast_expression "(byte *)(iVar3 + 0x58)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x58)" ( (binary_expression "iVar3 + 0x58" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar3 + 0x58) | 2" (pointer_expression "*(byte *)(iVar3 + 0x58)" * (cast_expression "(byte *)(iVar3 + 0x58)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x58)" ( (binary_expression "iVar3 + 0x58" identifier + number_literal) )))) | number_literal)) ;) (goto_statement "goto code_r0x0003093e;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case '\x05':\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 == 0) break;\n    if (1 < *(int *)(iVar3 + 0x5c)) {\n      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n    }\n    goto code_r0x0003093e;" case (char_literal "'\x05'" ' escape_sequence ') : (expression_statement "local_b0 = FUN_00028330(0,param_3);" (assignment_expression "local_b0 = FUN_00028330(0,param_3)" identifier = (call_expression "FUN_00028330(0,param_3)" identifier (argument_list "(0,param_3)" ( number_literal , identifier )))) ;) (if_statement "if (local_b0 == 0) break;" if (parenthesized_expression "(local_b0 == 0)" ( (binary_expression "local_b0 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (if_statement "if (1 < *(int *)(iVar3 + 0x5c)) {\n      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n    }" if (parenthesized_expression "(1 < *(int *)(iVar3 + 0x5c))" ( (binary_expression "1 < *(int *)(iVar3 + 0x5c)" number_literal < (pointer_expression "*(int *)(iVar3 + 0x5c)" * (cast_expression "(int *)(iVar3 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x5c)" ( (binary_expression "iVar3 + 0x5c" identifier + number_literal) ))))) )) (compound_statement "{\n      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n    }" { (expression_statement "*(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;" (assignment_expression "*(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2" (pointer_expression "*(byte *)(iVar3 + 0x58)" * (cast_expression "(byte *)(iVar3 + 0x58)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x58)" ( (binary_expression "iVar3 + 0x58" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar3 + 0x58) | 2" (pointer_expression "*(byte *)(iVar3 + 0x58)" * (cast_expression "(byte *)(iVar3 + 0x58)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x58)" ( (binary_expression "iVar3 + 0x58" identifier + number_literal) )))) | number_literal)) ;) })) (goto_statement "goto code_r0x0003093e;" goto statement_identifier ;)) (case_statement "case '\b':\n    uVar14 = param_2[6];\n    param_2[6] = uVar14 + 1;\n    iVar16 = FUN_000300e0();\n    *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n    if ((char)param_3[1] == '\t') {\ncode_r0x00030fd0:\n      if (uVar14 < 9) {\n        *(uint *)(iVar3 + 0x54) = *(uint *)(iVar3 + 0x54) | 1 << ((byte)uVar14 & 0x1f);\n      }\n      cStack_64 = '\x11';\n      local_b0 = FUN_00028330(0,&puStack_68);\n      if (local_b0 != 0) {\n        *(uint *)(local_b0 + 0x14) = uVar14;\n        goto code_r0x0003093e;\n      }\n      break;\n    }\n    iVar16 = FUN_00031e70(param_4,param_5 + 1,param_6);\n    if (*param_6 == 0) {\n      if ((char)param_3[1] == '\t') goto code_r0x00030fd0;\n      if (iVar16 != 0) {\n        FUN_00025a40();\n      }\n      *param_6 = 8;\n    }\n    goto LAB_00030e58;" case (char_literal "'\b'" ' escape_sequence ') : (expression_statement "uVar14 = param_2[6];" (assignment_expression "uVar14 = param_2[6]" identifier = (subscript_expression "param_2[6]" identifier [ number_literal ])) ;) (expression_statement "param_2[6] = uVar14 + 1;" (assignment_expression "param_2[6] = uVar14 + 1" (subscript_expression "param_2[6]" identifier [ number_literal ]) = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) (expression_statement "iVar16 = FUN_000300e0();" (assignment_expression "iVar16 = FUN_000300e0()" identifier = (call_expression "FUN_000300e0()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;" (assignment_expression "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x28) + iVar16" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) + identifier)) ;) (if_statement "if ((char)param_3[1] == '\t') {\ncode_r0x00030fd0:\n      if (uVar14 < 9) {\n        *(uint *)(iVar3 + 0x54) = *(uint *)(iVar3 + 0x54) | 1 << ((byte)uVar14 & 0x1f);\n      }\n      cStack_64 = '\x11';\n      local_b0 = FUN_00028330(0,&puStack_68);\n      if (local_b0 != 0) {\n        *(uint *)(local_b0 + 0x14) = uVar14;\n        goto code_r0x0003093e;\n      }\n      break;\n    }" if (parenthesized_expression "((char)param_3[1] == '\t')" ( (binary_expression "(char)param_3[1] == '\t'" (cast_expression "(char)param_3[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_3[1]" identifier [ number_literal ])) == (char_literal "'\t'" ' escape_sequence ')) )) (compound_statement "{\ncode_r0x00030fd0:\n      if (uVar14 < 9) {\n        *(uint *)(iVar3 + 0x54) = *(uint *)(iVar3 + 0x54) | 1 << ((byte)uVar14 & 0x1f);\n      }\n      cStack_64 = '\x11';\n      local_b0 = FUN_00028330(0,&puStack_68);\n      if (local_b0 != 0) {\n        *(uint *)(local_b0 + 0x14) = uVar14;\n        goto code_r0x0003093e;\n      }\n      break;\n    }" { (labeled_statement "code_r0x00030fd0:\n      if (uVar14 < 9) {\n        *(uint *)(iVar3 + 0x54) = *(uint *)(iVar3 + 0x54) | 1 << ((byte)uVar14 & 0x1f);\n      }" statement_identifier : (if_statement "if (uVar14 < 9) {\n        *(uint *)(iVar3 + 0x54) = *(uint *)(iVar3 + 0x54) | 1 << ((byte)uVar14 & 0x1f);\n      }" if (parenthesized_expression "(uVar14 < 9)" ( (binary_expression "uVar14 < 9" identifier < number_literal) )) (compound_statement "{\n        *(uint *)(iVar3 + 0x54) = *(uint *)(iVar3 + 0x54) | 1 << ((byte)uVar14 & 0x1f);\n      }" { (expression_statement "*(uint *)(iVar3 + 0x54) = *(uint *)(iVar3 + 0x54) | 1 << ((byte)uVar14 & 0x1f);" (assignment_expression "*(uint *)(iVar3 + 0x54) = *(uint *)(iVar3 + 0x54) | 1 << ((byte)uVar14 & 0x1f)" (pointer_expression "*(uint *)(iVar3 + 0x54)" * (cast_expression "(uint *)(iVar3 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x54)" ( (binary_expression "iVar3 + 0x54" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar3 + 0x54) | 1 << ((byte)uVar14 & 0x1f)" (pointer_expression "*(uint *)(iVar3 + 0x54)" * (cast_expression "(uint *)(iVar3 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x54)" ( (binary_expression "iVar3 + 0x54" identifier + number_literal) )))) | (binary_expression "1 << ((byte)uVar14 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar14 & 0x1f)" ( (binary_expression "(byte)uVar14 & 0x1f" (cast_expression "(byte)uVar14" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))))) ;) }))) (expression_statement "cStack_64 = '\x11';" (assignment_expression "cStack_64 = '\x11'" identifier = (char_literal "'\x11'" ' escape_sequence ')) ;) (expression_statement "local_b0 = FUN_00028330(0,&puStack_68);" (assignment_expression "local_b0 = FUN_00028330(0,&puStack_68)" identifier = (call_expression "FUN_00028330(0,&puStack_68)" identifier (argument_list "(0,&puStack_68)" ( number_literal , (pointer_expression "&puStack_68" & identifier) )))) ;) (if_statement "if (local_b0 != 0) {\n        *(uint *)(local_b0 + 0x14) = uVar14;\n        goto code_r0x0003093e;\n      }" if (parenthesized_expression "(local_b0 != 0)" ( (binary_expression "local_b0 != 0" identifier != number_literal) )) (compound_statement "{\n        *(uint *)(local_b0 + 0x14) = uVar14;\n        goto code_r0x0003093e;\n      }" { (expression_statement "*(uint *)(local_b0 + 0x14) = uVar14;" (assignment_expression "*(uint *)(local_b0 + 0x14) = uVar14" (pointer_expression "*(uint *)(local_b0 + 0x14)" * (cast_expression "(uint *)(local_b0 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_b0 + 0x14)" ( (binary_expression "local_b0 + 0x14" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto code_r0x0003093e;" goto statement_identifier ;) })) (break_statement "break;" break ;) })) (expression_statement "iVar16 = FUN_00031e70(param_4,param_5 + 1,param_6);" (assignment_expression "iVar16 = FUN_00031e70(param_4,param_5 + 1,param_6)" identifier = (call_expression "FUN_00031e70(param_4,param_5 + 1,param_6)" identifier (argument_list "(param_4,param_5 + 1,param_6)" ( identifier , (binary_expression "param_5 + 1" identifier + number_literal) , identifier )))) ;) (if_statement "if (*param_6 == 0) {\n      if ((char)param_3[1] == '\t') goto code_r0x00030fd0;\n      if (iVar16 != 0) {\n        FUN_00025a40();\n      }\n      *param_6 = 8;\n    }" if (parenthesized_expression "(*param_6 == 0)" ( (binary_expression "*param_6 == 0" (pointer_expression "*param_6" * identifier) == number_literal) )) (compound_statement "{\n      if ((char)param_3[1] == '\t') goto code_r0x00030fd0;\n      if (iVar16 != 0) {\n        FUN_00025a40();\n      }\n      *param_6 = 8;\n    }" { (if_statement "if ((char)param_3[1] == '\t') goto code_r0x00030fd0;" if (parenthesized_expression "((char)param_3[1] == '\t')" ( (binary_expression "(char)param_3[1] == '\t'" (cast_expression "(char)param_3[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_3[1]" identifier [ number_literal ])) == (char_literal "'\t'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00030fd0;" goto statement_identifier ;)) (if_statement "if (iVar16 != 0) {\n        FUN_00025a40();\n      }" if (parenthesized_expression "(iVar16 != 0)" ( (binary_expression "iVar16 != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_00025a40();\n      }" { (expression_statement "FUN_00025a40();" (call_expression "FUN_00025a40()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*param_6 = 8;" (assignment_expression "*param_6 = 8" (pointer_expression "*param_6" * identifier) = number_literal) ;) })) (goto_statement "goto LAB_00030e58;" goto statement_identifier ;)) (case_statement "case '\t':\ncode_r0x000313dd:\n    if ((param_4 & 0x20000) == 0) {\n      local_b0 = 0;\n      *param_6 = 0x10;\n      goto LAB_00030965;\n    }" case (char_literal "'\t'" ' escape_sequence ') : (labeled_statement "code_r0x000313dd:\n    if ((param_4 & 0x20000) == 0) {\n      local_b0 = 0;\n      *param_6 = 0x10;\n      goto LAB_00030965;\n    }" statement_identifier : (if_statement "if ((param_4 & 0x20000) == 0) {\n      local_b0 = 0;\n      *param_6 = 0x10;\n      goto LAB_00030965;\n    }" if (parenthesized_expression "((param_4 & 0x20000) == 0)" ( (binary_expression "(param_4 & 0x20000) == 0" (parenthesized_expression "(param_4 & 0x20000)" ( (binary_expression "param_4 & 0x20000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      local_b0 = 0;\n      *param_6 = 0x10;\n      goto LAB_00030965;\n    }" { (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" identifier = number_literal) ;) (expression_statement "*param_6 = 0x10;" (assignment_expression "*param_6 = 0x10" (pointer_expression "*param_6" * identifier) = number_literal) ;) (goto_statement "goto LAB_00030965;" goto statement_identifier ;) })))) (case_statement "case '\x18':\ncode_r0x00030910:\n    *(char *)(param_3 + 1) = '\x01';\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\ncode_r0x0003093e:\n      iVar3 = FUN_000300e0();\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n      uVar14 = (uint)(byte)param_3[1];\n      do {\n        bVar17 = (byte)uVar14;\n        if ((0x17 < bVar17) || ((0x8c0800U >> (uVar14 & 0x1f) & 1) == 0)) goto LAB_00030965;\n        uVar6 = *(undefined4 *)(param_1 + 0x28);\n        uVar14 = *param_3;\n        uVar13 = param_3[1];\n        iStack_a4 = local_b0;\n        if (bVar17 == 0x17) {\n          uVar15 = FUN_000307e0();\n          if (uVar15 == 0xffffffff) {\n            if (((char)param_3[1] == '\x01') && ((char)*param_3 == ',')) {\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\ncode_r0x00030e40:\n            *param_6 = 10;\n          }\n          else {\n            if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }\ncode_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }\ncode_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;\n            *param_3 = uVar14;\n            param_3[1] = uVar13;\n            *(char *)(param_3 + 1) = '\x01';\n            iVar3 = local_b0;\ncode_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;\n          }\ncode_r0x00030e4a:\n          if (local_b0 == 0) goto LAB_00030e58;\ncode_r0x00030bea:\n          FUN_00025a40();\n          local_b0 = 0;\n          goto LAB_00030965;\n        }\n        uVar15 = (uint)(bVar17 == 0x12);\n        if (bVar17 == 0x13) {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 == 0) goto code_r0x00030d10;\n          if (*(char *)(local_b0 + 0x18) == '\x11') {\n            uStack_c0 = 1;\n            iStack_a4 = 0;\n            goto code_r0x00030c76;\n          }\n          uStack_c0 = 1;\n          cStack_64 = '\n';\n          iStack_a4 = 0;\ncode_r0x00030a18:\n          iVar3 = FUN_00028330(0,&puStack_68);\n          if (iVar3 == 0) {\ncode_r0x00030be0:\n            *param_6 = 0xc;\n            goto code_r0x00030bea;\n          }\n          for (iVar16 = uVar15 + 2; iVar16 <= (int)uStack_c0; iVar16 = iVar16 + 1) {\n            iVar3 = FUN_00028410();\n            cStack_64 = '\x10';\n            iVar4 = FUN_00028330(iVar3,&puStack_68);\n            if ((iVar3 == 0) || (iVar4 == 0)) goto code_r0x00030be0;\n            cStack_64 = '\n';\n            iVar3 = FUN_00028330(0,&puStack_68);\n            if (iVar3 == 0) goto code_r0x00030be0;\n          }\n          if (iStack_a4 != 0) {\n            cStack_64 = '\x10';\n            iVar3 = FUN_00028330(iVar3,&puStack_68);\n            goto code_r0x00030af2;\n          }\n        }\n        else {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 != 0) {\n            if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }\n            uStack_c0 = 0xffffffff;\n            uVar15 = 1;\ncode_r0x00030e9c:\n            iVar3 = FUN_00028410();\n            if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }\n            goto code_r0x00030be0;\n          }\ncode_r0x00030d10:\n          if (*param_6 != 0) goto LAB_00030e58;\ncode_r0x00030d1e:\n          local_b0 = 0;\n          iVar3 = local_b0;\n        }\ncode_r0x00030b08:\n        local_b0 = iVar3;\n        bVar17 = (byte)param_3[1];\n        uVar14 = (uint)bVar17;\n      } while (((param_4 & 0x1000000) == 0) || ((bVar17 != 0xb && (bVar17 != 0x17))));\n      if (local_b0 != 0) {\n        FUN_00025a40();\n      }\n      goto code_r0x00030b48;\n    }\n    break;" case (char_literal "'\x18'" ' escape_sequence ') : (labeled_statement "code_r0x00030910:\n    *(char *)(param_3 + 1) = '\x01';" statement_identifier : (expression_statement "*(char *)(param_3 + 1) = '\x01';" (assignment_expression "*(char *)(param_3 + 1) = '\x01'" (pointer_expression "*(char *)(param_3 + 1)" * (cast_expression "(char *)(param_3 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 1)" ( (binary_expression "param_3 + 1" identifier + number_literal) )))) = (char_literal "'\x01'" ' escape_sequence ')) ;)) (expression_statement "local_b0 = FUN_00028330(0,param_3);" (assignment_expression "local_b0 = FUN_00028330(0,param_3)" identifier = (call_expression "FUN_00028330(0,param_3)" identifier (argument_list "(0,param_3)" ( number_literal , identifier )))) ;) (if_statement "if (local_b0 != 0) {\ncode_r0x0003093e:\n      iVar3 = FUN_000300e0();\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n      uVar14 = (uint)(byte)param_3[1];\n      do {\n        bVar17 = (byte)uVar14;\n        if ((0x17 < bVar17) || ((0x8c0800U >> (uVar14 & 0x1f) & 1) == 0)) goto LAB_00030965;\n        uVar6 = *(undefined4 *)(param_1 + 0x28);\n        uVar14 = *param_3;\n        uVar13 = param_3[1];\n        iStack_a4 = local_b0;\n        if (bVar17 == 0x17) {\n          uVar15 = FUN_000307e0();\n          if (uVar15 == 0xffffffff) {\n            if (((char)param_3[1] == '\x01') && ((char)*param_3 == ',')) {\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\ncode_r0x00030e40:\n            *param_6 = 10;\n          }\n          else {\n            if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }\ncode_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }\ncode_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;\n            *param_3 = uVar14;\n            param_3[1] = uVar13;\n            *(char *)(param_3 + 1) = '\x01';\n            iVar3 = local_b0;\ncode_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;\n          }\ncode_r0x00030e4a:\n          if (local_b0 == 0) goto LAB_00030e58;\ncode_r0x00030bea:\n          FUN_00025a40();\n          local_b0 = 0;\n          goto LAB_00030965;\n        }\n        uVar15 = (uint)(bVar17 == 0x12);\n        if (bVar17 == 0x13) {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 == 0) goto code_r0x00030d10;\n          if (*(char *)(local_b0 + 0x18) == '\x11') {\n            uStack_c0 = 1;\n            iStack_a4 = 0;\n            goto code_r0x00030c76;\n          }\n          uStack_c0 = 1;\n          cStack_64 = '\n';\n          iStack_a4 = 0;\ncode_r0x00030a18:\n          iVar3 = FUN_00028330(0,&puStack_68);\n          if (iVar3 == 0) {\ncode_r0x00030be0:\n            *param_6 = 0xc;\n            goto code_r0x00030bea;\n          }\n          for (iVar16 = uVar15 + 2; iVar16 <= (int)uStack_c0; iVar16 = iVar16 + 1) {\n            iVar3 = FUN_00028410();\n            cStack_64 = '\x10';\n            iVar4 = FUN_00028330(iVar3,&puStack_68);\n            if ((iVar3 == 0) || (iVar4 == 0)) goto code_r0x00030be0;\n            cStack_64 = '\n';\n            iVar3 = FUN_00028330(0,&puStack_68);\n            if (iVar3 == 0) goto code_r0x00030be0;\n          }\n          if (iStack_a4 != 0) {\n            cStack_64 = '\x10';\n            iVar3 = FUN_00028330(iVar3,&puStack_68);\n            goto code_r0x00030af2;\n          }\n        }\n        else {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 != 0) {\n            if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }\n            uStack_c0 = 0xffffffff;\n            uVar15 = 1;\ncode_r0x00030e9c:\n            iVar3 = FUN_00028410();\n            if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }\n            goto code_r0x00030be0;\n          }\ncode_r0x00030d10:\n          if (*param_6 != 0) goto LAB_00030e58;\ncode_r0x00030d1e:\n          local_b0 = 0;\n          iVar3 = local_b0;\n        }\ncode_r0x00030b08:\n        local_b0 = iVar3;\n        bVar17 = (byte)param_3[1];\n        uVar14 = (uint)bVar17;\n      } while (((param_4 & 0x1000000) == 0) || ((bVar17 != 0xb && (bVar17 != 0x17))));\n      if (local_b0 != 0) {\n        FUN_00025a40();\n      }\n      goto code_r0x00030b48;\n    }" if (parenthesized_expression "(local_b0 != 0)" ( (binary_expression "local_b0 != 0" identifier != number_literal) )) (compound_statement "{\ncode_r0x0003093e:\n      iVar3 = FUN_000300e0();\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n      uVar14 = (uint)(byte)param_3[1];\n      do {\n        bVar17 = (byte)uVar14;\n        if ((0x17 < bVar17) || ((0x8c0800U >> (uVar14 & 0x1f) & 1) == 0)) goto LAB_00030965;\n        uVar6 = *(undefined4 *)(param_1 + 0x28);\n        uVar14 = *param_3;\n        uVar13 = param_3[1];\n        iStack_a4 = local_b0;\n        if (bVar17 == 0x17) {\n          uVar15 = FUN_000307e0();\n          if (uVar15 == 0xffffffff) {\n            if (((char)param_3[1] == '\x01') && ((char)*param_3 == ',')) {\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\ncode_r0x00030e40:\n            *param_6 = 10;\n          }\n          else {\n            if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }\ncode_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }\ncode_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;\n            *param_3 = uVar14;\n            param_3[1] = uVar13;\n            *(char *)(param_3 + 1) = '\x01';\n            iVar3 = local_b0;\ncode_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;\n          }\ncode_r0x00030e4a:\n          if (local_b0 == 0) goto LAB_00030e58;\ncode_r0x00030bea:\n          FUN_00025a40();\n          local_b0 = 0;\n          goto LAB_00030965;\n        }\n        uVar15 = (uint)(bVar17 == 0x12);\n        if (bVar17 == 0x13) {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 == 0) goto code_r0x00030d10;\n          if (*(char *)(local_b0 + 0x18) == '\x11') {\n            uStack_c0 = 1;\n            iStack_a4 = 0;\n            goto code_r0x00030c76;\n          }\n          uStack_c0 = 1;\n          cStack_64 = '\n';\n          iStack_a4 = 0;\ncode_r0x00030a18:\n          iVar3 = FUN_00028330(0,&puStack_68);\n          if (iVar3 == 0) {\ncode_r0x00030be0:\n            *param_6 = 0xc;\n            goto code_r0x00030bea;\n          }\n          for (iVar16 = uVar15 + 2; iVar16 <= (int)uStack_c0; iVar16 = iVar16 + 1) {\n            iVar3 = FUN_00028410();\n            cStack_64 = '\x10';\n            iVar4 = FUN_00028330(iVar3,&puStack_68);\n            if ((iVar3 == 0) || (iVar4 == 0)) goto code_r0x00030be0;\n            cStack_64 = '\n';\n            iVar3 = FUN_00028330(0,&puStack_68);\n            if (iVar3 == 0) goto code_r0x00030be0;\n          }\n          if (iStack_a4 != 0) {\n            cStack_64 = '\x10';\n            iVar3 = FUN_00028330(iVar3,&puStack_68);\n            goto code_r0x00030af2;\n          }\n        }\n        else {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 != 0) {\n            if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }\n            uStack_c0 = 0xffffffff;\n            uVar15 = 1;\ncode_r0x00030e9c:\n            iVar3 = FUN_00028410();\n            if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }\n            goto code_r0x00030be0;\n          }\ncode_r0x00030d10:\n          if (*param_6 != 0) goto LAB_00030e58;\ncode_r0x00030d1e:\n          local_b0 = 0;\n          iVar3 = local_b0;\n        }\ncode_r0x00030b08:\n        local_b0 = iVar3;\n        bVar17 = (byte)param_3[1];\n        uVar14 = (uint)bVar17;\n      } while (((param_4 & 0x1000000) == 0) || ((bVar17 != 0xb && (bVar17 != 0x17))));\n      if (local_b0 != 0) {\n        FUN_00025a40();\n      }\n      goto code_r0x00030b48;\n    }" { (labeled_statement "code_r0x0003093e:\n      iVar3 = FUN_000300e0();" statement_identifier : (expression_statement "iVar3 = FUN_000300e0();" (assignment_expression "iVar3 = FUN_000300e0()" identifier = (call_expression "FUN_000300e0()" identifier (argument_list "()" ( )))) ;)) (expression_statement "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;" (assignment_expression "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x28) + iVar3" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) + identifier)) ;) (expression_statement "uVar14 = (uint)(byte)param_3[1];" (assignment_expression "uVar14 = (uint)(byte)param_3[1]" identifier = (cast_expression "(uint)(byte)param_3[1]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)param_3[1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_3[1]" identifier [ number_literal ])))) ;) (do_statement "do {\n        bVar17 = (byte)uVar14;\n        if ((0x17 < bVar17) || ((0x8c0800U >> (uVar14 & 0x1f) & 1) == 0)) goto LAB_00030965;\n        uVar6 = *(undefined4 *)(param_1 + 0x28);\n        uVar14 = *param_3;\n        uVar13 = param_3[1];\n        iStack_a4 = local_b0;\n        if (bVar17 == 0x17) {\n          uVar15 = FUN_000307e0();\n          if (uVar15 == 0xffffffff) {\n            if (((char)param_3[1] == '\x01') && ((char)*param_3 == ',')) {\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\ncode_r0x00030e40:\n            *param_6 = 10;\n          }\n          else {\n            if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }\ncode_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }\ncode_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;\n            *param_3 = uVar14;\n            param_3[1] = uVar13;\n            *(char *)(param_3 + 1) = '\x01';\n            iVar3 = local_b0;\ncode_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;\n          }\ncode_r0x00030e4a:\n          if (local_b0 == 0) goto LAB_00030e58;\ncode_r0x00030bea:\n          FUN_00025a40();\n          local_b0 = 0;\n          goto LAB_00030965;\n        }\n        uVar15 = (uint)(bVar17 == 0x12);\n        if (bVar17 == 0x13) {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 == 0) goto code_r0x00030d10;\n          if (*(char *)(local_b0 + 0x18) == '\x11') {\n            uStack_c0 = 1;\n            iStack_a4 = 0;\n            goto code_r0x00030c76;\n          }\n          uStack_c0 = 1;\n          cStack_64 = '\n';\n          iStack_a4 = 0;\ncode_r0x00030a18:\n          iVar3 = FUN_00028330(0,&puStack_68);\n          if (iVar3 == 0) {\ncode_r0x00030be0:\n            *param_6 = 0xc;\n            goto code_r0x00030bea;\n          }\n          for (iVar16 = uVar15 + 2; iVar16 <= (int)uStack_c0; iVar16 = iVar16 + 1) {\n            iVar3 = FUN_00028410();\n            cStack_64 = '\x10';\n            iVar4 = FUN_00028330(iVar3,&puStack_68);\n            if ((iVar3 == 0) || (iVar4 == 0)) goto code_r0x00030be0;\n            cStack_64 = '\n';\n            iVar3 = FUN_00028330(0,&puStack_68);\n            if (iVar3 == 0) goto code_r0x00030be0;\n          }\n          if (iStack_a4 != 0) {\n            cStack_64 = '\x10';\n            iVar3 = FUN_00028330(iVar3,&puStack_68);\n            goto code_r0x00030af2;\n          }\n        }\n        else {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 != 0) {\n            if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }\n            uStack_c0 = 0xffffffff;\n            uVar15 = 1;\ncode_r0x00030e9c:\n            iVar3 = FUN_00028410();\n            if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }\n            goto code_r0x00030be0;\n          }\ncode_r0x00030d10:\n          if (*param_6 != 0) goto LAB_00030e58;\ncode_r0x00030d1e:\n          local_b0 = 0;\n          iVar3 = local_b0;\n        }\ncode_r0x00030b08:\n        local_b0 = iVar3;\n        bVar17 = (byte)param_3[1];\n        uVar14 = (uint)bVar17;\n      } while (((param_4 & 0x1000000) == 0) || ((bVar17 != 0xb && (bVar17 != 0x17))));" do (compound_statement "{\n        bVar17 = (byte)uVar14;\n        if ((0x17 < bVar17) || ((0x8c0800U >> (uVar14 & 0x1f) & 1) == 0)) goto LAB_00030965;\n        uVar6 = *(undefined4 *)(param_1 + 0x28);\n        uVar14 = *param_3;\n        uVar13 = param_3[1];\n        iStack_a4 = local_b0;\n        if (bVar17 == 0x17) {\n          uVar15 = FUN_000307e0();\n          if (uVar15 == 0xffffffff) {\n            if (((char)param_3[1] == '\x01') && ((char)*param_3 == ',')) {\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\ncode_r0x00030e40:\n            *param_6 = 10;\n          }\n          else {\n            if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }\ncode_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }\ncode_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;\n            *param_3 = uVar14;\n            param_3[1] = uVar13;\n            *(char *)(param_3 + 1) = '\x01';\n            iVar3 = local_b0;\ncode_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;\n          }\ncode_r0x00030e4a:\n          if (local_b0 == 0) goto LAB_00030e58;\ncode_r0x00030bea:\n          FUN_00025a40();\n          local_b0 = 0;\n          goto LAB_00030965;\n        }\n        uVar15 = (uint)(bVar17 == 0x12);\n        if (bVar17 == 0x13) {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 == 0) goto code_r0x00030d10;\n          if (*(char *)(local_b0 + 0x18) == '\x11') {\n            uStack_c0 = 1;\n            iStack_a4 = 0;\n            goto code_r0x00030c76;\n          }\n          uStack_c0 = 1;\n          cStack_64 = '\n';\n          iStack_a4 = 0;\ncode_r0x00030a18:\n          iVar3 = FUN_00028330(0,&puStack_68);\n          if (iVar3 == 0) {\ncode_r0x00030be0:\n            *param_6 = 0xc;\n            goto code_r0x00030bea;\n          }\n          for (iVar16 = uVar15 + 2; iVar16 <= (int)uStack_c0; iVar16 = iVar16 + 1) {\n            iVar3 = FUN_00028410();\n            cStack_64 = '\x10';\n            iVar4 = FUN_00028330(iVar3,&puStack_68);\n            if ((iVar3 == 0) || (iVar4 == 0)) goto code_r0x00030be0;\n            cStack_64 = '\n';\n            iVar3 = FUN_00028330(0,&puStack_68);\n            if (iVar3 == 0) goto code_r0x00030be0;\n          }\n          if (iStack_a4 != 0) {\n            cStack_64 = '\x10';\n            iVar3 = FUN_00028330(iVar3,&puStack_68);\n            goto code_r0x00030af2;\n          }\n        }\n        else {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 != 0) {\n            if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }\n            uStack_c0 = 0xffffffff;\n            uVar15 = 1;\ncode_r0x00030e9c:\n            iVar3 = FUN_00028410();\n            if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }\n            goto code_r0x00030be0;\n          }\ncode_r0x00030d10:\n          if (*param_6 != 0) goto LAB_00030e58;\ncode_r0x00030d1e:\n          local_b0 = 0;\n          iVar3 = local_b0;\n        }\ncode_r0x00030b08:\n        local_b0 = iVar3;\n        bVar17 = (byte)param_3[1];\n        uVar14 = (uint)bVar17;\n      }" { (expression_statement "bVar17 = (byte)uVar14;" (assignment_expression "bVar17 = (byte)uVar14" identifier = (cast_expression "(byte)uVar14" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (if_statement "if ((0x17 < bVar17) || ((0x8c0800U >> (uVar14 & 0x1f) & 1) == 0)) goto LAB_00030965;" if (parenthesized_expression "((0x17 < bVar17) || ((0x8c0800U >> (uVar14 & 0x1f) & 1) == 0))" ( (binary_expression "(0x17 < bVar17) || ((0x8c0800U >> (uVar14 & 0x1f) & 1) == 0)" (parenthesized_expression "(0x17 < bVar17)" ( (binary_expression "0x17 < bVar17" number_literal < identifier) )) || (parenthesized_expression "((0x8c0800U >> (uVar14 & 0x1f) & 1) == 0)" ( (binary_expression "(0x8c0800U >> (uVar14 & 0x1f) & 1) == 0" (parenthesized_expression "(0x8c0800U >> (uVar14 & 0x1f) & 1)" ( (binary_expression "0x8c0800U >> (uVar14 & 0x1f) & 1" (binary_expression "0x8c0800U >> (uVar14 & 0x1f)" number_literal >> (parenthesized_expression "(uVar14 & 0x1f)" ( (binary_expression "uVar14 & 0x1f" identifier & number_literal) ))) & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_00030965;" goto statement_identifier ;)) (expression_statement "uVar6 = *(undefined4 *)(param_1 + 0x28);" (assignment_expression "uVar6 = *(undefined4 *)(param_1 + 0x28)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x28)" * (cast_expression "(undefined4 *)(param_1 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = *param_3;" (assignment_expression "uVar14 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "uVar13 = param_3[1];" (assignment_expression "uVar13 = param_3[1]" identifier = (subscript_expression "param_3[1]" identifier [ number_literal ])) ;) (expression_statement "iStack_a4 = local_b0;" (assignment_expression "iStack_a4 = local_b0" identifier = identifier) ;) (if_statement "if (bVar17 == 0x17) {\n          uVar15 = FUN_000307e0();\n          if (uVar15 == 0xffffffff) {\n            if (((char)param_3[1] == '\x01') && ((char)*param_3 == ',')) {\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\ncode_r0x00030e40:\n            *param_6 = 10;\n          }\n          else {\n            if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }\ncode_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }\ncode_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;\n            *param_3 = uVar14;\n            param_3[1] = uVar13;\n            *(char *)(param_3 + 1) = '\x01';\n            iVar3 = local_b0;\ncode_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;\n          }\ncode_r0x00030e4a:\n          if (local_b0 == 0) goto LAB_00030e58;\ncode_r0x00030bea:\n          FUN_00025a40();\n          local_b0 = 0;\n          goto LAB_00030965;\n        }" if (parenthesized_expression "(bVar17 == 0x17)" ( (binary_expression "bVar17 == 0x17" identifier == number_literal) )) (compound_statement "{\n          uVar15 = FUN_000307e0();\n          if (uVar15 == 0xffffffff) {\n            if (((char)param_3[1] == '\x01') && ((char)*param_3 == ',')) {\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\ncode_r0x00030e40:\n            *param_6 = 10;\n          }\n          else {\n            if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }\ncode_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }\ncode_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;\n            *param_3 = uVar14;\n            param_3[1] = uVar13;\n            *(char *)(param_3 + 1) = '\x01';\n            iVar3 = local_b0;\ncode_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;\n          }\ncode_r0x00030e4a:\n          if (local_b0 == 0) goto LAB_00030e58;\ncode_r0x00030bea:\n          FUN_00025a40();\n          local_b0 = 0;\n          goto LAB_00030965;\n        }" { (expression_statement "uVar15 = FUN_000307e0();" (assignment_expression "uVar15 = FUN_000307e0()" identifier = (call_expression "FUN_000307e0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (uVar15 == 0xffffffff) {\n            if (((char)param_3[1] == '\x01') && ((char)*param_3 == ',')) {\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\ncode_r0x00030e40:\n            *param_6 = 10;\n          }\n          else {\n            if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }\ncode_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }\ncode_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;\n            *param_3 = uVar14;\n            param_3[1] = uVar13;\n            *(char *)(param_3 + 1) = '\x01';\n            iVar3 = local_b0;\ncode_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;\n          }" if (parenthesized_expression "(uVar15 == 0xffffffff)" ( (binary_expression "uVar15 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n            if (((char)param_3[1] == '\x01') && ((char)*param_3 == ',')) {\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\ncode_r0x00030e40:\n            *param_6 = 10;\n          }" { (if_statement "if (((char)param_3[1] == '\x01') && ((char)*param_3 == ',')) {\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }" if (parenthesized_expression "(((char)param_3[1] == '\x01') && ((char)*param_3 == ','))" ( (binary_expression "((char)param_3[1] == '\x01') && ((char)*param_3 == ',')" (parenthesized_expression "((char)param_3[1] == '\x01')" ( (binary_expression "(char)param_3[1] == '\x01'" (cast_expression "(char)param_3[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_3[1]" identifier [ number_literal ])) == (char_literal "'\x01'" ' escape_sequence ')) )) && (parenthesized_expression "((char)*param_3 == ',')" ( (binary_expression "(char)*param_3 == ','" (cast_expression "(char)*param_3" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*param_3" * identifier)) == (char_literal "','" ' character ')) ))) )) (compound_statement "{\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }" { (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) (labeled_statement "code_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();" statement_identifier : (expression_statement "uStack_c0 = FUN_000307e0();" (assignment_expression "uStack_c0 = FUN_000307e0()" identifier = (call_expression "FUN_000307e0()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;" if (parenthesized_expression "(uStack_c0 == 0xfffffffe)" ( (binary_expression "uStack_c0 == 0xfffffffe" identifier == number_literal) )) (goto_statement "goto code_r0x00030cd8;" goto statement_identifier ;)) (if_statement "if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }" if (parenthesized_expression "(((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18'))" ( (binary_expression "((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')" (parenthesized_expression "((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0))" ( (binary_expression "(uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)" (parenthesized_expression "(uStack_c0 == 0xffffffff)" ( (binary_expression "uStack_c0 == 0xffffffff" identifier == number_literal) )) || (parenthesized_expression "((int)uVar15 <= (int)uStack_c0)" ( (binary_expression "(int)uVar15 <= (int)uStack_c0" (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)uStack_c0" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) && (parenthesized_expression "((char)param_3[1] == '\x18')" ( (binary_expression "(char)param_3[1] == '\x18'" (cast_expression "(char)param_3[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_3[1]" identifier [ number_literal ])) == (char_literal "'\x18'" ' escape_sequence ')) ))) )) (compound_statement "{\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }" { (expression_statement "uVar14 = uVar15;" (assignment_expression "uVar14 = uVar15" identifier = identifier) ;) (if_statement "if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;" if (parenthesized_expression "(uStack_c0 != 0xffffffff)" ( (binary_expression "uStack_c0 != 0xffffffff" identifier != number_literal) )) (goto_statement "goto code_r0x00030dfc;" goto statement_identifier ;)) (goto_statement "goto joined_r0x00030e0b;" goto statement_identifier ;) })) })) (labeled_statement "code_r0x00030e40:\n            *param_6 = 10;" statement_identifier : (expression_statement "*param_6 = 10;" (assignment_expression "*param_6 = 10" (pointer_expression "*param_6" * identifier) = number_literal) ;)) }) (else_clause "else {\n            if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }\ncode_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }\ncode_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;\n            *param_3 = uVar14;\n            param_3[1] = uVar13;\n            *(char *)(param_3 + 1) = '\x01';\n            iVar3 = local_b0;\ncode_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;\n          }" else (compound_statement "{\n            if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }\ncode_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }\ncode_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;\n            *param_3 = uVar14;\n            param_3[1] = uVar13;\n            *(char *)(param_3 + 1) = '\x01';\n            iVar3 = local_b0;\ncode_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;\n          }" { (if_statement "if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }" if (parenthesized_expression "(uVar15 != 0xfffffffe)" ( (binary_expression "uVar15 != 0xfffffffe" identifier != number_literal) )) (compound_statement "{\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }" { (expression_statement "uStack_c0 = uVar15;" (assignment_expression "uStack_c0 = uVar15" identifier = identifier) ;) (if_statement "if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }" if (parenthesized_expression "((char)param_3[1] != '\x18')" ( (binary_expression "(char)param_3[1] != '\x18'" (cast_expression "(char)param_3[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_3[1]" identifier [ number_literal ])) != (char_literal "'\x18'" ' escape_sequence ')) )) (compound_statement "{\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }" { (if_statement "if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;" if (parenthesized_expression "((char)param_3[1] != '\x01')" ( (binary_expression "(char)param_3[1] != '\x01'" (cast_expression "(char)param_3[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_3[1]" identifier [ number_literal ])) != (char_literal "'\x01'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00030cd8;" goto statement_identifier ;)) (if_statement "if ((char)*param_3 == ',') goto code_r0x00030d4d;" if (parenthesized_expression "((char)*param_3 == ',')" ( (binary_expression "(char)*param_3 == ','" (cast_expression "(char)*param_3" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*param_3" * identifier)) == (char_literal "','" ' character ')) )) (goto_statement "goto code_r0x00030d4d;" goto statement_identifier ;)) (if_statement "if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;" if (parenthesized_expression "((param_4 & 0x200000) == 0)" ( (binary_expression "(param_4 & 0x200000) == 0" (parenthesized_expression "(param_4 & 0x200000)" ( (binary_expression "param_4 & 0x200000" identifier & number_literal) )) == number_literal) )) (goto_statement "goto code_r0x00030e40;" goto statement_identifier ;)) (goto_statement "goto code_r0x00030ce9;" goto statement_identifier ;) })) (labeled_statement "code_r0x00030dfc:\n              uVar14 = uStack_c0;" statement_identifier : (expression_statement "uVar14 = uStack_c0;" (assignment_expression "uVar14 = uStack_c0" identifier = identifier) ;)) (labeled_statement "joined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }" statement_identifier : (if_statement "if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }" if (parenthesized_expression "(0x7fff < (int)uVar14)" ( (binary_expression "0x7fff < (int)uVar14" number_literal < (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }" { (expression_statement "*param_6 = 0xf;" (assignment_expression "*param_6 = 0xf" (pointer_expression "*param_6" * identifier) = number_literal) ;) (goto_statement "goto code_r0x00030e4a;" goto statement_identifier ;) }))) (expression_statement "iVar3 = FUN_000300e0();" (assignment_expression "iVar3 = FUN_000300e0()" identifier = (call_expression "FUN_000300e0()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;" (assignment_expression "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x28) + iVar3" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) + identifier)) ;) (if_statement "if (local_b0 == 0) goto code_r0x00030d10;" if (parenthesized_expression "(local_b0 == 0)" ( (binary_expression "local_b0 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x00030d10;" goto statement_identifier ;)) (if_statement "if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }" if (parenthesized_expression "(uStack_c0 != 0 || uVar15 != 0)" ( (binary_expression "uStack_c0 != 0 || uVar15 != 0" (binary_expression "uStack_c0 != 0" identifier != number_literal) || (binary_expression "uVar15 != 0" identifier != number_literal)) )) (compound_statement "{\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }" { (if_statement "if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }" if (parenthesized_expression "((int)uVar15 < 1)" ( (binary_expression "(int)uVar15 < 1" (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }" { (expression_statement "iStack_a4 = 0;" (assignment_expression "iStack_a4 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = local_b0;" (assignment_expression "iVar3 = local_b0" identifier = identifier) ;) (goto_statement "goto code_r0x00030eb9;" goto statement_identifier ;) })) (if_statement "if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }" if (parenthesized_expression "(uVar15 != 1)" ( (binary_expression "uVar15 != 1" identifier != number_literal) )) (compound_statement "{\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }" { (expression_statement "iVar3 = 2;" (assignment_expression "iVar3 = 2" identifier = number_literal) ;) (do_statement "do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);" do (compound_statement "{\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  }" { (expression_statement "iVar16 = FUN_00028410();" (assignment_expression "iVar16 = FUN_00028410()" identifier = (call_expression "FUN_00028410()" identifier (argument_list "()" ( )))) ;) (expression_statement "cStack_64 = '\x10';" (assignment_expression "cStack_64 = '\x10'" identifier = (char_literal "'\x10'" ' escape_sequence ')) ;) (expression_statement "iStack_a4 = FUN_00028330(iVar16,&puStack_68);" (assignment_expression "iStack_a4 = FUN_00028330(iVar16,&puStack_68)" identifier = (call_expression "FUN_00028330(iVar16,&puStack_68)" identifier (argument_list "(iVar16,&puStack_68)" ( identifier , (pointer_expression "&puStack_68" & identifier) )))) ;) (if_statement "if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;" if (parenthesized_expression "((iVar16 == 0) || (iStack_a4 == 0))" ( (binary_expression "(iVar16 == 0) || (iStack_a4 == 0)" (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) || (parenthesized_expression "(iStack_a4 == 0)" ( (binary_expression "iStack_a4 == 0" identifier == number_literal) ))) )) (goto_statement "goto code_r0x00030be0;" goto statement_identifier ;)) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar3 <= (int)uVar15)" ( (binary_expression "iVar3 <= (int)uVar15" identifier <= (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "iVar3 = iStack_a4;" (assignment_expression "iVar3 = iStack_a4" identifier = identifier) ;) (if_statement "if (uStack_c0 != uVar15) goto code_r0x00030e9c;" if (parenthesized_expression "(uStack_c0 != uVar15)" ( (binary_expression "uStack_c0 != uVar15" identifier != identifier) )) (goto_statement "goto code_r0x00030e9c;" goto statement_identifier ;)) (goto_statement "goto code_r0x00030b08;" goto statement_identifier ;) })) (expression_statement "FUN_00025a40();" (call_expression "FUN_00025a40()" identifier (argument_list "()" ( ))) ;) (if_statement "if (*param_6 == 0) goto code_r0x00030d1e;" if (parenthesized_expression "(*param_6 == 0)" ( (binary_expression "*param_6 == 0" (pointer_expression "*param_6" * identifier) == number_literal) )) (goto_statement "goto code_r0x00030d1e;" goto statement_identifier ;)) (goto_statement "goto code_r0x00030bea;" goto statement_identifier ;) })) (labeled_statement "code_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }" statement_identifier : (if_statement "if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }" if (parenthesized_expression "((param_4 & 0x200000) == 0)" ( (binary_expression "(param_4 & 0x200000) == 0" (parenthesized_expression "(param_4 & 0x200000)" ( (binary_expression "param_4 & 0x200000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }" { (if_statement "if ((char)param_3[1] != '\x02') goto code_r0x00030e40;" if (parenthesized_expression "((char)param_3[1] != '\x02')" ( (binary_expression "(char)param_3[1] != '\x02'" (cast_expression "(char)param_3[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_3[1]" identifier [ number_literal ])) != (char_literal "'\x02'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00030e40;" goto statement_identifier ;)) (expression_statement "*param_6 = 9;" (assignment_expression "*param_6 = 9" (pointer_expression "*param_6" * identifier) = number_literal) ;) (goto_statement "goto code_r0x00030e4a;" goto statement_identifier ;) }))) (labeled_statement "code_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;" statement_identifier : (expression_statement "*(undefined4 *)(param_1 + 0x28) = uVar6;" (assignment_expression "*(undefined4 *)(param_1 + 0x28) = uVar6" (pointer_expression "*(undefined4 *)(param_1 + 0x28)" * (cast_expression "(undefined4 *)(param_1 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*param_3 = uVar14;" (assignment_expression "*param_3 = uVar14" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "param_3[1] = uVar13;" (assignment_expression "param_3[1] = uVar13" (subscript_expression "param_3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(char *)(param_3 + 1) = '\x01';" (assignment_expression "*(char *)(param_3 + 1) = '\x01'" (pointer_expression "*(char *)(param_3 + 1)" * (cast_expression "(char *)(param_3 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 1)" ( (binary_expression "param_3 + 1" identifier + number_literal) )))) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "iVar3 = local_b0;" (assignment_expression "iVar3 = local_b0" identifier = identifier) ;) (labeled_statement "code_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;" statement_identifier : (if_statement "if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;" if (parenthesized_expression "((*param_6 == 0) || (iVar3 != 0))" ( (binary_expression "(*param_6 == 0) || (iVar3 != 0)" (parenthesized_expression "(*param_6 == 0)" ( (binary_expression "*param_6 == 0" (pointer_expression "*param_6" * identifier) == number_literal) )) || (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) ))) )) (goto_statement "goto code_r0x00030b08;" goto statement_identifier ;))) }))) (labeled_statement "code_r0x00030e4a:\n          if (local_b0 == 0) goto LAB_00030e58;" statement_identifier : (if_statement "if (local_b0 == 0) goto LAB_00030e58;" if (parenthesized_expression "(local_b0 == 0)" ( (binary_expression "local_b0 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00030e58;" goto statement_identifier ;))) (labeled_statement "code_r0x00030bea:\n          FUN_00025a40();" statement_identifier : (expression_statement "FUN_00025a40();" (call_expression "FUN_00025a40()" identifier (argument_list "()" ( ))) ;)) (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00030965;" goto statement_identifier ;) })) (expression_statement "uVar15 = (uint)(bVar17 == 0x12);" (assignment_expression "uVar15 = (uint)(bVar17 == 0x12)" identifier = (call_expression "(uint)(bVar17 == 0x12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(bVar17 == 0x12)" ( (binary_expression "bVar17 == 0x12" identifier == number_literal) )))) ;) (if_statement "if (bVar17 == 0x13) {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 == 0) goto code_r0x00030d10;\n          if (*(char *)(local_b0 + 0x18) == '\x11') {\n            uStack_c0 = 1;\n            iStack_a4 = 0;\n            goto code_r0x00030c76;\n          }\n          uStack_c0 = 1;\n          cStack_64 = '\n';\n          iStack_a4 = 0;\ncode_r0x00030a18:\n          iVar3 = FUN_00028330(0,&puStack_68);\n          if (iVar3 == 0) {\ncode_r0x00030be0:\n            *param_6 = 0xc;\n            goto code_r0x00030bea;\n          }\n          for (iVar16 = uVar15 + 2; iVar16 <= (int)uStack_c0; iVar16 = iVar16 + 1) {\n            iVar3 = FUN_00028410();\n            cStack_64 = '\x10';\n            iVar4 = FUN_00028330(iVar3,&puStack_68);\n            if ((iVar3 == 0) || (iVar4 == 0)) goto code_r0x00030be0;\n            cStack_64 = '\n';\n            iVar3 = FUN_00028330(0,&puStack_68);\n            if (iVar3 == 0) goto code_r0x00030be0;\n          }\n          if (iStack_a4 != 0) {\n            cStack_64 = '\x10';\n            iVar3 = FUN_00028330(iVar3,&puStack_68);\n            goto code_r0x00030af2;\n          }\n        }\n        else {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 != 0) {\n            if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }\n            uStack_c0 = 0xffffffff;\n            uVar15 = 1;\ncode_r0x00030e9c:\n            iVar3 = FUN_00028410();\n            if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }\n            goto code_r0x00030be0;\n          }\ncode_r0x00030d10:\n          if (*param_6 != 0) goto LAB_00030e58;\ncode_r0x00030d1e:\n          local_b0 = 0;\n          iVar3 = local_b0;\n        }" if (parenthesized_expression "(bVar17 == 0x13)" ( (binary_expression "bVar17 == 0x13" identifier == number_literal) )) (compound_statement "{\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 == 0) goto code_r0x00030d10;\n          if (*(char *)(local_b0 + 0x18) == '\x11') {\n            uStack_c0 = 1;\n            iStack_a4 = 0;\n            goto code_r0x00030c76;\n          }\n          uStack_c0 = 1;\n          cStack_64 = '\n';\n          iStack_a4 = 0;\ncode_r0x00030a18:\n          iVar3 = FUN_00028330(0,&puStack_68);\n          if (iVar3 == 0) {\ncode_r0x00030be0:\n            *param_6 = 0xc;\n            goto code_r0x00030bea;\n          }\n          for (iVar16 = uVar15 + 2; iVar16 <= (int)uStack_c0; iVar16 = iVar16 + 1) {\n            iVar3 = FUN_00028410();\n            cStack_64 = '\x10';\n            iVar4 = FUN_00028330(iVar3,&puStack_68);\n            if ((iVar3 == 0) || (iVar4 == 0)) goto code_r0x00030be0;\n            cStack_64 = '\n';\n            iVar3 = FUN_00028330(0,&puStack_68);\n            if (iVar3 == 0) goto code_r0x00030be0;\n          }\n          if (iStack_a4 != 0) {\n            cStack_64 = '\x10';\n            iVar3 = FUN_00028330(iVar3,&puStack_68);\n            goto code_r0x00030af2;\n          }\n        }" { (expression_statement "iVar3 = FUN_000300e0();" (assignment_expression "iVar3 = FUN_000300e0()" identifier = (call_expression "FUN_000300e0()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;" (assignment_expression "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x28) + iVar3" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) + identifier)) ;) (if_statement "if (local_b0 == 0) goto code_r0x00030d10;" if (parenthesized_expression "(local_b0 == 0)" ( (binary_expression "local_b0 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x00030d10;" goto statement_identifier ;)) (if_statement "if (*(char *)(local_b0 + 0x18) == '\x11') {\n            uStack_c0 = 1;\n            iStack_a4 = 0;\n            goto code_r0x00030c76;\n          }" if (parenthesized_expression "(*(char *)(local_b0 + 0x18) == '\x11')" ( (binary_expression "*(char *)(local_b0 + 0x18) == '\x11'" (pointer_expression "*(char *)(local_b0 + 0x18)" * (cast_expression "(char *)(local_b0 + 0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_b0 + 0x18)" ( (binary_expression "local_b0 + 0x18" identifier + number_literal) )))) == (char_literal "'\x11'" ' escape_sequence ')) )) (compound_statement "{\n            uStack_c0 = 1;\n            iStack_a4 = 0;\n            goto code_r0x00030c76;\n          }" { (expression_statement "uStack_c0 = 1;" (assignment_expression "uStack_c0 = 1" identifier = number_literal) ;) (expression_statement "iStack_a4 = 0;" (assignment_expression "iStack_a4 = 0" identifier = number_literal) ;) (goto_statement "goto code_r0x00030c76;" goto statement_identifier ;) })) (expression_statement "uStack_c0 = 1;" (assignment_expression "uStack_c0 = 1" identifier = number_literal) ;) (expression_statement "cStack_64 = '\n';" (assignment_expression "cStack_64 = '\n'" identifier = (char_literal "'\n'" ' escape_sequence ')) ;) (expression_statement "iStack_a4 = 0;" (assignment_expression "iStack_a4 = 0" identifier = number_literal) ;) (labeled_statement "code_r0x00030a18:\n          iVar3 = FUN_00028330(0,&puStack_68);" statement_identifier : (expression_statement "iVar3 = FUN_00028330(0,&puStack_68);" (assignment_expression "iVar3 = FUN_00028330(0,&puStack_68)" identifier = (call_expression "FUN_00028330(0,&puStack_68)" identifier (argument_list "(0,&puStack_68)" ( number_literal , (pointer_expression "&puStack_68" & identifier) )))) ;)) (if_statement "if (iVar3 == 0) {\ncode_r0x00030be0:\n            *param_6 = 0xc;\n            goto code_r0x00030bea;\n          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\ncode_r0x00030be0:\n            *param_6 = 0xc;\n            goto code_r0x00030bea;\n          }" { (labeled_statement "code_r0x00030be0:\n            *param_6 = 0xc;" statement_identifier : (expression_statement "*param_6 = 0xc;" (assignment_expression "*param_6 = 0xc" (pointer_expression "*param_6" * identifier) = number_literal) ;)) (goto_statement "goto code_r0x00030bea;" goto statement_identifier ;) })) (for_statement "for (iVar16 = uVar15 + 2; iVar16 <= (int)uStack_c0; iVar16 = iVar16 + 1) {\n            iVar3 = FUN_00028410();\n            cStack_64 = '\x10';\n            iVar4 = FUN_00028330(iVar3,&puStack_68);\n            if ((iVar3 == 0) || (iVar4 == 0)) goto code_r0x00030be0;\n            cStack_64 = '\n';\n            iVar3 = FUN_00028330(0,&puStack_68);\n            if (iVar3 == 0) goto code_r0x00030be0;\n          }" for ( (assignment_expression "iVar16 = uVar15 + 2" identifier = (binary_expression "uVar15 + 2" identifier + number_literal)) ; (binary_expression "iVar16 <= (int)uStack_c0" identifier <= (cast_expression "(int)uStack_c0" ( (type_descriptor "int" primitive_type) ) identifier)) ; (assignment_expression "iVar16 = iVar16 + 1" identifier = (binary_expression "iVar16 + 1" identifier + number_literal)) ) (compound_statement "{\n            iVar3 = FUN_00028410();\n            cStack_64 = '\x10';\n            iVar4 = FUN_00028330(iVar3,&puStack_68);\n            if ((iVar3 == 0) || (iVar4 == 0)) goto code_r0x00030be0;\n            cStack_64 = '\n';\n            iVar3 = FUN_00028330(0,&puStack_68);\n            if (iVar3 == 0) goto code_r0x00030be0;\n          }" { (expression_statement "iVar3 = FUN_00028410();" (assignment_expression "iVar3 = FUN_00028410()" identifier = (call_expression "FUN_00028410()" identifier (argument_list "()" ( )))) ;) (expression_statement "cStack_64 = '\x10';" (assignment_expression "cStack_64 = '\x10'" identifier = (char_literal "'\x10'" ' escape_sequence ')) ;) (expression_statement "iVar4 = FUN_00028330(iVar3,&puStack_68);" (assignment_expression "iVar4 = FUN_00028330(iVar3,&puStack_68)" identifier = (call_expression "FUN_00028330(iVar3,&puStack_68)" identifier (argument_list "(iVar3,&puStack_68)" ( identifier , (pointer_expression "&puStack_68" & identifier) )))) ;) (if_statement "if ((iVar3 == 0) || (iVar4 == 0)) goto code_r0x00030be0;" if (parenthesized_expression "((iVar3 == 0) || (iVar4 == 0))" ( (binary_expression "(iVar3 == 0) || (iVar4 == 0)" (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) ))) )) (goto_statement "goto code_r0x00030be0;" goto statement_identifier ;)) (expression_statement "cStack_64 = '\n';" (assignment_expression "cStack_64 = '\n'" identifier = (char_literal "'\n'" ' escape_sequence ')) ;) (expression_statement "iVar3 = FUN_00028330(0,&puStack_68);" (assignment_expression "iVar3 = FUN_00028330(0,&puStack_68)" identifier = (call_expression "FUN_00028330(0,&puStack_68)" identifier (argument_list "(0,&puStack_68)" ( number_literal , (pointer_expression "&puStack_68" & identifier) )))) ;) (if_statement "if (iVar3 == 0) goto code_r0x00030be0;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x00030be0;" goto statement_identifier ;)) })) (if_statement "if (iStack_a4 != 0) {\n            cStack_64 = '\x10';\n            iVar3 = FUN_00028330(iVar3,&puStack_68);\n            goto code_r0x00030af2;\n          }" if (parenthesized_expression "(iStack_a4 != 0)" ( (binary_expression "iStack_a4 != 0" identifier != number_literal) )) (compound_statement "{\n            cStack_64 = '\x10';\n            iVar3 = FUN_00028330(iVar3,&puStack_68);\n            goto code_r0x00030af2;\n          }" { (expression_statement "cStack_64 = '\x10';" (assignment_expression "cStack_64 = '\x10'" identifier = (char_literal "'\x10'" ' escape_sequence ')) ;) (expression_statement "iVar3 = FUN_00028330(iVar3,&puStack_68);" (assignment_expression "iVar3 = FUN_00028330(iVar3,&puStack_68)" identifier = (call_expression "FUN_00028330(iVar3,&puStack_68)" identifier (argument_list "(iVar3,&puStack_68)" ( identifier , (pointer_expression "&puStack_68" & identifier) )))) ;) (goto_statement "goto code_r0x00030af2;" goto statement_identifier ;) })) }) (else_clause "else {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 != 0) {\n            if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }\n            uStack_c0 = 0xffffffff;\n            uVar15 = 1;\ncode_r0x00030e9c:\n            iVar3 = FUN_00028410();\n            if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }\n            goto code_r0x00030be0;\n          }\ncode_r0x00030d10:\n          if (*param_6 != 0) goto LAB_00030e58;\ncode_r0x00030d1e:\n          local_b0 = 0;\n          iVar3 = local_b0;\n        }" else (compound_statement "{\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 != 0) {\n            if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }\n            uStack_c0 = 0xffffffff;\n            uVar15 = 1;\ncode_r0x00030e9c:\n            iVar3 = FUN_00028410();\n            if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }\n            goto code_r0x00030be0;\n          }\ncode_r0x00030d10:\n          if (*param_6 != 0) goto LAB_00030e58;\ncode_r0x00030d1e:\n          local_b0 = 0;\n          iVar3 = local_b0;\n        }" { (expression_statement "iVar3 = FUN_000300e0();" (assignment_expression "iVar3 = FUN_000300e0()" identifier = (call_expression "FUN_000300e0()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;" (assignment_expression "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x28) + iVar3" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) + identifier)) ;) (if_statement "if (local_b0 != 0) {\n            if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }\n            uStack_c0 = 0xffffffff;\n            uVar15 = 1;\ncode_r0x00030e9c:\n            iVar3 = FUN_00028410();\n            if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }\n            goto code_r0x00030be0;\n          }" if (parenthesized_expression "(local_b0 != 0)" ( (binary_expression "local_b0 != 0" identifier != number_literal) )) (compound_statement "{\n            if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }\n            uStack_c0 = 0xffffffff;\n            uVar15 = 1;\ncode_r0x00030e9c:\n            iVar3 = FUN_00028410();\n            if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }\n            goto code_r0x00030be0;\n          }" { (if_statement "if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }" if (parenthesized_expression "(bVar17 != 0x12)" ( (binary_expression "bVar17 != 0x12" identifier != number_literal) )) (compound_statement "{\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }" { (if_statement "if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }" if (parenthesized_expression "(*(char *)(local_b0 + 0x18) == '\x11')" ( (binary_expression "*(char *)(local_b0 + 0x18) == '\x11'" (pointer_expression "*(char *)(local_b0 + 0x18)" * (cast_expression "(char *)(local_b0 + 0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_b0 + 0x18)" ( (binary_expression "local_b0 + 0x18" identifier + number_literal) )))) == (char_literal "'\x11'" ' escape_sequence ')) )) (compound_statement "{\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }" { (expression_statement "uStack_c0 = 0xffffffff;" (assignment_expression "uStack_c0 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) (expression_statement "iStack_a4 = 0;" (assignment_expression "iStack_a4 = 0" identifier = number_literal) ;) (labeled_statement "code_r0x00030c76:\n                FUN_00025a40();" statement_identifier : (expression_statement "FUN_00025a40();" (call_expression "FUN_00025a40()" identifier (argument_list "()" ( ))) ;)) (goto_statement "goto code_r0x00030c8a;" goto statement_identifier ;) })) (expression_statement "uStack_c0 = 0xffffffff;" (assignment_expression "uStack_c0 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) (expression_statement "iStack_a4 = 0;" (assignment_expression "iStack_a4 = 0" identifier = number_literal) ;) (labeled_statement "code_r0x00030a13:\n              cStack_64 = '\v';" statement_identifier : (expression_statement "cStack_64 = '\v';" (assignment_expression "cStack_64 = '\v'" identifier = (char_literal "'\v'" ' escape_sequence ')) ;)) (goto_statement "goto code_r0x00030a18;" goto statement_identifier ;) })) (expression_statement "uStack_c0 = 0xffffffff;" (assignment_expression "uStack_c0 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar15 = 1;" (assignment_expression "uVar15 = 1" identifier = number_literal) ;) (labeled_statement "code_r0x00030e9c:\n            iVar3 = FUN_00028410();" statement_identifier : (expression_statement "iVar3 = FUN_00028410();" (assignment_expression "iVar3 = FUN_00028410()" identifier = (call_expression "FUN_00028410()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }" { (labeled_statement "code_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;" statement_identifier : (if_statement "if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;" if (parenthesized_expression "(*(char *)(iVar3 + 0x18) == '\x11')" ( (binary_expression "*(char *)(iVar3 + 0x18) == '\x11'" (pointer_expression "*(char *)(iVar3 + 0x18)" * (cast_expression "(char *)(iVar3 + 0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x18)" ( (binary_expression "iVar3 + 0x18" identifier + number_literal) )))) == (char_literal "'\x11'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00030c76;" goto statement_identifier ;))) (labeled_statement "code_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }" statement_identifier : (if_statement "if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }" if (parenthesized_expression "(uStack_c0 != 0xffffffff)" ( (binary_expression "uStack_c0 != 0xffffffff" identifier != number_literal) )) (compound_statement "{\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }" { (expression_statement "cStack_64 = '\n';" (assignment_expression "cStack_64 = '\n'" identifier = (char_literal "'\n'" ' escape_sequence ')) ;) (goto_statement "goto code_r0x00030a18;" goto statement_identifier ;) }))) (goto_statement "goto code_r0x00030a13;" goto statement_identifier ;) })) (goto_statement "goto code_r0x00030be0;" goto statement_identifier ;) })) (labeled_statement "code_r0x00030d10:\n          if (*param_6 != 0) goto LAB_00030e58;" statement_identifier : (if_statement "if (*param_6 != 0) goto LAB_00030e58;" if (parenthesized_expression "(*param_6 != 0)" ( (binary_expression "*param_6 != 0" (pointer_expression "*param_6" * identifier) != number_literal) )) (goto_statement "goto LAB_00030e58;" goto statement_identifier ;))) (labeled_statement "code_r0x00030d1e:\n          local_b0 = 0;" statement_identifier : (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" identifier = number_literal) ;)) (expression_statement "iVar3 = local_b0;" (assignment_expression "iVar3 = local_b0" identifier = identifier) ;) }))) (labeled_statement "code_r0x00030b08:\n        local_b0 = iVar3;" statement_identifier : (expression_statement "local_b0 = iVar3;" (assignment_expression "local_b0 = iVar3" identifier = identifier) ;)) (expression_statement "bVar17 = (byte)param_3[1];" (assignment_expression "bVar17 = (byte)param_3[1]" identifier = (cast_expression "(byte)param_3[1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_3[1]" identifier [ number_literal ]))) ;) (expression_statement "uVar14 = (uint)bVar17;" (assignment_expression "uVar14 = (uint)bVar17" identifier = (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) while (parenthesized_expression "(((param_4 & 0x1000000) == 0) || ((bVar17 != 0xb && (bVar17 != 0x17))))" ( (binary_expression "((param_4 & 0x1000000) == 0) || ((bVar17 != 0xb && (bVar17 != 0x17)))" (parenthesized_expression "((param_4 & 0x1000000) == 0)" ( (binary_expression "(param_4 & 0x1000000) == 0" (parenthesized_expression "(param_4 & 0x1000000)" ( (binary_expression "param_4 & 0x1000000" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "((bVar17 != 0xb && (bVar17 != 0x17)))" ( (parenthesized_expression "(bVar17 != 0xb && (bVar17 != 0x17))" ( (binary_expression "bVar17 != 0xb && (bVar17 != 0x17)" (binary_expression "bVar17 != 0xb" identifier != number_literal) && (parenthesized_expression "(bVar17 != 0x17)" ( (binary_expression "bVar17 != 0x17" identifier != number_literal) ))) )) ))) )) ;) (if_statement "if (local_b0 != 0) {\n        FUN_00025a40();\n      }" if (parenthesized_expression "(local_b0 != 0)" ( (binary_expression "local_b0 != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_00025a40();\n      }" { (expression_statement "FUN_00025a40();" (call_expression "FUN_00025a40()" identifier (argument_list "()" ( ))) ;) })) (goto_statement "goto code_r0x00030b48;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case '\v':" case (char_literal "'\v'" ' escape_sequence ') :) (case_statement "case '\x12':" case (char_literal "'\x12'" ' escape_sequence ') :) (case_statement "case '\x13':\ncode_r0x000308ec:\n    if ((param_4 & 0x20) == 0) {\n      if ((param_4 & 0x10) != 0) {\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        local_b0 = FUN_00030880(param_4,param_5,param_6);\n        goto LAB_00030965;\n      }\n      if (cVar2 == '\t') goto code_r0x000313dd;\n      goto code_r0x00030910;\n    }\n    goto code_r0x00030b48;" case (char_literal "'\x13'" ' escape_sequence ') : (labeled_statement "code_r0x000308ec:\n    if ((param_4 & 0x20) == 0) {\n      if ((param_4 & 0x10) != 0) {\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        local_b0 = FUN_00030880(param_4,param_5,param_6);\n        goto LAB_00030965;\n      }\n      if (cVar2 == '\t') goto code_r0x000313dd;\n      goto code_r0x00030910;\n    }" statement_identifier : (if_statement "if ((param_4 & 0x20) == 0) {\n      if ((param_4 & 0x10) != 0) {\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        local_b0 = FUN_00030880(param_4,param_5,param_6);\n        goto LAB_00030965;\n      }\n      if (cVar2 == '\t') goto code_r0x000313dd;\n      goto code_r0x00030910;\n    }" if (parenthesized_expression "((param_4 & 0x20) == 0)" ( (binary_expression "(param_4 & 0x20) == 0" (parenthesized_expression "(param_4 & 0x20)" ( (binary_expression "param_4 & 0x20" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      if ((param_4 & 0x10) != 0) {\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        local_b0 = FUN_00030880(param_4,param_5,param_6);\n        goto LAB_00030965;\n      }\n      if (cVar2 == '\t') goto code_r0x000313dd;\n      goto code_r0x00030910;\n    }" { (if_statement "if ((param_4 & 0x10) != 0) {\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        local_b0 = FUN_00030880(param_4,param_5,param_6);\n        goto LAB_00030965;\n      }" if (parenthesized_expression "((param_4 & 0x10) != 0)" ( (binary_expression "(param_4 & 0x10) != 0" (parenthesized_expression "(param_4 & 0x10)" ( (binary_expression "param_4 & 0x10" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        local_b0 = FUN_00030880(param_4,param_5,param_6);\n        goto LAB_00030965;\n      }" { (expression_statement "iVar3 = FUN_000300e0();" (assignment_expression "iVar3 = FUN_000300e0()" identifier = (call_expression "FUN_000300e0()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;" (assignment_expression "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x28) + iVar3" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) + identifier)) ;) (expression_statement "local_b0 = FUN_00030880(param_4,param_5,param_6);" (assignment_expression "local_b0 = FUN_00030880(param_4,param_5,param_6)" identifier = (call_expression "FUN_00030880(param_4,param_5,param_6)" identifier (argument_list "(param_4,param_5,param_6)" ( identifier , identifier , identifier )))) ;) (goto_statement "goto LAB_00030965;" goto statement_identifier ;) })) (if_statement "if (cVar2 == '\t') goto code_r0x000313dd;" if (parenthesized_expression "(cVar2 == '\t')" ( (binary_expression "cVar2 == '\t'" identifier == (char_literal "'\t'" ' escape_sequence ')) )) (goto_statement "goto code_r0x000313dd;" goto statement_identifier ;)) (goto_statement "goto code_r0x00030910;" goto statement_identifier ;) }))) (goto_statement "goto code_r0x00030b48;" goto statement_identifier ;)) (case_statement "case '\f':\n    uStack_c0 = *param_3;\n    if (((uStack_c0 & 0x30f) != 0) && (bVar17 = *(byte *)(iVar3 + 0x58), (bVar17 & 0x10) == 0)) {\n      *(byte *)(iVar3 + 0x58) = bVar17 | 0x10;\n      if ((bVar17 & 8) == 0) {\n        *(undefined4 *)(iVar3 + 0x60) = 0;\n        *(undefined4 *)(iVar3 + 100) = 0x3ff0000;\n        *(undefined4 *)(iVar3 + 0x68) = 0x87fffffe;\n        *(undefined4 *)(iVar3 + 0x6c) = 0x7fffffe;\n        if ((bVar17 & 4) != 0) {\n          *(undefined4 *)(iVar3 + 0x70) = 0;\n          *(undefined4 *)(iVar3 + 0x74) = 0;\n          *(undefined4 *)(iVar3 + 0x78) = 0;\n          *(undefined4 *)(iVar3 + 0x7c) = 0;\n          uStack_c0 = *param_3;\n          goto code_r0x00031089;\n        }\n        iVar4 = 0x80;\n        iVar16 = 4;\n      }\n      else {\n        iVar4 = 0;\n        iVar16 = 0;\n      }\n      ppuVar8 = __ctype_b_loc();\n      iVar16 = iVar3 + iVar16 * 4;\n      puVar9 = *ppuVar8 + iVar4;\n      do {\n        iVar12 = 0;\n        do {\n          if (((puVar9[iVar12] & 8) != 0) || (iVar4 + iVar12 == 0x5f)) {\n            *(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f);\n          }\n          iVar12 = iVar12 + 1;\n        } while (iVar12 != 0x20);\n        iVar4 = iVar4 + 0x20;\n        iVar16 = iVar16 + 4;\n        puVar9 = puVar9 + 0x20;\n      } while (iVar3 + 0x20 != iVar16);\n    }\ncode_r0x00031089:\n    if ((uStack_c0 - 0x100 & 0xfffffeff) == 0) {\n      if (uStack_c0 == 0x100) {\n        *param_3 = 6;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 9;\n      }\n      else {\n        *param_3 = 5;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 10;\n      }\n      iVar3 = FUN_00028330(0,param_3);\n      cStack_64 = '\n';\n      local_b0 = FUN_00028330(iVar3,&puStack_68);\n      if (uStack_c0 == 0 || iVar3 == 0) break;\n    }\n    else {\n      local_b0 = FUN_00028330(0,param_3);\n    }\n    if (local_b0 != 0) {\n      iVar3 = FUN_000300e0();\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n      goto LAB_00030965;\n    }\n    break;" case (char_literal "'\f'" ' escape_sequence ') : (expression_statement "uStack_c0 = *param_3;" (assignment_expression "uStack_c0 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (if_statement "if (((uStack_c0 & 0x30f) != 0) && (bVar17 = *(byte *)(iVar3 + 0x58), (bVar17 & 0x10) == 0)) {\n      *(byte *)(iVar3 + 0x58) = bVar17 | 0x10;\n      if ((bVar17 & 8) == 0) {\n        *(undefined4 *)(iVar3 + 0x60) = 0;\n        *(undefined4 *)(iVar3 + 100) = 0x3ff0000;\n        *(undefined4 *)(iVar3 + 0x68) = 0x87fffffe;\n        *(undefined4 *)(iVar3 + 0x6c) = 0x7fffffe;\n        if ((bVar17 & 4) != 0) {\n          *(undefined4 *)(iVar3 + 0x70) = 0;\n          *(undefined4 *)(iVar3 + 0x74) = 0;\n          *(undefined4 *)(iVar3 + 0x78) = 0;\n          *(undefined4 *)(iVar3 + 0x7c) = 0;\n          uStack_c0 = *param_3;\n          goto code_r0x00031089;\n        }\n        iVar4 = 0x80;\n        iVar16 = 4;\n      }\n      else {\n        iVar4 = 0;\n        iVar16 = 0;\n      }\n      ppuVar8 = __ctype_b_loc();\n      iVar16 = iVar3 + iVar16 * 4;\n      puVar9 = *ppuVar8 + iVar4;\n      do {\n        iVar12 = 0;\n        do {\n          if (((puVar9[iVar12] & 8) != 0) || (iVar4 + iVar12 == 0x5f)) {\n            *(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f);\n          }\n          iVar12 = iVar12 + 1;\n        } while (iVar12 != 0x20);\n        iVar4 = iVar4 + 0x20;\n        iVar16 = iVar16 + 4;\n        puVar9 = puVar9 + 0x20;\n      } while (iVar3 + 0x20 != iVar16);\n    }" if (parenthesized_expression "(((uStack_c0 & 0x30f) != 0) && (bVar17 = *(byte *)(iVar3 + 0x58), (bVar17 & 0x10) == 0))" ( (binary_expression "((uStack_c0 & 0x30f) != 0) && (bVar17 = *(byte *)(iVar3 + 0x58), (bVar17 & 0x10) == 0)" (parenthesized_expression "((uStack_c0 & 0x30f) != 0)" ( (binary_expression "(uStack_c0 & 0x30f) != 0" (parenthesized_expression "(uStack_c0 & 0x30f)" ( (binary_expression "uStack_c0 & 0x30f" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(bVar17 = *(byte *)(iVar3 + 0x58), (bVar17 & 0x10) == 0)" ( (comma_expression "bVar17 = *(byte *)(iVar3 + 0x58), (bVar17 & 0x10) == 0" (assignment_expression "bVar17 = *(byte *)(iVar3 + 0x58)" identifier = (pointer_expression "*(byte *)(iVar3 + 0x58)" * (cast_expression "(byte *)(iVar3 + 0x58)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x58)" ( (binary_expression "iVar3 + 0x58" identifier + number_literal) ))))) , (binary_expression "(bVar17 & 0x10) == 0" (parenthesized_expression "(bVar17 & 0x10)" ( (binary_expression "bVar17 & 0x10" identifier & number_literal) )) == number_literal)) ))) )) (compound_statement "{\n      *(byte *)(iVar3 + 0x58) = bVar17 | 0x10;\n      if ((bVar17 & 8) == 0) {\n        *(undefined4 *)(iVar3 + 0x60) = 0;\n        *(undefined4 *)(iVar3 + 100) = 0x3ff0000;\n        *(undefined4 *)(iVar3 + 0x68) = 0x87fffffe;\n        *(undefined4 *)(iVar3 + 0x6c) = 0x7fffffe;\n        if ((bVar17 & 4) != 0) {\n          *(undefined4 *)(iVar3 + 0x70) = 0;\n          *(undefined4 *)(iVar3 + 0x74) = 0;\n          *(undefined4 *)(iVar3 + 0x78) = 0;\n          *(undefined4 *)(iVar3 + 0x7c) = 0;\n          uStack_c0 = *param_3;\n          goto code_r0x00031089;\n        }\n        iVar4 = 0x80;\n        iVar16 = 4;\n      }\n      else {\n        iVar4 = 0;\n        iVar16 = 0;\n      }\n      ppuVar8 = __ctype_b_loc();\n      iVar16 = iVar3 + iVar16 * 4;\n      puVar9 = *ppuVar8 + iVar4;\n      do {\n        iVar12 = 0;\n        do {\n          if (((puVar9[iVar12] & 8) != 0) || (iVar4 + iVar12 == 0x5f)) {\n            *(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f);\n          }\n          iVar12 = iVar12 + 1;\n        } while (iVar12 != 0x20);\n        iVar4 = iVar4 + 0x20;\n        iVar16 = iVar16 + 4;\n        puVar9 = puVar9 + 0x20;\n      } while (iVar3 + 0x20 != iVar16);\n    }" { (expression_statement "*(byte *)(iVar3 + 0x58) = bVar17 | 0x10;" (assignment_expression "*(byte *)(iVar3 + 0x58) = bVar17 | 0x10" (pointer_expression "*(byte *)(iVar3 + 0x58)" * (cast_expression "(byte *)(iVar3 + 0x58)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x58)" ( (binary_expression "iVar3 + 0x58" identifier + number_literal) )))) = (binary_expression "bVar17 | 0x10" identifier | number_literal)) ;) (if_statement "if ((bVar17 & 8) == 0) {\n        *(undefined4 *)(iVar3 + 0x60) = 0;\n        *(undefined4 *)(iVar3 + 100) = 0x3ff0000;\n        *(undefined4 *)(iVar3 + 0x68) = 0x87fffffe;\n        *(undefined4 *)(iVar3 + 0x6c) = 0x7fffffe;\n        if ((bVar17 & 4) != 0) {\n          *(undefined4 *)(iVar3 + 0x70) = 0;\n          *(undefined4 *)(iVar3 + 0x74) = 0;\n          *(undefined4 *)(iVar3 + 0x78) = 0;\n          *(undefined4 *)(iVar3 + 0x7c) = 0;\n          uStack_c0 = *param_3;\n          goto code_r0x00031089;\n        }\n        iVar4 = 0x80;\n        iVar16 = 4;\n      }\n      else {\n        iVar4 = 0;\n        iVar16 = 0;\n      }" if (parenthesized_expression "((bVar17 & 8) == 0)" ( (binary_expression "(bVar17 & 8) == 0" (parenthesized_expression "(bVar17 & 8)" ( (binary_expression "bVar17 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        *(undefined4 *)(iVar3 + 0x60) = 0;\n        *(undefined4 *)(iVar3 + 100) = 0x3ff0000;\n        *(undefined4 *)(iVar3 + 0x68) = 0x87fffffe;\n        *(undefined4 *)(iVar3 + 0x6c) = 0x7fffffe;\n        if ((bVar17 & 4) != 0) {\n          *(undefined4 *)(iVar3 + 0x70) = 0;\n          *(undefined4 *)(iVar3 + 0x74) = 0;\n          *(undefined4 *)(iVar3 + 0x78) = 0;\n          *(undefined4 *)(iVar3 + 0x7c) = 0;\n          uStack_c0 = *param_3;\n          goto code_r0x00031089;\n        }\n        iVar4 = 0x80;\n        iVar16 = 4;\n      }" { (expression_statement "*(undefined4 *)(iVar3 + 0x60) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + 0x60) = 0" (pointer_expression "*(undefined4 *)(iVar3 + 0x60)" * (cast_expression "(undefined4 *)(iVar3 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x60)" ( (binary_expression "iVar3 + 0x60" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar3 + 100) = 0x3ff0000;" (assignment_expression "*(undefined4 *)(iVar3 + 100) = 0x3ff0000" (pointer_expression "*(undefined4 *)(iVar3 + 100)" * (cast_expression "(undefined4 *)(iVar3 + 100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 100)" ( (binary_expression "iVar3 + 100" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x68) = 0x87fffffe;" (assignment_expression "*(undefined4 *)(iVar3 + 0x68) = 0x87fffffe" (pointer_expression "*(undefined4 *)(iVar3 + 0x68)" * (cast_expression "(undefined4 *)(iVar3 + 0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x68)" ( (binary_expression "iVar3 + 0x68" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x6c) = 0x7fffffe;" (assignment_expression "*(undefined4 *)(iVar3 + 0x6c) = 0x7fffffe" (pointer_expression "*(undefined4 *)(iVar3 + 0x6c)" * (cast_expression "(undefined4 *)(iVar3 + 0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x6c)" ( (binary_expression "iVar3 + 0x6c" identifier + number_literal) )))) = number_literal) ;) (if_statement "if ((bVar17 & 4) != 0) {\n          *(undefined4 *)(iVar3 + 0x70) = 0;\n          *(undefined4 *)(iVar3 + 0x74) = 0;\n          *(undefined4 *)(iVar3 + 0x78) = 0;\n          *(undefined4 *)(iVar3 + 0x7c) = 0;\n          uStack_c0 = *param_3;\n          goto code_r0x00031089;\n        }" if (parenthesized_expression "((bVar17 & 4) != 0)" ( (binary_expression "(bVar17 & 4) != 0" (parenthesized_expression "(bVar17 & 4)" ( (binary_expression "bVar17 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          *(undefined4 *)(iVar3 + 0x70) = 0;\n          *(undefined4 *)(iVar3 + 0x74) = 0;\n          *(undefined4 *)(iVar3 + 0x78) = 0;\n          *(undefined4 *)(iVar3 + 0x7c) = 0;\n          uStack_c0 = *param_3;\n          goto code_r0x00031089;\n        }" { (expression_statement "*(undefined4 *)(iVar3 + 0x70) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + 0x70) = 0" (pointer_expression "*(undefined4 *)(iVar3 + 0x70)" * (cast_expression "(undefined4 *)(iVar3 + 0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x70)" ( (binary_expression "iVar3 + 0x70" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x74) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + 0x74) = 0" (pointer_expression "*(undefined4 *)(iVar3 + 0x74)" * (cast_expression "(undefined4 *)(iVar3 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x74)" ( (binary_expression "iVar3 + 0x74" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x78) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + 0x78) = 0" (pointer_expression "*(undefined4 *)(iVar3 + 0x78)" * (cast_expression "(undefined4 *)(iVar3 + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x78)" ( (binary_expression "iVar3 + 0x78" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x7c) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + 0x7c) = 0" (pointer_expression "*(undefined4 *)(iVar3 + 0x7c)" * (cast_expression "(undefined4 *)(iVar3 + 0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x7c)" ( (binary_expression "iVar3 + 0x7c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uStack_c0 = *param_3;" (assignment_expression "uStack_c0 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (goto_statement "goto code_r0x00031089;" goto statement_identifier ;) })) (expression_statement "iVar4 = 0x80;" (assignment_expression "iVar4 = 0x80" identifier = number_literal) ;) (expression_statement "iVar16 = 4;" (assignment_expression "iVar16 = 4" identifier = number_literal) ;) }) (else_clause "else {\n        iVar4 = 0;\n        iVar16 = 0;\n      }" else (compound_statement "{\n        iVar4 = 0;\n        iVar16 = 0;\n      }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) }))) (expression_statement "ppuVar8 = __ctype_b_loc();" (assignment_expression "ppuVar8 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar16 = iVar3 + iVar16 * 4;" (assignment_expression "iVar16 = iVar3 + iVar16 * 4" identifier = (binary_expression "iVar3 + iVar16 * 4" identifier + (binary_expression "iVar16 * 4" identifier * number_literal))) ;) (expression_statement "puVar9 = *ppuVar8 + iVar4;" (assignment_expression "puVar9 = *ppuVar8 + iVar4" identifier = (binary_expression "*ppuVar8 + iVar4" (pointer_expression "*ppuVar8" * identifier) + identifier)) ;) (do_statement "do {\n        iVar12 = 0;\n        do {\n          if (((puVar9[iVar12] & 8) != 0) || (iVar4 + iVar12 == 0x5f)) {\n            *(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f);\n          }\n          iVar12 = iVar12 + 1;\n        } while (iVar12 != 0x20);\n        iVar4 = iVar4 + 0x20;\n        iVar16 = iVar16 + 4;\n        puVar9 = puVar9 + 0x20;\n      } while (iVar3 + 0x20 != iVar16);" do (compound_statement "{\n        iVar12 = 0;\n        do {\n          if (((puVar9[iVar12] & 8) != 0) || (iVar4 + iVar12 == 0x5f)) {\n            *(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f);\n          }\n          iVar12 = iVar12 + 1;\n        } while (iVar12 != 0x20);\n        iVar4 = iVar4 + 0x20;\n        iVar16 = iVar16 + 4;\n        puVar9 = puVar9 + 0x20;\n      }" { (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n          if (((puVar9[iVar12] & 8) != 0) || (iVar4 + iVar12 == 0x5f)) {\n            *(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f);\n          }\n          iVar12 = iVar12 + 1;\n        } while (iVar12 != 0x20);" do (compound_statement "{\n          if (((puVar9[iVar12] & 8) != 0) || (iVar4 + iVar12 == 0x5f)) {\n            *(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f);\n          }\n          iVar12 = iVar12 + 1;\n        }" { (if_statement "if (((puVar9[iVar12] & 8) != 0) || (iVar4 + iVar12 == 0x5f)) {\n            *(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f);\n          }" if (parenthesized_expression "(((puVar9[iVar12] & 8) != 0) || (iVar4 + iVar12 == 0x5f))" ( (binary_expression "((puVar9[iVar12] & 8) != 0) || (iVar4 + iVar12 == 0x5f)" (parenthesized_expression "((puVar9[iVar12] & 8) != 0)" ( (binary_expression "(puVar9[iVar12] & 8) != 0" (parenthesized_expression "(puVar9[iVar12] & 8)" ( (binary_expression "puVar9[iVar12] & 8" (subscript_expression "puVar9[iVar12]" identifier [ identifier ]) & number_literal) )) != number_literal) )) || (parenthesized_expression "(iVar4 + iVar12 == 0x5f)" ( (binary_expression "iVar4 + iVar12 == 0x5f" (binary_expression "iVar4 + iVar12" identifier + identifier) == number_literal) ))) )) (compound_statement "{\n            *(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f);\n          }" { (expression_statement "*(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f);" (assignment_expression "*(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f)" (pointer_expression "*(uint *)(iVar16 + 0x60)" * (cast_expression "(uint *)(iVar16 + 0x60)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x60)" ( (binary_expression "iVar16 + 0x60" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f)" (pointer_expression "*(uint *)(iVar16 + 0x60)" * (cast_expression "(uint *)(iVar16 + 0x60)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x60)" ( (binary_expression "iVar16 + 0x60" identifier + number_literal) )))) | (binary_expression "1 << ((byte)iVar12 & 0x1f)" number_literal << (parenthesized_expression "((byte)iVar12 & 0x1f)" ( (binary_expression "(byte)iVar12 & 0x1f" (cast_expression "(byte)iVar12" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))))) ;) })) (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar12 != 0x20)" ( (binary_expression "iVar12 != 0x20" identifier != number_literal) )) ;) (expression_statement "iVar4 = iVar4 + 0x20;" (assignment_expression "iVar4 = iVar4 + 0x20" identifier = (binary_expression "iVar4 + 0x20" identifier + number_literal)) ;) (expression_statement "iVar16 = iVar16 + 4;" (assignment_expression "iVar16 = iVar16 + 4" identifier = (binary_expression "iVar16 + 4" identifier + number_literal)) ;) (expression_statement "puVar9 = puVar9 + 0x20;" (assignment_expression "puVar9 = puVar9 + 0x20" identifier = (binary_expression "puVar9 + 0x20" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar3 + 0x20 != iVar16)" ( (binary_expression "iVar3 + 0x20 != iVar16" (binary_expression "iVar3 + 0x20" identifier + number_literal) != identifier) )) ;) })) (labeled_statement "code_r0x00031089:\n    if ((uStack_c0 - 0x100 & 0xfffffeff) == 0) {\n      if (uStack_c0 == 0x100) {\n        *param_3 = 6;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 9;\n      }\n      else {\n        *param_3 = 5;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 10;\n      }\n      iVar3 = FUN_00028330(0,param_3);\n      cStack_64 = '\n';\n      local_b0 = FUN_00028330(iVar3,&puStack_68);\n      if (uStack_c0 == 0 || iVar3 == 0) break;\n    }\n    else {\n      local_b0 = FUN_00028330(0,param_3);\n    }" statement_identifier : (if_statement "if ((uStack_c0 - 0x100 & 0xfffffeff) == 0) {\n      if (uStack_c0 == 0x100) {\n        *param_3 = 6;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 9;\n      }\n      else {\n        *param_3 = 5;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 10;\n      }\n      iVar3 = FUN_00028330(0,param_3);\n      cStack_64 = '\n';\n      local_b0 = FUN_00028330(iVar3,&puStack_68);\n      if (uStack_c0 == 0 || iVar3 == 0) break;\n    }\n    else {\n      local_b0 = FUN_00028330(0,param_3);\n    }" if (parenthesized_expression "((uStack_c0 - 0x100 & 0xfffffeff) == 0)" ( (binary_expression "(uStack_c0 - 0x100 & 0xfffffeff) == 0" (parenthesized_expression "(uStack_c0 - 0x100 & 0xfffffeff)" ( (binary_expression "uStack_c0 - 0x100 & 0xfffffeff" (binary_expression "uStack_c0 - 0x100" identifier - number_literal) & number_literal) )) == number_literal) )) (compound_statement "{\n      if (uStack_c0 == 0x100) {\n        *param_3 = 6;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 9;\n      }\n      else {\n        *param_3 = 5;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 10;\n      }\n      iVar3 = FUN_00028330(0,param_3);\n      cStack_64 = '\n';\n      local_b0 = FUN_00028330(iVar3,&puStack_68);\n      if (uStack_c0 == 0 || iVar3 == 0) break;\n    }" { (if_statement "if (uStack_c0 == 0x100) {\n        *param_3 = 6;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 9;\n      }\n      else {\n        *param_3 = 5;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 10;\n      }" if (parenthesized_expression "(uStack_c0 == 0x100)" ( (binary_expression "uStack_c0 == 0x100" identifier == number_literal) )) (compound_statement "{\n        *param_3 = 6;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 9;\n      }" { (expression_statement "*param_3 = 6;" (assignment_expression "*param_3 = 6" (pointer_expression "*param_3" * identifier) = number_literal) ;) (expression_statement "uStack_c0 = FUN_00028330(0,param_3);" (assignment_expression "uStack_c0 = FUN_00028330(0,param_3)" identifier = (call_expression "FUN_00028330(0,param_3)" identifier (argument_list "(0,param_3)" ( number_literal , identifier )))) ;) (expression_statement "*param_3 = 9;" (assignment_expression "*param_3 = 9" (pointer_expression "*param_3" * identifier) = number_literal) ;) }) (else_clause "else {\n        *param_3 = 5;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 10;\n      }" else (compound_statement "{\n        *param_3 = 5;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 10;\n      }" { (expression_statement "*param_3 = 5;" (assignment_expression "*param_3 = 5" (pointer_expression "*param_3" * identifier) = number_literal) ;) (expression_statement "uStack_c0 = FUN_00028330(0,param_3);" (assignment_expression "uStack_c0 = FUN_00028330(0,param_3)" identifier = (call_expression "FUN_00028330(0,param_3)" identifier (argument_list "(0,param_3)" ( number_literal , identifier )))) ;) (expression_statement "*param_3 = 10;" (assignment_expression "*param_3 = 10" (pointer_expression "*param_3" * identifier) = number_literal) ;) }))) (expression_statement "iVar3 = FUN_00028330(0,param_3);" (assignment_expression "iVar3 = FUN_00028330(0,param_3)" identifier = (call_expression "FUN_00028330(0,param_3)" identifier (argument_list "(0,param_3)" ( number_literal , identifier )))) ;) (expression_statement "cStack_64 = '\n';" (assignment_expression "cStack_64 = '\n'" identifier = (char_literal "'\n'" ' escape_sequence ')) ;) (expression_statement "local_b0 = FUN_00028330(iVar3,&puStack_68);" (assignment_expression "local_b0 = FUN_00028330(iVar3,&puStack_68)" identifier = (call_expression "FUN_00028330(iVar3,&puStack_68)" identifier (argument_list "(iVar3,&puStack_68)" ( identifier , (pointer_expression "&puStack_68" & identifier) )))) ;) (if_statement "if (uStack_c0 == 0 || iVar3 == 0) break;" if (parenthesized_expression "(uStack_c0 == 0 || iVar3 == 0)" ( (binary_expression "uStack_c0 == 0 || iVar3 == 0" (binary_expression "uStack_c0 == 0" identifier == number_literal) || (binary_expression "iVar3 == 0" identifier == number_literal)) )) (break_statement "break;" break ;)) }) (else_clause "else {\n      local_b0 = FUN_00028330(0,param_3);\n    }" else (compound_statement "{\n      local_b0 = FUN_00028330(0,param_3);\n    }" { (expression_statement "local_b0 = FUN_00028330(0,param_3);" (assignment_expression "local_b0 = FUN_00028330(0,param_3)" identifier = (call_expression "FUN_00028330(0,param_3)" identifier (argument_list "(0,param_3)" ( number_literal , identifier )))) ;) })))) (if_statement "if (local_b0 != 0) {\n      iVar3 = FUN_000300e0();\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n      goto LAB_00030965;\n    }" if (parenthesized_expression "(local_b0 != 0)" ( (binary_expression "local_b0 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar3 = FUN_000300e0();\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n      goto LAB_00030965;\n    }" { (expression_statement "iVar3 = FUN_000300e0();" (assignment_expression "iVar3 = FUN_000300e0()" identifier = (call_expression "FUN_000300e0()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;" (assignment_expression "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x28) + iVar3" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) + identifier)) ;) (goto_statement "goto LAB_00030965;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case '\x14':\n    __ptr = (uint *)calloc(0x20,1);\n    puVar5 = (uint *)calloc(0x28,1);\n    if (__ptr == (uint *)0x0 || puVar5 == (uint *)0x0) {\n      free(__ptr);\n      free(puVar5);\n      *param_6 = 0xc;\n      local_b0 = 0;\n      goto LAB_00030965;\n    }\n    uStack_c0 = FUN_00025ab0();\n    cVar2 = (char)param_3[1];\n    if (cVar2 != '\x02') {\n      bVar1 = false;\n      if (cVar2 != '\x19') {\ncode_r0x000312a6:\n        if (cVar2 == '\x15') {\n          *(char *)(param_3 + 1) = '\x01';\n        }\n        uStack_90 = 0;\n        uVar6 = 1;\ncode_r0x000312e4:\n        iVar16 = FUN_0002fec0(uStack_c0,param_4,uVar6);\n        if (iVar16 == 0) {\n          iVar16 = FUN_00025ab0();\n          if ((char)param_3[1] == '\x02') {\ncode_r0x00031615:\n            *param_6 = 7;\n          }\n          else {\n            if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    \n                    \n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }\n            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n            uVar6 = FUN_00025ab0();\n            if (cStack_64 == '\x02') goto code_r0x00031615;\n            if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }\n            pcStack_6c = acStack_40;\n            puStack_70 = (uint *)0x3;\n            uVar14 = 1;\n            iVar16 = FUN_0002fec0(uVar6,param_4,1);\n            if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }\n          }\n        }\n        else {\n          *param_6 = iVar16;\n        }\n        goto code_r0x000314ef;\n      }\n      *(byte *)(puVar5 + 4) = (byte)puVar5[4] | 1;\n      if ((param_4 & 0x100) != 0) {\n        *__ptr = *__ptr | 0x400;\n      }\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n      uStack_c0 = FUN_00025ab0();\n      cVar2 = (char)param_3[1];\n      if (cVar2 != '\x02') {\n        bVar1 = true;\n        goto code_r0x000312a6;\n      }\n    }\n    *param_6 = 2;\ncode_r0x000314ef:\n    free(__ptr);\n    FUN_00026c30();\n    if (*param_6 == 0) {\n      local_b0 = 0;\n      goto code_r0x0003093e;\n    }\nLAB_00030e58:\n    local_b0 = 0;\n    goto LAB_00030965;" case (char_literal "'\x14'" ' escape_sequence ') : (expression_statement "__ptr = (uint *)calloc(0x20,1);" (assignment_expression "__ptr = (uint *)calloc(0x20,1)" identifier = (cast_expression "(uint *)calloc(0x20,1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "calloc(0x20,1)" identifier (argument_list "(0x20,1)" ( number_literal , number_literal ))))) ;) (expression_statement "puVar5 = (uint *)calloc(0x28,1);" (assignment_expression "puVar5 = (uint *)calloc(0x28,1)" identifier = (cast_expression "(uint *)calloc(0x28,1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "calloc(0x28,1)" identifier (argument_list "(0x28,1)" ( number_literal , number_literal ))))) ;) (if_statement "if (__ptr == (uint *)0x0 || puVar5 == (uint *)0x0) {\n      free(__ptr);\n      free(puVar5);\n      *param_6 = 0xc;\n      local_b0 = 0;\n      goto LAB_00030965;\n    }" if (parenthesized_expression "(__ptr == (uint *)0x0 || puVar5 == (uint *)0x0)" ( (binary_expression "__ptr == (uint *)0x0 || puVar5 == (uint *)0x0" (binary_expression "__ptr == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (binary_expression "puVar5 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n      free(__ptr);\n      free(puVar5);\n      *param_6 = 0xc;\n      local_b0 = 0;\n      goto LAB_00030965;\n    }" { (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "free(puVar5);" (call_expression "free(puVar5)" identifier (argument_list "(puVar5)" ( identifier ))) ;) (expression_statement "*param_6 = 0xc;" (assignment_expression "*param_6 = 0xc" (pointer_expression "*param_6" * identifier) = number_literal) ;) (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00030965;" goto statement_identifier ;) })) (expression_statement "uStack_c0 = FUN_00025ab0();" (assignment_expression "uStack_c0 = FUN_00025ab0()" identifier = (call_expression "FUN_00025ab0()" identifier (argument_list "()" ( )))) ;) (expression_statement "cVar2 = (char)param_3[1];" (assignment_expression "cVar2 = (char)param_3[1]" identifier = (cast_expression "(char)param_3[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_3[1]" identifier [ number_literal ]))) ;) (if_statement "if (cVar2 != '\x02') {\n      bVar1 = false;\n      if (cVar2 != '\x19') {\ncode_r0x000312a6:\n        if (cVar2 == '\x15') {\n          *(char *)(param_3 + 1) = '\x01';\n        }\n        uStack_90 = 0;\n        uVar6 = 1;\ncode_r0x000312e4:\n        iVar16 = FUN_0002fec0(uStack_c0,param_4,uVar6);\n        if (iVar16 == 0) {\n          iVar16 = FUN_00025ab0();\n          if ((char)param_3[1] == '\x02') {\ncode_r0x00031615:\n            *param_6 = 7;\n          }\n          else {\n            if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    \n                    \n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }\n            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n            uVar6 = FUN_00025ab0();\n            if (cStack_64 == '\x02') goto code_r0x00031615;\n            if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }\n            pcStack_6c = acStack_40;\n            puStack_70 = (uint *)0x3;\n            uVar14 = 1;\n            iVar16 = FUN_0002fec0(uVar6,param_4,1);\n            if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }\n          }\n        }\n        else {\n          *param_6 = iVar16;\n        }\n        goto code_r0x000314ef;\n      }\n      *(byte *)(puVar5 + 4) = (byte)puVar5[4] | 1;\n      if ((param_4 & 0x100) != 0) {\n        *__ptr = *__ptr | 0x400;\n      }\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n      uStack_c0 = FUN_00025ab0();\n      cVar2 = (char)param_3[1];\n      if (cVar2 != '\x02') {\n        bVar1 = true;\n        goto code_r0x000312a6;\n      }\n    }" if (parenthesized_expression "(cVar2 != '\x02')" ( (binary_expression "cVar2 != '\x02'" identifier != (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n      bVar1 = false;\n      if (cVar2 != '\x19') {\ncode_r0x000312a6:\n        if (cVar2 == '\x15') {\n          *(char *)(param_3 + 1) = '\x01';\n        }\n        uStack_90 = 0;\n        uVar6 = 1;\ncode_r0x000312e4:\n        iVar16 = FUN_0002fec0(uStack_c0,param_4,uVar6);\n        if (iVar16 == 0) {\n          iVar16 = FUN_00025ab0();\n          if ((char)param_3[1] == '\x02') {\ncode_r0x00031615:\n            *param_6 = 7;\n          }\n          else {\n            if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    \n                    \n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }\n            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n            uVar6 = FUN_00025ab0();\n            if (cStack_64 == '\x02') goto code_r0x00031615;\n            if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }\n            pcStack_6c = acStack_40;\n            puStack_70 = (uint *)0x3;\n            uVar14 = 1;\n            iVar16 = FUN_0002fec0(uVar6,param_4,1);\n            if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }\n          }\n        }\n        else {\n          *param_6 = iVar16;\n        }\n        goto code_r0x000314ef;\n      }\n      *(byte *)(puVar5 + 4) = (byte)puVar5[4] | 1;\n      if ((param_4 & 0x100) != 0) {\n        *__ptr = *__ptr | 0x400;\n      }\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n      uStack_c0 = FUN_00025ab0();\n      cVar2 = (char)param_3[1];\n      if (cVar2 != '\x02') {\n        bVar1 = true;\n        goto code_r0x000312a6;\n      }\n    }" { (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (if_statement "if (cVar2 != '\x19') {\ncode_r0x000312a6:\n        if (cVar2 == '\x15') {\n          *(char *)(param_3 + 1) = '\x01';\n        }\n        uStack_90 = 0;\n        uVar6 = 1;\ncode_r0x000312e4:\n        iVar16 = FUN_0002fec0(uStack_c0,param_4,uVar6);\n        if (iVar16 == 0) {\n          iVar16 = FUN_00025ab0();\n          if ((char)param_3[1] == '\x02') {\ncode_r0x00031615:\n            *param_6 = 7;\n          }\n          else {\n            if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    \n                    \n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }\n            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n            uVar6 = FUN_00025ab0();\n            if (cStack_64 == '\x02') goto code_r0x00031615;\n            if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }\n            pcStack_6c = acStack_40;\n            puStack_70 = (uint *)0x3;\n            uVar14 = 1;\n            iVar16 = FUN_0002fec0(uVar6,param_4,1);\n            if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }\n          }\n        }\n        else {\n          *param_6 = iVar16;\n        }\n        goto code_r0x000314ef;\n      }" if (parenthesized_expression "(cVar2 != '\x19')" ( (binary_expression "cVar2 != '\x19'" identifier != (char_literal "'\x19'" ' escape_sequence ')) )) (compound_statement "{\ncode_r0x000312a6:\n        if (cVar2 == '\x15') {\n          *(char *)(param_3 + 1) = '\x01';\n        }\n        uStack_90 = 0;\n        uVar6 = 1;\ncode_r0x000312e4:\n        iVar16 = FUN_0002fec0(uStack_c0,param_4,uVar6);\n        if (iVar16 == 0) {\n          iVar16 = FUN_00025ab0();\n          if ((char)param_3[1] == '\x02') {\ncode_r0x00031615:\n            *param_6 = 7;\n          }\n          else {\n            if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    \n                    \n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }\n            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n            uVar6 = FUN_00025ab0();\n            if (cStack_64 == '\x02') goto code_r0x00031615;\n            if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }\n            pcStack_6c = acStack_40;\n            puStack_70 = (uint *)0x3;\n            uVar14 = 1;\n            iVar16 = FUN_0002fec0(uVar6,param_4,1);\n            if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }\n          }\n        }\n        else {\n          *param_6 = iVar16;\n        }\n        goto code_r0x000314ef;\n      }" { (labeled_statement "code_r0x000312a6:\n        if (cVar2 == '\x15') {\n          *(char *)(param_3 + 1) = '\x01';\n        }" statement_identifier : (if_statement "if (cVar2 == '\x15') {\n          *(char *)(param_3 + 1) = '\x01';\n        }" if (parenthesized_expression "(cVar2 == '\x15')" ( (binary_expression "cVar2 == '\x15'" identifier == (char_literal "'\x15'" ' escape_sequence ')) )) (compound_statement "{\n          *(char *)(param_3 + 1) = '\x01';\n        }" { (expression_statement "*(char *)(param_3 + 1) = '\x01';" (assignment_expression "*(char *)(param_3 + 1) = '\x01'" (pointer_expression "*(char *)(param_3 + 1)" * (cast_expression "(char *)(param_3 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 1)" ( (binary_expression "param_3 + 1" identifier + number_literal) )))) = (char_literal "'\x01'" ' escape_sequence ')) ;) }))) (expression_statement "uStack_90 = 0;" (assignment_expression "uStack_90 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = 1;" (assignment_expression "uVar6 = 1" identifier = number_literal) ;) (labeled_statement "code_r0x000312e4:\n        iVar16 = FUN_0002fec0(uStack_c0,param_4,uVar6);" statement_identifier : (expression_statement "iVar16 = FUN_0002fec0(uStack_c0,param_4,uVar6);" (assignment_expression "iVar16 = FUN_0002fec0(uStack_c0,param_4,uVar6)" identifier = (call_expression "FUN_0002fec0(uStack_c0,param_4,uVar6)" identifier (argument_list "(uStack_c0,param_4,uVar6)" ( identifier , identifier , identifier )))) ;)) (if_statement "if (iVar16 == 0) {\n          iVar16 = FUN_00025ab0();\n          if ((char)param_3[1] == '\x02') {\ncode_r0x00031615:\n            *param_6 = 7;\n          }\n          else {\n            if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    \n                    \n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }\n            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n            uVar6 = FUN_00025ab0();\n            if (cStack_64 == '\x02') goto code_r0x00031615;\n            if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }\n            pcStack_6c = acStack_40;\n            puStack_70 = (uint *)0x3;\n            uVar14 = 1;\n            iVar16 = FUN_0002fec0(uVar6,param_4,1);\n            if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }\n          }\n        }\n        else {\n          *param_6 = iVar16;\n        }" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar16 = FUN_00025ab0();\n          if ((char)param_3[1] == '\x02') {\ncode_r0x00031615:\n            *param_6 = 7;\n          }\n          else {\n            if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    \n                    \n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }\n            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n            uVar6 = FUN_00025ab0();\n            if (cStack_64 == '\x02') goto code_r0x00031615;\n            if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }\n            pcStack_6c = acStack_40;\n            puStack_70 = (uint *)0x3;\n            uVar14 = 1;\n            iVar16 = FUN_0002fec0(uVar6,param_4,1);\n            if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }\n          }\n        }" { (expression_statement "iVar16 = FUN_00025ab0();" (assignment_expression "iVar16 = FUN_00025ab0()" identifier = (call_expression "FUN_00025ab0()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((char)param_3[1] == '\x02') {\ncode_r0x00031615:\n            *param_6 = 7;\n          }\n          else {\n            if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    \n                    \n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }\n            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n            uVar6 = FUN_00025ab0();\n            if (cStack_64 == '\x02') goto code_r0x00031615;\n            if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }\n            pcStack_6c = acStack_40;\n            puStack_70 = (uint *)0x3;\n            uVar14 = 1;\n            iVar16 = FUN_0002fec0(uVar6,param_4,1);\n            if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }\n          }" if (parenthesized_expression "((char)param_3[1] == '\x02')" ( (binary_expression "(char)param_3[1] == '\x02'" (cast_expression "(char)param_3[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_3[1]" identifier [ number_literal ])) == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\ncode_r0x00031615:\n            *param_6 = 7;\n          }" { (labeled_statement "code_r0x00031615:\n            *param_6 = 7;" statement_identifier : (expression_statement "*param_6 = 7;" (assignment_expression "*param_6 = 7" (pointer_expression "*param_6" * identifier) = number_literal) ;)) }) (else_clause "else {\n            if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    \n                    \n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }\n            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n            uVar6 = FUN_00025ab0();\n            if (cStack_64 == '\x02') goto code_r0x00031615;\n            if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }\n            pcStack_6c = acStack_40;\n            puStack_70 = (uint *)0x3;\n            uVar14 = 1;\n            iVar16 = FUN_0002fec0(uVar6,param_4,1);\n            if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }\n          }" else (compound_statement "{\n            if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    \n                    \n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }\n            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n            uVar6 = FUN_00025ab0();\n            if (cStack_64 == '\x02') goto code_r0x00031615;\n            if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }\n            pcStack_6c = acStack_40;\n            puStack_70 = (uint *)0x3;\n            uVar14 = 1;\n            iVar16 = FUN_0002fec0(uVar6,param_4,1);\n            if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }\n          }" { (if_statement "if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    \n                    \n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }" if (parenthesized_expression "((char)param_3[1] != '\x16')" ( (binary_expression "(char)param_3[1] != '\x16'" (cast_expression "(char)param_3[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_3[1]" identifier [ number_literal ])) != (char_literal "'\x16'" ' escape_sequence ')) )) (compound_statement "{\ncode_r0x0003135b:\n                    \n                    \n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }" { (labeled_statement "code_r0x0003135b:\n                    \n                    \n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();" statement_identifier : (expression_statement "iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();" (assignment_expression "iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))()" identifier = (call_expression "(*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))()" (parenthesized_expression "(*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))" ( (pointer_expression "*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44)" * (cast_expression "(code *)((int)&__DT_PLTGOT + _UNK_0003ad44)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__DT_PLTGOT + _UNK_0003ad44)" ( (binary_expression "(int)&__DT_PLTGOT + _UNK_0003ad44" (cast_expression "(int)&__DT_PLTGOT" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__DT_PLTGOT" & identifier)) + identifier) )))) )) (argument_list "()" ( )))) ;)) (return_statement "return iVar3;" return identifier ;) })) (expression_statement "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;" (assignment_expression "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x28) + iVar16" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) + identifier)) ;) (expression_statement "uVar6 = FUN_00025ab0();" (assignment_expression "uVar6 = FUN_00025ab0()" identifier = (call_expression "FUN_00025ab0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cStack_64 == '\x02') goto code_r0x00031615;" if (parenthesized_expression "(cStack_64 == '\x02')" ( (binary_expression "cStack_64 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00031615;" goto statement_identifier ;)) (if_statement "if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }" if (parenthesized_expression "(cStack_64 == '\x15')" ( (binary_expression "cStack_64 == '\x15'" identifier == (char_literal "'\x15'" ' escape_sequence ')) )) (compound_statement "{\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }" { (expression_statement "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;" (assignment_expression "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x28) - iVar16" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) - identifier)) ;) (expression_statement "*(char *)(param_3 + 1) = '\x01';" (assignment_expression "*(char *)(param_3 + 1) = '\x01'" (pointer_expression "*(char *)(param_3 + 1)" * (cast_expression "(char *)(param_3 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 1)" ( (binary_expression "param_3 + 1" identifier + number_literal) )))) = (char_literal "'\x01'" ' escape_sequence ')) ;) (goto_statement "goto code_r0x0003135b;" goto statement_identifier ;) })) (expression_statement "pcStack_6c = acStack_40;" (assignment_expression "pcStack_6c = acStack_40" identifier = identifier) ;) (expression_statement "puStack_70 = (uint *)0x3;" (assignment_expression "puStack_70 = (uint *)0x3" identifier = (cast_expression "(uint *)0x3" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar14 = 1;" (assignment_expression "uVar14 = 1" identifier = number_literal) ;) (expression_statement "iVar16 = FUN_0002fec0(uVar6,param_4,1);" (assignment_expression "iVar16 = FUN_0002fec0(uVar6,param_4,1)" identifier = (call_expression "FUN_0002fec0(uVar6,param_4,1)" identifier (argument_list "(uVar6,param_4,1)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (compound_statement "{\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }" { (expression_statement "uStack_c0 = FUN_00025ab0();" (assignment_expression "uStack_c0 = FUN_00025ab0()" identifier = (call_expression "FUN_00025ab0()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar7 = puVar5;" (assignment_expression "puVar7 = puVar5" identifier = identifier) ;) (if_statement "if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }" if (parenthesized_expression "(*(int *)(iVar3 + 0x5c) < 2)" ( (binary_expression "*(int *)(iVar3 + 0x5c) < 2" (pointer_expression "*(int *)(iVar3 + 0x5c)" * (cast_expression "(int *)(iVar3 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x5c)" ( (binary_expression "iVar3 + 0x5c" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n                puVar7 = (uint *)0x0;\n              }" { (expression_statement "puVar7 = (uint *)0x0;" (assignment_expression "puVar7 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (if_statement "if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }" if (parenthesized_expression "(((int)puStack_70 - 2U & 0xfffffffd) == 0)" ( (binary_expression "((int)puStack_70 - 2U & 0xfffffffd) == 0" (parenthesized_expression "((int)puStack_70 - 2U & 0xfffffffd)" ( (binary_expression "(int)puStack_70 - 2U & 0xfffffffd" (binary_expression "(int)puStack_70 - 2U" (cast_expression "(int)puStack_70" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) & number_literal) )) == number_literal) )) (compound_statement "{\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }" { (labeled_statement "code_r0x00031b91:\n                *param_6 = 0xb;" statement_identifier : (expression_statement "*param_6 = 0xb;" (assignment_expression "*param_6 = 0xb" (pointer_expression "*param_6" * identifier) = number_literal) ;)) }) (else_clause "else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }" else (compound_statement "{\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }" { (expression_statement "uVar13 = 0xffffffff;" (assignment_expression "uVar13 = 0xffffffff" identifier = number_literal) ;) (expression_statement "pcVar10 = acStack_60;" (assignment_expression "pcVar10 = acStack_60" identifier = identifier) ;) (do_statement "do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');" do (compound_statement "{\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar2 = *pcVar10;" (assignment_expression "cVar2 = *pcVar10" identifier = (pointer_expression "*pcVar10" * identifier)) ;) (expression_statement "pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;" (assignment_expression "pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pcVar10 + (uint)bVar17 * -2 + 1" (binary_expression "pcVar10 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (if_statement "if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }" if (parenthesized_expression "(~uVar13 - 1 < 2)" ( (binary_expression "~uVar13 - 1 < 2" (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" ~ identifier) - number_literal) < number_literal) )) (compound_statement "{\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }" { (if_statement "if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }" if (parenthesized_expression "(puStack_70 == (uint *)0x3)" ( (binary_expression "puStack_70 == (uint *)0x3" identifier == (cast_expression "(uint *)0x3" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }" { (expression_statement "uVar13 = 0xffffffff;" (assignment_expression "uVar13 = 0xffffffff" identifier = number_literal) ;) (expression_statement "pcVar10 = pcStack_6c;" (assignment_expression "pcVar10 = pcStack_6c" identifier = identifier) ;) (do_statement "do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');" do (compound_statement "{\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar2 = *pcVar10;" (assignment_expression "cVar2 = *pcVar10" identifier = (pointer_expression "*pcVar10" * identifier)) ;) (expression_statement "pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;" (assignment_expression "pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pcVar10 + (uint)bVar17 * -2 + 1" (binary_expression "pcVar10 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (if_statement "if (1 < ~uVar13 - 1) goto code_r0x00031b44;" if (parenthesized_expression "(1 < ~uVar13 - 1)" ( (binary_expression "1 < ~uVar13 - 1" number_literal < (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" ~ identifier) - number_literal)) )) (goto_statement "goto code_r0x00031b44;" goto statement_identifier ;)) })) (expression_statement "pcVar10 = (char *)FUN_00026170();" (assignment_expression "pcVar10 = (char *)FUN_00026170()" identifier = (cast_expression "(char *)FUN_00026170()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00026170()" identifier (argument_list "()" ( ))))) ;) (if_statement "if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }" if (parenthesized_expression "((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3))" ( (binary_expression "(puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)" (parenthesized_expression "(puStack_70 == (uint *)0x0)" ( (binary_expression "puStack_70 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)" ( (comma_expression "pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3" (assignment_expression "pcStack_8c = pcStack_6c" identifier = identifier) , (binary_expression "puStack_70 == (uint *)0x3" identifier == (cast_expression "(uint *)0x3" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n                    pcStack_8c = (char *)FUN_00026170();\n                  }" { (expression_statement "pcStack_8c = (char *)FUN_00026170();" (assignment_expression "pcStack_8c = (char *)FUN_00026170()" identifier = (cast_expression "(char *)FUN_00026170()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00026170()" identifier (argument_list "()" ( ))))) ;) })) (if_statement "if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;" if (parenthesized_expression "((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))" ( (binary_expression "(pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff)" (parenthesized_expression "(pcVar10 == (char *)0xffffffff)" ( (binary_expression "pcVar10 == (char *)0xffffffff" identifier == (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pcStack_8c == (char *)0xffffffff)" ( (binary_expression "pcStack_8c == (char *)0xffffffff" identifier == (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (goto_statement "goto code_r0x00031b44;" goto statement_identifier ;)) (if_statement "if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;" if (parenthesized_expression "(((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10))" ( (binary_expression "((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)" (parenthesized_expression "((param_4 & 0x10000) != 0)" ( (binary_expression "(param_4 & 0x10000) != 0" (parenthesized_expression "(param_4 & 0x10000)" ( (binary_expression "param_4 & 0x10000" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(pcStack_8c < pcVar10)" ( (binary_expression "pcStack_8c < pcVar10" identifier < identifier) ))) )) (goto_statement "goto code_r0x00031b91;" goto statement_identifier ;)) (if_statement "if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }" if (parenthesized_expression "(puVar7 != (uint *)0x0)" ( (binary_expression "puVar7 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }" { (expression_statement "uVar13 = puVar7[8];" (assignment_expression "uVar13 = puVar7[8]" identifier = (subscript_expression "puVar7[8]" identifier [ number_literal ])) ;) (expression_statement "__ptr_00 = (void *)puVar7[1];" (assignment_expression "__ptr_00 = (void *)puVar7[1]" identifier = (cast_expression "(void *)puVar7[1]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar7[1]" identifier [ number_literal ]))) ;) (if_statement "if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }" if (parenthesized_expression "(uVar13 == uStack_90)" ( (binary_expression "uVar13 == uStack_90" identifier == identifier) )) (compound_statement "{\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }" { (expression_statement "uStack_90 = uStack_90 * 2 + 1;" (assignment_expression "uStack_90 = uStack_90 * 2 + 1" identifier = (binary_expression "uStack_90 * 2 + 1" (binary_expression "uStack_90 * 2" identifier * number_literal) + number_literal)) ;) (expression_statement "uVar14 = uStack_90;" (assignment_expression "uVar14 = uStack_90" identifier = identifier) ;) (expression_statement "__ptr_00 = realloc(__ptr_00,uStack_90 * 4);" (assignment_expression "__ptr_00 = realloc(__ptr_00,uStack_90 * 4)" identifier = (call_expression "realloc(__ptr_00,uStack_90 * 4)" identifier (argument_list "(__ptr_00,uStack_90 * 4)" ( identifier , (binary_expression "uStack_90 * 4" identifier * number_literal) )))) ;) (expression_statement "__ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);" (assignment_expression "__ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4)" identifier = (call_expression "realloc((void *)puVar7[2],uStack_90 * 4)" identifier (argument_list "((void *)puVar7[2],uStack_90 * 4)" ( (cast_expression "(void *)puVar7[2]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar7[2]" identifier [ number_literal ])) , (binary_expression "uStack_90 * 4" identifier * number_literal) )))) ;) (if_statement "if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }" if (parenthesized_expression "((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0))" ( (binary_expression "(__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)" (parenthesized_expression "(__ptr_00 == (void *)0x0)" ( (binary_expression "__ptr_00 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(__ptr_01 == (void *)0x0)" ( (binary_expression "__ptr_01 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }" { (expression_statement "free(__ptr_00);" (call_expression "free(__ptr_00)" identifier (argument_list "(__ptr_00)" ( identifier ))) ;) (expression_statement "free(__ptr_01);" (call_expression "free(__ptr_01)" identifier (argument_list "(__ptr_01)" ( identifier ))) ;) (expression_statement "*param_6 = 0xc;" (assignment_expression "*param_6 = 0xc" (pointer_expression "*param_6" * identifier) = number_literal) ;) (goto_statement "goto code_r0x000314ef;" goto statement_identifier ;) })) (expression_statement "puVar7[2] = (uint)__ptr_01;" (assignment_expression "puVar7[2] = (uint)__ptr_01" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = (cast_expression "(uint)__ptr_01" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar13 = puVar7[8];" (assignment_expression "uVar13 = puVar7[8]" identifier = (subscript_expression "puVar7[8]" identifier [ number_literal ])) ;) (expression_statement "puVar7[1] = (uint)__ptr_00;" (assignment_expression "puVar7[1] = (uint)__ptr_00" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = (cast_expression "(uint)__ptr_00" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) })) (expression_statement "*(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;" (assignment_expression "*(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10" (pointer_expression "*(char **)((int)__ptr_00 + uVar13 * 4)" * (cast_expression "(char **)((int)__ptr_00 + uVar13 * 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)__ptr_00 + uVar13 * 4)" ( (binary_expression "(int)__ptr_00 + uVar13 * 4" (cast_expression "(int)__ptr_00" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "uVar13 * 4" identifier * number_literal)) )))) = identifier) ;) (expression_statement "puVar7[8] = uVar13 + 1;" (assignment_expression "puVar7[8] = uVar13 + 1" (subscript_expression "puVar7[8]" identifier [ number_literal ]) = (binary_expression "uVar13 + 1" identifier + number_literal)) ;) (expression_statement "*(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;" (assignment_expression "*(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c" (pointer_expression "*(char **)(puVar7[2] + uVar13 * 4)" * (cast_expression "(char **)(puVar7[2] + uVar13 * 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7[2] + uVar13 * 4)" ( (binary_expression "puVar7[2] + uVar13 * 4" (subscript_expression "puVar7[2]" identifier [ number_literal ]) + (binary_expression "uVar13 * 4" identifier * number_literal)) )))) = identifier) ;) })) (expression_statement "pcVar11 = (char *)0x0;" (assignment_expression "pcVar11 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);" do (compound_statement "{\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  }" { (if_statement "if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }" if (parenthesized_expression "((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c))" ( (binary_expression "(pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)" (parenthesized_expression "(pcVar10 <= pcVar11)" ( (binary_expression "pcVar10 <= pcVar11" identifier <= identifier) )) && (parenthesized_expression "(pcVar11 <= pcStack_8c)" ( (binary_expression "pcVar11 <= pcStack_8c" identifier <= identifier) ))) )) (compound_statement "{\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }" { (expression_statement "__ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);" (assignment_expression "__ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f)" (subscript_expression "__ptr[(int)pcVar11 >> 5]" identifier [ (binary_expression "(int)pcVar11 >> 5" (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ]) = (binary_expression "__ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f)" (subscript_expression "__ptr[(int)pcVar11 >> 5]" identifier [ (binary_expression "(int)pcVar11 >> 5" (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ]) | (binary_expression "1 << ((byte)pcVar11 & 0x1f)" number_literal << (parenthesized_expression "((byte)pcVar11 & 0x1f)" ( (binary_expression "(byte)pcVar11 & 0x1f" (cast_expression "(byte)pcVar11" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))))) ;) })) (expression_statement "pcVar11 = pcVar11 + 1;" (assignment_expression "pcVar11 = pcVar11 + 1" identifier = (binary_expression "pcVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pcVar11 != (char *)0x100)" ( (binary_expression "pcVar11 != (char *)0x100" identifier != (cast_expression "(char *)0x100" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "*param_6 = 0;" (assignment_expression "*param_6 = 0" (pointer_expression "*param_6" * identifier) = number_literal) ;) (if_statement "if ((char)param_3[1] == '\x02') goto code_r0x00031615;" if (parenthesized_expression "((char)param_3[1] == '\x02')" ( (binary_expression "(char)param_3[1] == '\x02'" (cast_expression "(char)param_3[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_3[1]" identifier [ number_literal ])) == (char_literal "'\x02'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00031615;" goto statement_identifier ;)) (if_statement "if ((char)param_3[1] != '\x15') goto code_r0x000314d1;" if (parenthesized_expression "((char)param_3[1] != '\x15')" ( (binary_expression "(char)param_3[1] != '\x15'" (cast_expression "(char)param_3[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_3[1]" identifier [ number_literal ])) != (char_literal "'\x15'" ' escape_sequence ')) )) (goto_statement "goto code_r0x000314d1;" goto statement_identifier ;)) (expression_statement "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;" (assignment_expression "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x28) + uStack_c0" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) + identifier)) ;) (if_statement "if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }" { (expression_statement "puVar7 = __ptr;" (assignment_expression "puVar7 = __ptr" identifier = identifier) ;) (do_statement "do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);" do (compound_statement "{\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    }" { (expression_statement "*puVar7 = ~*puVar7;" (assignment_expression "*puVar7 = ~*puVar7" (pointer_expression "*puVar7" * identifier) = (unary_expression "~*puVar7" ~ (pointer_expression "*puVar7" * identifier))) ;) (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" identifier = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(__ptr + 8 != puVar7)" ( (binary_expression "__ptr + 8 != puVar7" (binary_expression "__ptr + 8" identifier + number_literal) != identifier) )) ;) })) (expression_statement "iVar16 = *(int *)(iVar3 + 0x5c);" (assignment_expression "iVar16 = *(int *)(iVar3 + 0x5c)" identifier = (pointer_expression "*(int *)(iVar3 + 0x5c)" * (cast_expression "(int *)(iVar3 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x5c)" ( (binary_expression "iVar3 + 0x5c" identifier + number_literal) ))))) ;) (if_statement "if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }" if (parenthesized_expression "(1 < iVar16)" ( (binary_expression "1 < iVar16" number_literal < identifier) )) (compound_statement "{\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }" { (expression_statement "iVar4 = *(int *)(iVar3 + 0x3c);" (assignment_expression "iVar4 = *(int *)(iVar3 + 0x3c)" identifier = (pointer_expression "*(int *)(iVar3 + 0x3c)" * (cast_expression "(int *)(iVar3 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x3c)" ( (binary_expression "iVar3 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);" do (compound_statement "{\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    }" { (expression_statement "__ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);" (assignment_expression "__ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4)" (subscript_expression "__ptr[iVar12]" identifier [ identifier ]) = (binary_expression "__ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4)" (subscript_expression "__ptr[iVar12]" identifier [ identifier ]) & (pointer_expression "*(uint *)(iVar4 + iVar12 * 4)" * (cast_expression "(uint *)(iVar4 + iVar12 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + iVar12 * 4)" ( (binary_expression "iVar4 + iVar12 * 4" identifier + (binary_expression "iVar12 * 4" identifier * number_literal)) )))))) ;) (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar12 != 8)" ( (binary_expression "iVar12 != 8" identifier != number_literal) )) ;) })) (if_statement "if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }" if (parenthesized_expression "(((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0))))))" ( (binary_expression "((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))" (parenthesized_expression "((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0))" ( (binary_expression "(((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)" (parenthesized_expression "(((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0))" ( (binary_expression "((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)" (parenthesized_expression "((puVar5[5] != 0) || (puVar5[6] != 0))" ( (binary_expression "(puVar5[5] != 0) || (puVar5[6] != 0)" (parenthesized_expression "(puVar5[5] != 0)" ( (binary_expression "puVar5[5] != 0" (subscript_expression "puVar5[5]" identifier [ number_literal ]) != number_literal) )) || (parenthesized_expression "(puVar5[6] != 0)" ( (binary_expression "puVar5[6] != 0" (subscript_expression "puVar5[6]" identifier [ number_literal ]) != number_literal) ))) )) || (parenthesized_expression "(puVar5[7] != 0)" ( (binary_expression "puVar5[7] != 0" (subscript_expression "puVar5[7]" identifier [ number_literal ]) != number_literal) ))) )) || (parenthesized_expression "(puVar5[8] != 0)" ( (binary_expression "puVar5[8] != 0" (subscript_expression "puVar5[8]" identifier [ number_literal ]) != number_literal) ))) )) || (parenthesized_expression "((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))" ( (parenthesized_expression "(1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0))))" ( (binary_expression "1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))" (binary_expression "1 < iVar16" number_literal < identifier) && (parenthesized_expression "((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))" ( (parenthesized_expression "(puVar5[9] != 0 || ((puVar5[4] & 1) != 0))" ( (binary_expression "puVar5[9] != 0 || ((puVar5[4] & 1) != 0)" (binary_expression "puVar5[9] != 0" (subscript_expression "puVar5[9]" identifier [ number_literal ]) != number_literal) || (parenthesized_expression "((puVar5[4] & 1) != 0)" ( (binary_expression "(puVar5[4] & 1) != 0" (parenthesized_expression "(puVar5[4] & 1)" ( (binary_expression "puVar5[4] & 1" (subscript_expression "puVar5[4]" identifier [ number_literal ]) & number_literal) )) != number_literal) ))) )) ))) )) ))) )) (compound_statement "{\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }" { (expression_statement "*(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;" (assignment_expression "*(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2" (pointer_expression "*(byte *)(iVar3 + 0x58)" * (cast_expression "(byte *)(iVar3 + 0x58)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x58)" ( (binary_expression "iVar3 + 0x58" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar3 + 0x58) | 2" (pointer_expression "*(byte *)(iVar3 + 0x58)" * (cast_expression "(byte *)(iVar3 + 0x58)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x58)" ( (binary_expression "iVar3 + 0x58" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);" (assignment_expression "pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6)" identifier = (cast_expression "(char *)CONCAT31(pcStack_6c._1_3_,6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(pcStack_6c._1_3_,6)" identifier (argument_list "(pcStack_6c._1_3_,6)" ( (field_expression "pcStack_6c._1_3_" identifier . field_identifier) , number_literal ))))) ;) (expression_statement "puStack_70 = puVar5;" (assignment_expression "puStack_70 = puVar5" identifier = identifier) ;) (expression_statement "local_b0 = FUN_00028330(0,&puStack_70,uVar14);" (assignment_expression "local_b0 = FUN_00028330(0,&puStack_70,uVar14)" identifier = (call_expression "FUN_00028330(0,&puStack_70,uVar14)" identifier (argument_list "(0,&puStack_70,uVar14)" ( number_literal , (pointer_expression "&puStack_70" & identifier) , identifier )))) ;) (expression_statement "puVar5 = __ptr;" (assignment_expression "puVar5 = __ptr" identifier = identifier) ;) (if_statement "if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }" if (parenthesized_expression "(local_b0 != 0)" ( (binary_expression "local_b0 != 0" identifier != number_literal) )) (compound_statement "{\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }" { (while_statement "while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }" while (parenthesized_expression "(*puVar5 == 0)" ( (binary_expression "*puVar5 == 0" (pointer_expression "*puVar5" * identifier) == number_literal) )) (compound_statement "{\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }" { (expression_statement "puVar5 = puVar5 + 1;" (assignment_expression "puVar5 = puVar5 + 1" identifier = (binary_expression "puVar5 + 1" identifier + number_literal)) ;) (if_statement "if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }" if (parenthesized_expression "(__ptr + 8 == puVar5)" ( (binary_expression "__ptr + 8 == puVar5" (binary_expression "__ptr + 8" identifier + number_literal) == identifier) )) (compound_statement "{\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }" { (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (goto_statement "goto code_r0x0003093e;" goto statement_identifier ;) })) })) (expression_statement "pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);" (assignment_expression "pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3)" identifier = (cast_expression "(char *)CONCAT31(pcStack_6c._1_3_,3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(pcStack_6c._1_3_,3)" identifier (argument_list "(pcStack_6c._1_3_,3)" ( (field_expression "pcStack_6c._1_3_" identifier . field_identifier) , number_literal ))))) ;) (expression_statement "puStack_70 = __ptr;" (assignment_expression "puStack_70 = __ptr" identifier = identifier) ;) (expression_statement "iVar3 = FUN_00028330(0,&puStack_70);" (assignment_expression "iVar3 = FUN_00028330(0,&puStack_70)" identifier = (call_expression "FUN_00028330(0,&puStack_70)" identifier (argument_list "(0,&puStack_70)" ( number_literal , (pointer_expression "&puStack_70" & identifier) )))) ;) (if_statement "if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }" { (expression_statement "cStack_64 = '\n';" (assignment_expression "cStack_64 = '\n'" identifier = (char_literal "'\n'" ' escape_sequence ')) ;) (expression_statement "ppuVar18 = &puStack_68;" (assignment_expression "ppuVar18 = &puStack_68" identifier = (pointer_expression "&puStack_68" & identifier)) ;) (goto_statement "goto code_r0x000319aa;" goto statement_identifier ;) })) })) (labeled_statement "code_r0x000319be:\n                    *param_6 = 0xc;" statement_identifier : (expression_statement "*param_6 = 0xc;" (assignment_expression "*param_6 = 0xc" (pointer_expression "*param_6" * identifier) = number_literal) ;)) (goto_statement "goto code_r0x000314ef;" goto statement_identifier ;) })) (expression_statement "FUN_00026c30();" (call_expression "FUN_00026c30()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);" (assignment_expression "pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3)" identifier = (cast_expression "(char *)CONCAT31(pcStack_6c._1_3_,3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(pcStack_6c._1_3_,3)" identifier (argument_list "(pcStack_6c._1_3_,3)" ( (field_expression "pcStack_6c._1_3_" identifier . field_identifier) , number_literal ))))) ;) (expression_statement "ppuVar18 = &puStack_70;" (assignment_expression "ppuVar18 = &puStack_70" identifier = (pointer_expression "&puStack_70" & identifier)) ;) (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" identifier = number_literal) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "puStack_70 = __ptr;" (assignment_expression "puStack_70 = __ptr" identifier = identifier) ;) (labeled_statement "code_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);" statement_identifier : (expression_statement "local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);" (assignment_expression "local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14)" identifier = (call_expression "FUN_00028330(local_b0,ppuVar18,uVar14)" identifier (argument_list "(local_b0,ppuVar18,uVar14)" ( identifier , identifier , identifier )))) ;)) (if_statement "if (local_b0 == 0) goto code_r0x000319be;" if (parenthesized_expression "(local_b0 == 0)" ( (binary_expression "local_b0 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x000319be;" goto statement_identifier ;)) (goto_statement "goto code_r0x0003093e;" goto statement_identifier ;) })) (labeled_statement "code_r0x00031b44:\n                *param_6 = 3;" statement_identifier : (expression_statement "*param_6 = 3;" (assignment_expression "*param_6 = 3" (pointer_expression "*param_6" * identifier) = number_literal) ;)) }))) }) (else_clause "else {\n              *param_6 = iVar16;\n            }" else (compound_statement "{\n              *param_6 = iVar16;\n            }" { (expression_statement "*param_6 = iVar16;" (assignment_expression "*param_6 = iVar16" (pointer_expression "*param_6" * identifier) = identifier) ;) }))) }))) }) (else_clause "else {\n          *param_6 = iVar16;\n        }" else (compound_statement "{\n          *param_6 = iVar16;\n        }" { (expression_statement "*param_6 = iVar16;" (assignment_expression "*param_6 = iVar16" (pointer_expression "*param_6" * identifier) = identifier) ;) }))) (goto_statement "goto code_r0x000314ef;" goto statement_identifier ;) })) (expression_statement "*(byte *)(puVar5 + 4) = (byte)puVar5[4] | 1;" (assignment_expression "*(byte *)(puVar5 + 4) = (byte)puVar5[4] | 1" (pointer_expression "*(byte *)(puVar5 + 4)" * (cast_expression "(byte *)(puVar5 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 4)" ( (binary_expression "puVar5 + 4" identifier + number_literal) )))) = (binary_expression "(byte)puVar5[4] | 1" (cast_expression "(byte)puVar5[4]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar5[4]" identifier [ number_literal ])) | number_literal)) ;) (if_statement "if ((param_4 & 0x100) != 0) {\n        *__ptr = *__ptr | 0x400;\n      }" if (parenthesized_expression "((param_4 & 0x100) != 0)" ( (binary_expression "(param_4 & 0x100) != 0" (parenthesized_expression "(param_4 & 0x100)" ( (binary_expression "param_4 & 0x100" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        *__ptr = *__ptr | 0x400;\n      }" { (expression_statement "*__ptr = *__ptr | 0x400;" (assignment_expression "*__ptr = *__ptr | 0x400" (pointer_expression "*__ptr" * identifier) = (binary_expression "*__ptr | 0x400" (pointer_expression "*__ptr" * identifier) | number_literal)) ;) })) (expression_statement "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;" (assignment_expression "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 0x28) + uStack_c0" (pointer_expression "*(int *)(param_1 + 0x28)" * (cast_expression "(int *)(param_1 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) + identifier)) ;) (expression_statement "uStack_c0 = FUN_00025ab0();" (assignment_expression "uStack_c0 = FUN_00025ab0()" identifier = (call_expression "FUN_00025ab0()" identifier (argument_list "()" ( )))) ;) (expression_statement "cVar2 = (char)param_3[1];" (assignment_expression "cVar2 = (char)param_3[1]" identifier = (cast_expression "(char)param_3[1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_3[1]" identifier [ number_literal ]))) ;) (if_statement "if (cVar2 != '\x02') {\n        bVar1 = true;\n        goto code_r0x000312a6;\n      }" if (parenthesized_expression "(cVar2 != '\x02')" ( (binary_expression "cVar2 != '\x02'" identifier != (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n        bVar1 = true;\n        goto code_r0x000312a6;\n      }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (goto_statement "goto code_r0x000312a6;" goto statement_identifier ;) })) })) (expression_statement "*param_6 = 2;" (assignment_expression "*param_6 = 2" (pointer_expression "*param_6" * identifier) = number_literal) ;) (labeled_statement "code_r0x000314ef:\n    free(__ptr);" statement_identifier : (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;)) (expression_statement "FUN_00026c30();" (call_expression "FUN_00026c30()" identifier (argument_list "()" ( ))) ;) (if_statement "if (*param_6 == 0) {\n      local_b0 = 0;\n      goto code_r0x0003093e;\n    }" if (parenthesized_expression "(*param_6 == 0)" ( (binary_expression "*param_6 == 0" (pointer_expression "*param_6" * identifier) == number_literal) )) (compound_statement "{\n      local_b0 = 0;\n      goto code_r0x0003093e;\n    }" { (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" identifier = number_literal) ;) (goto_statement "goto code_r0x0003093e;" goto statement_identifier ;) })) (labeled_statement "LAB_00030e58:\n    local_b0 = 0;" statement_identifier : (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" identifier = number_literal) ;)) (goto_statement "goto LAB_00030965;" goto statement_identifier ;)) (case_statement "case '\x17':\n    if ((param_4 & 0x1000000) == 0) goto code_r0x000308ec;\ncode_r0x00030b48:\n    local_b0 = 0;\n    *param_6 = 0xd;\n    goto LAB_00030965;" case (char_literal "'\x17'" ' escape_sequence ') : (if_statement "if ((param_4 & 0x1000000) == 0) goto code_r0x000308ec;" if (parenthesized_expression "((param_4 & 0x1000000) == 0)" ( (binary_expression "(param_4 & 0x1000000) == 0" (parenthesized_expression "(param_4 & 0x1000000)" ( (binary_expression "param_4 & 0x1000000" identifier & number_literal) )) == number_literal) )) (goto_statement "goto code_r0x000308ec;" goto statement_identifier ;)) (labeled_statement "code_r0x00030b48:\n    local_b0 = 0;" statement_identifier : (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" identifier = number_literal) ;)) (expression_statement "*param_6 = 0xd;" (assignment_expression "*param_6 = 0xd" (pointer_expression "*param_6" * identifier) = number_literal) ;) (goto_statement "goto LAB_00030965;" goto statement_identifier ;)) (case_statement "case ' ':" case (char_literal "' '" ' character ') :) (case_statement "case '!':\n    local_b0 = FUN_0002b9b0(&UNK_000370bb,cVar2 == '!',param_6);\n    iVar3 = *param_6;\n    goto joined_r0x00030f59;" case (char_literal "'!'" ' character ') : (expression_statement "local_b0 = FUN_0002b9b0(&UNK_000370bb,cVar2 == '!',param_6);" (assignment_expression "local_b0 = FUN_0002b9b0(&UNK_000370bb,cVar2 == '!',param_6)" identifier = (call_expression "FUN_0002b9b0(&UNK_000370bb,cVar2 == '!',param_6)" identifier (argument_list "(&UNK_000370bb,cVar2 == '!',param_6)" ( (pointer_expression "&UNK_000370bb" & identifier) , (binary_expression "cVar2 == '!'" identifier == (char_literal "'!'" ' character ')) , identifier )))) ;) (expression_statement "iVar3 = *param_6;" (assignment_expression "iVar3 = *param_6" identifier = (pointer_expression "*param_6" * identifier)) ;) (goto_statement "goto joined_r0x00030f59;" goto statement_identifier ;)) (case_statement "case '\"':" case (char_literal "'\"'" ' escape_sequence ') :) (case_statement "case '#':\n    local_b0 = FUN_0002b9b0("",cVar2 == '#',param_6);\n    iVar3 = *param_6;\njoined_r0x00030f59:\n    if ((iVar3 != 0) && (local_b0 == 0)) goto LAB_00030e58;\n    goto code_r0x0003093e;" case (char_literal "'#'" ' character ') : (expression_statement "local_b0 = FUN_0002b9b0("",cVar2 == '#',param_6);" (assignment_expression "local_b0 = FUN_0002b9b0("",cVar2 == '#',param_6)" identifier = (call_expression "FUN_0002b9b0("",cVar2 == '#',param_6)" identifier (argument_list "("",cVar2 == '#',param_6)" ( (string_literal """" " ") , (binary_expression "cVar2 == '#'" identifier == (char_literal "'#'" ' character ')) , identifier )))) ;) (expression_statement "iVar3 = *param_6;" (assignment_expression "iVar3 = *param_6" identifier = (pointer_expression "*param_6" * identifier)) ;) (labeled_statement "joined_r0x00030f59:\n    if ((iVar3 != 0) && (local_b0 == 0)) goto LAB_00030e58;" statement_identifier : (if_statement "if ((iVar3 != 0) && (local_b0 == 0)) goto LAB_00030e58;" if (parenthesized_expression "((iVar3 != 0) && (local_b0 == 0))" ( (binary_expression "(iVar3 != 0) && (local_b0 == 0)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "(local_b0 == 0)" ( (binary_expression "local_b0 == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_00030e58;" goto statement_identifier ;))) (goto_statement "goto code_r0x0003093e;" goto statement_identifier ;)) (case_statement "case '$':\n    local_b0 = 0;\n    *param_6 = 5;\n    goto LAB_00030965;" case (char_literal "'$'" ' character ') : (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" identifier = number_literal) ;) (expression_statement "*param_6 = 5;" (assignment_expression "*param_6 = 5" (pointer_expression "*param_6" * identifier) = number_literal) ;) (goto_statement "goto LAB_00030965;" goto statement_identifier ;)) })) (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" identifier = number_literal) ;) (expression_statement "*param_6 = 0xc;" (assignment_expression "*param_6 = 0xc" (pointer_expression "*param_6" * identifier) = number_literal) ;) (labeled_statement "LAB_00030965:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00036030();\n  }" statement_identifier : (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00036030();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(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                    \n    FUN_00036030();\n  }" { (expression_statement "FUN_00036030();" (call_expression "FUN_00036030()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return local_b0;" return identifier ;) (labeled_statement "code_r0x000314d1:\n  uVar6 = 0;" statement_identifier : (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;)) (goto_statement "goto code_r0x000312e4;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE 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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement default : (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' escape_sequence ') : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (goto_statement goto statement_identifier ;)) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= IDENT) )) || (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) )))) != LIT) ))) )) (goto_statement goto statement_identifier ;)) (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) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) && (binary_expression IDENT != LIT)) )) ;) })) (break_statement break ;)) (case_statement case (char_literal ' escape_sequence ') : (expression_statement (assignment_expression IDENT = (binary_expression LIT << (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) & LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & IDENT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) (goto_statement goto statement_identifier ;) })) (break_statement break ;)) (case_statement case (char_literal ' escape_sequence ') : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_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 (char_literal ' escape_sequence ') : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (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) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))))) ;) }))) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (goto_statement goto statement_identifier ;) })) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' escape_sequence ') : (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (goto_statement goto statement_identifier ;) })))) (case_statement case (char_literal ' escape_sequence ') : (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (char_literal ' escape_sequence ')) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (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) )))) = (binary_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) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression LIT >> (parenthesized_expression ( (binary_expression IDENT & LIT) ))) & LIT) )) == LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) == (char_literal ' character ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) != (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) == (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (goto_statement goto statement_identifier ;) }))) (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) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (goto_statement goto statement_identifier ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (goto_statement goto statement_identifier ;))) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (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) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (pointer_expression & IDENT) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;)) (goto_statement goto statement_identifier ;) })) (for_statement for ( (assignment_expression IDENT = (binary_expression IDENT + LIT)) ; (binary_expression IDENT <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (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) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (goto_statement goto statement_identifier ;) }))) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) ))) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (goto_statement goto statement_identifier ;) })) (break_statement break ;)) (case_statement case (char_literal ' escape_sequence ') :) (case_statement case (char_literal ' escape_sequence ') :) (case_statement case (char_literal ' escape_sequence ') : (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (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) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) }))) (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' escape_sequence ') : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression (parenthesized_expression ( (binary_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) )))) = (binary_expression IDENT | LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 = (pointer_expression * IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) + IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) & LIT) )) != LIT) )) || (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (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) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) != IDENT) )) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) || (binary_expression IDENT == LIT)) )) (break_statement break ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) })))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (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) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT)) ;) (goto_statement goto statement_identifier ;) })) (break_statement break ;)) (case_statement case (char_literal ' escape_sequence ') : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , LIT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) || (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (char_literal ' escape_sequence ')) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) != (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + IDENT) )))) )) (argument_list ( )))) ;)) (return_statement return IDENT ;) })) (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) )))) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (char_literal ' escape_sequence ')) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (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) )))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - LIT) & LIT) )) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (unary_expression ~ IDENT) - LIT) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression (unary_expression ~ IDENT) - LIT)) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT * LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , (binary_expression IDENT * LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) 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) + (binary_expression IDENT * LIT)) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) )))) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) && (parenthesized_expression ( (binary_expression IDENT <= IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ]) = (binary_expression (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (unary_expression ~ (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (binary_expression (subscript_expression IDENT [ IDENT ]) & (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression 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 (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression LIT < IDENT) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) != LIT) ))) )) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , LIT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (pointer_expression & IDENT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (while_statement while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) == IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , LIT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (goto_statement goto statement_identifier ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , LIT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;)) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }))) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) | LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + 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 ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' escape_sequence ') : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (binary_expression IDENT == (char_literal ' character ')) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' escape_sequence ') :) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " ") , (binary_expression IDENT == (char_literal ' character ')) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (goto_statement goto statement_identifier ;))) (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (return_statement return IDENT ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (goto_statement goto statement_identifier ;) })))
(function_definition "int __regparm3\nFUN_00030880(int param_1,int *param_2,uint *param_3,uint param_4,int param_5,int *param_6)\n\n{\n  bool bVar1;\n  char cVar2;\n  int iVar3;\n  int iVar4;\n  uint *__ptr;\n  uint *puVar5;\n  undefined4 uVar6;\n  uint *puVar7;\n  ushort **ppuVar8;\n  ushort *puVar9;\n  char *pcVar10;\n  void *__ptr_00;\n  void *__ptr_01;\n  char *pcVar11;\n  int iVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  int iVar16;\n  int in_GS_OFFSET;\n  byte bVar17;\n  uint **ppuVar18;\n  uint uStack_c0;\n  int local_b0;\n  int iStack_a4;\n  uint uStack_90;\n  char *pcStack_8c;\n  uint *puStack_70;\n  char *pcStack_6c;\n  uint *puStack_68;\n  char cStack_64;\n  char acStack_60 [32];\n  char acStack_40 [32];\n  int local_20;\n  \n  bVar17 = 0;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar3 = *param_2;\n  cVar2 = (char)param_3[1];\n  switch(cVar2) {\n  default:\n    goto LAB_00030e58;\n  case '\x01':\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\n      if (*(int *)(iVar3 + 0x5c) < 2) goto code_r0x0003093e;\n      do {\n        iVar3 = *(int *)(param_1 + 0x28);\n        if (((*(int *)(param_1 + 0x38) <= iVar3) || (iVar3 == *(int *)(param_1 + 0x1c))) ||\n           (*(int *)(*(int *)(param_1 + 8) + iVar3 * 4) != -1)) goto code_r0x0003093e;\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        iVar3 = FUN_00028330(0,param_3);\n        cStack_64 = '\x10';\n        local_b0 = FUN_00028330(iVar3,&puStack_68);\n      } while (iVar3 != 0 && local_b0 != 0);\n    }\n    break;\n  case '\x04':\n    uVar14 = 1 << ((byte)*param_3 & 0x1f);\n    if ((*(uint *)(iVar3 + 0x54) & uVar14) == 0) {\n      local_b0 = 0;\n      *param_6 = 6;\n      goto LAB_00030965;\n    }\n    *(uint *)(iVar3 + 0x50) = *(uint *)(iVar3 + 0x50) | uVar14;\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\n      *(int *)(iVar3 + 0x4c) = *(int *)(iVar3 + 0x4c) + 1;\n      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n      goto code_r0x0003093e;\n    }\n    break;\n  case '\x05':\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 == 0) break;\n    if (1 < *(int *)(iVar3 + 0x5c)) {\n      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n    }\n    goto code_r0x0003093e;\n  case '\b':\n    uVar14 = param_2[6];\n    param_2[6] = uVar14 + 1;\n    iVar16 = FUN_000300e0();\n    *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n    if ((char)param_3[1] == '\t') {\ncode_r0x00030fd0:\n      if (uVar14 < 9) {\n        *(uint *)(iVar3 + 0x54) = *(uint *)(iVar3 + 0x54) | 1 << ((byte)uVar14 & 0x1f);\n      }\n      cStack_64 = '\x11';\n      local_b0 = FUN_00028330(0,&puStack_68);\n      if (local_b0 != 0) {\n        *(uint *)(local_b0 + 0x14) = uVar14;\n        goto code_r0x0003093e;\n      }\n      break;\n    }\n    iVar16 = FUN_00031e70(param_4,param_5 + 1,param_6);\n    if (*param_6 == 0) {\n      if ((char)param_3[1] == '\t') goto code_r0x00030fd0;\n      if (iVar16 != 0) {\n        FUN_00025a40();\n      }\n      *param_6 = 8;\n    }\n    goto LAB_00030e58;\n  case '\t':\ncode_r0x000313dd:\n    if ((param_4 & 0x20000) == 0) {\n      local_b0 = 0;\n      *param_6 = 0x10;\n      goto LAB_00030965;\n    }\n  case '\x18':\ncode_r0x00030910:\n    *(char *)(param_3 + 1) = '\x01';\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\ncode_r0x0003093e:\n      iVar3 = FUN_000300e0();\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n      uVar14 = (uint)(byte)param_3[1];\n      do {\n        bVar17 = (byte)uVar14;\n        if ((0x17 < bVar17) || ((0x8c0800U >> (uVar14 & 0x1f) & 1) == 0)) goto LAB_00030965;\n        uVar6 = *(undefined4 *)(param_1 + 0x28);\n        uVar14 = *param_3;\n        uVar13 = param_3[1];\n        iStack_a4 = local_b0;\n        if (bVar17 == 0x17) {\n          uVar15 = FUN_000307e0();\n          if (uVar15 == 0xffffffff) {\n            if (((char)param_3[1] == '\x01') && ((char)*param_3 == ',')) {\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\ncode_r0x00030e40:\n            *param_6 = 10;\n          }\n          else {\n            if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }\ncode_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }\ncode_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;\n            *param_3 = uVar14;\n            param_3[1] = uVar13;\n            *(char *)(param_3 + 1) = '\x01';\n            iVar3 = local_b0;\ncode_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;\n          }\ncode_r0x00030e4a:\n          if (local_b0 == 0) goto LAB_00030e58;\ncode_r0x00030bea:\n          FUN_00025a40();\n          local_b0 = 0;\n          goto LAB_00030965;\n        }\n        uVar15 = (uint)(bVar17 == 0x12);\n        if (bVar17 == 0x13) {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 == 0) goto code_r0x00030d10;\n          if (*(char *)(local_b0 + 0x18) == '\x11') {\n            uStack_c0 = 1;\n            iStack_a4 = 0;\n            goto code_r0x00030c76;\n          }\n          uStack_c0 = 1;\n          cStack_64 = '\n';\n          iStack_a4 = 0;\ncode_r0x00030a18:\n          iVar3 = FUN_00028330(0,&puStack_68);\n          if (iVar3 == 0) {\ncode_r0x00030be0:\n            *param_6 = 0xc;\n            goto code_r0x00030bea;\n          }\n          for (iVar16 = uVar15 + 2; iVar16 <= (int)uStack_c0; iVar16 = iVar16 + 1) {\n            iVar3 = FUN_00028410();\n            cStack_64 = '\x10';\n            iVar4 = FUN_00028330(iVar3,&puStack_68);\n            if ((iVar3 == 0) || (iVar4 == 0)) goto code_r0x00030be0;\n            cStack_64 = '\n';\n            iVar3 = FUN_00028330(0,&puStack_68);\n            if (iVar3 == 0) goto code_r0x00030be0;\n          }\n          if (iStack_a4 != 0) {\n            cStack_64 = '\x10';\n            iVar3 = FUN_00028330(iVar3,&puStack_68);\n            goto code_r0x00030af2;\n          }\n        }\n        else {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 != 0) {\n            if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }\n            uStack_c0 = 0xffffffff;\n            uVar15 = 1;\ncode_r0x00030e9c:\n            iVar3 = FUN_00028410();\n            if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }\n            goto code_r0x00030be0;\n          }\ncode_r0x00030d10:\n          if (*param_6 != 0) goto LAB_00030e58;\ncode_r0x00030d1e:\n          local_b0 = 0;\n          iVar3 = local_b0;\n        }\ncode_r0x00030b08:\n        local_b0 = iVar3;\n        bVar17 = (byte)param_3[1];\n        uVar14 = (uint)bVar17;\n      } while (((param_4 & 0x1000000) == 0) || ((bVar17 != 0xb && (bVar17 != 0x17))));\n      if (local_b0 != 0) {\n        FUN_00025a40();\n      }\n      goto code_r0x00030b48;\n    }\n    break;\n  case '\v':\n  case '\x12':\n  case '\x13':\ncode_r0x000308ec:\n    if ((param_4 & 0x20) == 0) {\n      if ((param_4 & 0x10) != 0) {\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        local_b0 = FUN_00030880(param_4,param_5,param_6);\n        goto LAB_00030965;\n      }\n      if (cVar2 == '\t') goto code_r0x000313dd;\n      goto code_r0x00030910;\n    }\n    goto code_r0x00030b48;\n  case '\f':\n    uStack_c0 = *param_3;\n    if (((uStack_c0 & 0x30f) != 0) && (bVar17 = *(byte *)(iVar3 + 0x58), (bVar17 & 0x10) == 0)) {\n      *(byte *)(iVar3 + 0x58) = bVar17 | 0x10;\n      if ((bVar17 & 8) == 0) {\n        *(undefined4 *)(iVar3 + 0x60) = 0;\n        *(undefined4 *)(iVar3 + 100) = 0x3ff0000;\n        *(undefined4 *)(iVar3 + 0x68) = 0x87fffffe;\n        *(undefined4 *)(iVar3 + 0x6c) = 0x7fffffe;\n        if ((bVar17 & 4) != 0) {\n          *(undefined4 *)(iVar3 + 0x70) = 0;\n          *(undefined4 *)(iVar3 + 0x74) = 0;\n          *(undefined4 *)(iVar3 + 0x78) = 0;\n          *(undefined4 *)(iVar3 + 0x7c) = 0;\n          uStack_c0 = *param_3;\n          goto code_r0x00031089;\n        }\n        iVar4 = 0x80;\n        iVar16 = 4;\n      }\n      else {\n        iVar4 = 0;\n        iVar16 = 0;\n      }\n      ppuVar8 = __ctype_b_loc();\n      iVar16 = iVar3 + iVar16 * 4;\n      puVar9 = *ppuVar8 + iVar4;\n      do {\n        iVar12 = 0;\n        do {\n          if (((puVar9[iVar12] & 8) != 0) || (iVar4 + iVar12 == 0x5f)) {\n            *(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f);\n          }\n          iVar12 = iVar12 + 1;\n        } while (iVar12 != 0x20);\n        iVar4 = iVar4 + 0x20;\n        iVar16 = iVar16 + 4;\n        puVar9 = puVar9 + 0x20;\n      } while (iVar3 + 0x20 != iVar16);\n    }\ncode_r0x00031089:\n    if ((uStack_c0 - 0x100 & 0xfffffeff) == 0) {\n      if (uStack_c0 == 0x100) {\n        *param_3 = 6;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 9;\n      }\n      else {\n        *param_3 = 5;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 10;\n      }\n      iVar3 = FUN_00028330(0,param_3);\n      cStack_64 = '\n';\n      local_b0 = FUN_00028330(iVar3,&puStack_68);\n      if (uStack_c0 == 0 || iVar3 == 0) break;\n    }\n    else {\n      local_b0 = FUN_00028330(0,param_3);\n    }\n    if (local_b0 != 0) {\n      iVar3 = FUN_000300e0();\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n      goto LAB_00030965;\n    }\n    break;\n  case '\x14':\n    __ptr = (uint *)calloc(0x20,1);\n    puVar5 = (uint *)calloc(0x28,1);\n    if (__ptr == (uint *)0x0 || puVar5 == (uint *)0x0) {\n      free(__ptr);\n      free(puVar5);\n      *param_6 = 0xc;\n      local_b0 = 0;\n      goto LAB_00030965;\n    }\n    uStack_c0 = FUN_00025ab0();\n    cVar2 = (char)param_3[1];\n    if (cVar2 != '\x02') {\n      bVar1 = false;\n      if (cVar2 != '\x19') {\ncode_r0x000312a6:\n        if (cVar2 == '\x15') {\n          *(char *)(param_3 + 1) = '\x01';\n        }\n        uStack_90 = 0;\n        uVar6 = 1;\ncode_r0x000312e4:\n        iVar16 = FUN_0002fec0(uStack_c0,param_4,uVar6);\n        if (iVar16 == 0) {\n          iVar16 = FUN_00025ab0();\n          if ((char)param_3[1] == '\x02') {\ncode_r0x00031615:\n            *param_6 = 7;\n          }\n          else {\n            if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    \n                    \n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }\n            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n            uVar6 = FUN_00025ab0();\n            if (cStack_64 == '\x02') goto code_r0x00031615;\n            if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }\n            pcStack_6c = acStack_40;\n            puStack_70 = (uint *)0x3;\n            uVar14 = 1;\n            iVar16 = FUN_0002fec0(uVar6,param_4,1);\n            if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }\n          }\n        }\n        else {\n          *param_6 = iVar16;\n        }\n        goto code_r0x000314ef;\n      }\n      *(byte *)(puVar5 + 4) = (byte)puVar5[4] | 1;\n      if ((param_4 & 0x100) != 0) {\n        *__ptr = *__ptr | 0x400;\n      }\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n      uStack_c0 = FUN_00025ab0();\n      cVar2 = (char)param_3[1];\n      if (cVar2 != '\x02') {\n        bVar1 = true;\n        goto code_r0x000312a6;\n      }\n    }\n    *param_6 = 2;\ncode_r0x000314ef:\n    free(__ptr);\n    FUN_00026c30();\n    if (*param_6 == 0) {\n      local_b0 = 0;\n      goto code_r0x0003093e;\n    }\nLAB_00030e58:\n    local_b0 = 0;\n    goto LAB_00030965;\n  case '\x17':\n    if ((param_4 & 0x1000000) == 0) goto code_r0x000308ec;\ncode_r0x00030b48:\n    local_b0 = 0;\n    *param_6 = 0xd;\n    goto LAB_00030965;\n  case ' ':\n  case '!':\n    local_b0 = FUN_0002b9b0(&UNK_000370bb,cVar2 == '!',param_6);\n    iVar3 = *param_6;\n    goto joined_r0x00030f59;\n  case '\"':\n  case '#':\n    local_b0 = FUN_0002b9b0("",cVar2 == '#',param_6);\n    iVar3 = *param_6;\njoined_r0x00030f59:\n    if ((iVar3 != 0) && (local_b0 == 0)) goto LAB_00030e58;\n    goto code_r0x0003093e;\n  case '$':\n    local_b0 = 0;\n    *param_6 = 5;\n    goto LAB_00030965;\n  }\n  local_b0 = 0;\n  *param_6 = 0xc;\nLAB_00030965:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00036030();\n  }\n  return local_b0;\ncode_r0x000314d1:\n  uVar6 = 0;\n  goto code_r0x000312e4;\n}" (primitive_type "int") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00030880(int param_1,int *param_2,uint *param_3,uint param_4,int param_5,int *param_6)" (identifier "FUN_00030880") (parameter_list "(int param_1,int *param_2,uint *param_3,uint param_4,int param_5,int *param_6)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "uint *param_3" (type_identifier "uint") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "uint param_4" (type_identifier "uint") (identifier "param_4")) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) (, ",") (parameter_declaration "int *param_6" (primitive_type "int") (pointer_declarator "*param_6" (* "*") (identifier "param_6"))) () ")"))) (compound_statement "{\n  bool bVar1;\n  char cVar2;\n  int iVar3;\n  int iVar4;\n  uint *__ptr;\n  uint *puVar5;\n  undefined4 uVar6;\n  uint *puVar7;\n  ushort **ppuVar8;\n  ushort *puVar9;\n  char *pcVar10;\n  void *__ptr_00;\n  void *__ptr_01;\n  char *pcVar11;\n  int iVar12;\n  uint uVar13;\n  uint uVar14;\n  uint uVar15;\n  int iVar16;\n  int in_GS_OFFSET;\n  byte bVar17;\n  uint **ppuVar18;\n  uint uStack_c0;\n  int local_b0;\n  int iStack_a4;\n  uint uStack_90;\n  char *pcStack_8c;\n  uint *puStack_70;\n  char *pcStack_6c;\n  uint *puStack_68;\n  char cStack_64;\n  char acStack_60 [32];\n  char acStack_40 [32];\n  int local_20;\n  \n  bVar17 = 0;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar3 = *param_2;\n  cVar2 = (char)param_3[1];\n  switch(cVar2) {\n  default:\n    goto LAB_00030e58;\n  case '\x01':\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\n      if (*(int *)(iVar3 + 0x5c) < 2) goto code_r0x0003093e;\n      do {\n        iVar3 = *(int *)(param_1 + 0x28);\n        if (((*(int *)(param_1 + 0x38) <= iVar3) || (iVar3 == *(int *)(param_1 + 0x1c))) ||\n           (*(int *)(*(int *)(param_1 + 8) + iVar3 * 4) != -1)) goto code_r0x0003093e;\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        iVar3 = FUN_00028330(0,param_3);\n        cStack_64 = '\x10';\n        local_b0 = FUN_00028330(iVar3,&puStack_68);\n      } while (iVar3 != 0 && local_b0 != 0);\n    }\n    break;\n  case '\x04':\n    uVar14 = 1 << ((byte)*param_3 & 0x1f);\n    if ((*(uint *)(iVar3 + 0x54) & uVar14) == 0) {\n      local_b0 = 0;\n      *param_6 = 6;\n      goto LAB_00030965;\n    }\n    *(uint *)(iVar3 + 0x50) = *(uint *)(iVar3 + 0x50) | uVar14;\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\n      *(int *)(iVar3 + 0x4c) = *(int *)(iVar3 + 0x4c) + 1;\n      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n      goto code_r0x0003093e;\n    }\n    break;\n  case '\x05':\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 == 0) break;\n    if (1 < *(int *)(iVar3 + 0x5c)) {\n      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n    }\n    goto code_r0x0003093e;\n  case '\b':\n    uVar14 = param_2[6];\n    param_2[6] = uVar14 + 1;\n    iVar16 = FUN_000300e0();\n    *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n    if ((char)param_3[1] == '\t') {\ncode_r0x00030fd0:\n      if (uVar14 < 9) {\n        *(uint *)(iVar3 + 0x54) = *(uint *)(iVar3 + 0x54) | 1 << ((byte)uVar14 & 0x1f);\n      }\n      cStack_64 = '\x11';\n      local_b0 = FUN_00028330(0,&puStack_68);\n      if (local_b0 != 0) {\n        *(uint *)(local_b0 + 0x14) = uVar14;\n        goto code_r0x0003093e;\n      }\n      break;\n    }\n    iVar16 = FUN_00031e70(param_4,param_5 + 1,param_6);\n    if (*param_6 == 0) {\n      if ((char)param_3[1] == '\t') goto code_r0x00030fd0;\n      if (iVar16 != 0) {\n        FUN_00025a40();\n      }\n      *param_6 = 8;\n    }\n    goto LAB_00030e58;\n  case '\t':\ncode_r0x000313dd:\n    if ((param_4 & 0x20000) == 0) {\n      local_b0 = 0;\n      *param_6 = 0x10;\n      goto LAB_00030965;\n    }\n  case '\x18':\ncode_r0x00030910:\n    *(char *)(param_3 + 1) = '\x01';\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\ncode_r0x0003093e:\n      iVar3 = FUN_000300e0();\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n      uVar14 = (uint)(byte)param_3[1];\n      do {\n        bVar17 = (byte)uVar14;\n        if ((0x17 < bVar17) || ((0x8c0800U >> (uVar14 & 0x1f) & 1) == 0)) goto LAB_00030965;\n        uVar6 = *(undefined4 *)(param_1 + 0x28);\n        uVar14 = *param_3;\n        uVar13 = param_3[1];\n        iStack_a4 = local_b0;\n        if (bVar17 == 0x17) {\n          uVar15 = FUN_000307e0();\n          if (uVar15 == 0xffffffff) {\n            if (((char)param_3[1] == '\x01') && ((char)*param_3 == ',')) {\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\ncode_r0x00030e40:\n            *param_6 = 10;\n          }\n          else {\n            if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }\ncode_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }\ncode_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;\n            *param_3 = uVar14;\n            param_3[1] = uVar13;\n            *(char *)(param_3 + 1) = '\x01';\n            iVar3 = local_b0;\ncode_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;\n          }\ncode_r0x00030e4a:\n          if (local_b0 == 0) goto LAB_00030e58;\ncode_r0x00030bea:\n          FUN_00025a40();\n          local_b0 = 0;\n          goto LAB_00030965;\n        }\n        uVar15 = (uint)(bVar17 == 0x12);\n        if (bVar17 == 0x13) {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 == 0) goto code_r0x00030d10;\n          if (*(char *)(local_b0 + 0x18) == '\x11') {\n            uStack_c0 = 1;\n            iStack_a4 = 0;\n            goto code_r0x00030c76;\n          }\n          uStack_c0 = 1;\n          cStack_64 = '\n';\n          iStack_a4 = 0;\ncode_r0x00030a18:\n          iVar3 = FUN_00028330(0,&puStack_68);\n          if (iVar3 == 0) {\ncode_r0x00030be0:\n            *param_6 = 0xc;\n            goto code_r0x00030bea;\n          }\n          for (iVar16 = uVar15 + 2; iVar16 <= (int)uStack_c0; iVar16 = iVar16 + 1) {\n            iVar3 = FUN_00028410();\n            cStack_64 = '\x10';\n            iVar4 = FUN_00028330(iVar3,&puStack_68);\n            if ((iVar3 == 0) || (iVar4 == 0)) goto code_r0x00030be0;\n            cStack_64 = '\n';\n            iVar3 = FUN_00028330(0,&puStack_68);\n            if (iVar3 == 0) goto code_r0x00030be0;\n          }\n          if (iStack_a4 != 0) {\n            cStack_64 = '\x10';\n            iVar3 = FUN_00028330(iVar3,&puStack_68);\n            goto code_r0x00030af2;\n          }\n        }\n        else {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 != 0) {\n            if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }\n            uStack_c0 = 0xffffffff;\n            uVar15 = 1;\ncode_r0x00030e9c:\n            iVar3 = FUN_00028410();\n            if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }\n            goto code_r0x00030be0;\n          }\ncode_r0x00030d10:\n          if (*param_6 != 0) goto LAB_00030e58;\ncode_r0x00030d1e:\n          local_b0 = 0;\n          iVar3 = local_b0;\n        }\ncode_r0x00030b08:\n        local_b0 = iVar3;\n        bVar17 = (byte)param_3[1];\n        uVar14 = (uint)bVar17;\n      } while (((param_4 & 0x1000000) == 0) || ((bVar17 != 0xb && (bVar17 != 0x17))));\n      if (local_b0 != 0) {\n        FUN_00025a40();\n      }\n      goto code_r0x00030b48;\n    }\n    break;\n  case '\v':\n  case '\x12':\n  case '\x13':\ncode_r0x000308ec:\n    if ((param_4 & 0x20) == 0) {\n      if ((param_4 & 0x10) != 0) {\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        local_b0 = FUN_00030880(param_4,param_5,param_6);\n        goto LAB_00030965;\n      }\n      if (cVar2 == '\t') goto code_r0x000313dd;\n      goto code_r0x00030910;\n    }\n    goto code_r0x00030b48;\n  case '\f':\n    uStack_c0 = *param_3;\n    if (((uStack_c0 & 0x30f) != 0) && (bVar17 = *(byte *)(iVar3 + 0x58), (bVar17 & 0x10) == 0)) {\n      *(byte *)(iVar3 + 0x58) = bVar17 | 0x10;\n      if ((bVar17 & 8) == 0) {\n        *(undefined4 *)(iVar3 + 0x60) = 0;\n        *(undefined4 *)(iVar3 + 100) = 0x3ff0000;\n        *(undefined4 *)(iVar3 + 0x68) = 0x87fffffe;\n        *(undefined4 *)(iVar3 + 0x6c) = 0x7fffffe;\n        if ((bVar17 & 4) != 0) {\n          *(undefined4 *)(iVar3 + 0x70) = 0;\n          *(undefined4 *)(iVar3 + 0x74) = 0;\n          *(undefined4 *)(iVar3 + 0x78) = 0;\n          *(undefined4 *)(iVar3 + 0x7c) = 0;\n          uStack_c0 = *param_3;\n          goto code_r0x00031089;\n        }\n        iVar4 = 0x80;\n        iVar16 = 4;\n      }\n      else {\n        iVar4 = 0;\n        iVar16 = 0;\n      }\n      ppuVar8 = __ctype_b_loc();\n      iVar16 = iVar3 + iVar16 * 4;\n      puVar9 = *ppuVar8 + iVar4;\n      do {\n        iVar12 = 0;\n        do {\n          if (((puVar9[iVar12] & 8) != 0) || (iVar4 + iVar12 == 0x5f)) {\n            *(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f);\n          }\n          iVar12 = iVar12 + 1;\n        } while (iVar12 != 0x20);\n        iVar4 = iVar4 + 0x20;\n        iVar16 = iVar16 + 4;\n        puVar9 = puVar9 + 0x20;\n      } while (iVar3 + 0x20 != iVar16);\n    }\ncode_r0x00031089:\n    if ((uStack_c0 - 0x100 & 0xfffffeff) == 0) {\n      if (uStack_c0 == 0x100) {\n        *param_3 = 6;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 9;\n      }\n      else {\n        *param_3 = 5;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 10;\n      }\n      iVar3 = FUN_00028330(0,param_3);\n      cStack_64 = '\n';\n      local_b0 = FUN_00028330(iVar3,&puStack_68);\n      if (uStack_c0 == 0 || iVar3 == 0) break;\n    }\n    else {\n      local_b0 = FUN_00028330(0,param_3);\n    }\n    if (local_b0 != 0) {\n      iVar3 = FUN_000300e0();\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n      goto LAB_00030965;\n    }\n    break;\n  case '\x14':\n    __ptr = (uint *)calloc(0x20,1);\n    puVar5 = (uint *)calloc(0x28,1);\n    if (__ptr == (uint *)0x0 || puVar5 == (uint *)0x0) {\n      free(__ptr);\n      free(puVar5);\n      *param_6 = 0xc;\n      local_b0 = 0;\n      goto LAB_00030965;\n    }\n    uStack_c0 = FUN_00025ab0();\n    cVar2 = (char)param_3[1];\n    if (cVar2 != '\x02') {\n      bVar1 = false;\n      if (cVar2 != '\x19') {\ncode_r0x000312a6:\n        if (cVar2 == '\x15') {\n          *(char *)(param_3 + 1) = '\x01';\n        }\n        uStack_90 = 0;\n        uVar6 = 1;\ncode_r0x000312e4:\n        iVar16 = FUN_0002fec0(uStack_c0,param_4,uVar6);\n        if (iVar16 == 0) {\n          iVar16 = FUN_00025ab0();\n          if ((char)param_3[1] == '\x02') {\ncode_r0x00031615:\n            *param_6 = 7;\n          }\n          else {\n            if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    \n                    \n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }\n            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n            uVar6 = FUN_00025ab0();\n            if (cStack_64 == '\x02') goto code_r0x00031615;\n            if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }\n            pcStack_6c = acStack_40;\n            puStack_70 = (uint *)0x3;\n            uVar14 = 1;\n            iVar16 = FUN_0002fec0(uVar6,param_4,1);\n            if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }\n          }\n        }\n        else {\n          *param_6 = iVar16;\n        }\n        goto code_r0x000314ef;\n      }\n      *(byte *)(puVar5 + 4) = (byte)puVar5[4] | 1;\n      if ((param_4 & 0x100) != 0) {\n        *__ptr = *__ptr | 0x400;\n      }\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n      uStack_c0 = FUN_00025ab0();\n      cVar2 = (char)param_3[1];\n      if (cVar2 != '\x02') {\n        bVar1 = true;\n        goto code_r0x000312a6;\n      }\n    }\n    *param_6 = 2;\ncode_r0x000314ef:\n    free(__ptr);\n    FUN_00026c30();\n    if (*param_6 == 0) {\n      local_b0 = 0;\n      goto code_r0x0003093e;\n    }\nLAB_00030e58:\n    local_b0 = 0;\n    goto LAB_00030965;\n  case '\x17':\n    if ((param_4 & 0x1000000) == 0) goto code_r0x000308ec;\ncode_r0x00030b48:\n    local_b0 = 0;\n    *param_6 = 0xd;\n    goto LAB_00030965;\n  case ' ':\n  case '!':\n    local_b0 = FUN_0002b9b0(&UNK_000370bb,cVar2 == '!',param_6);\n    iVar3 = *param_6;\n    goto joined_r0x00030f59;\n  case '\"':\n  case '#':\n    local_b0 = FUN_0002b9b0("",cVar2 == '#',param_6);\n    iVar3 = *param_6;\njoined_r0x00030f59:\n    if ((iVar3 != 0) && (local_b0 == 0)) goto LAB_00030e58;\n    goto code_r0x0003093e;\n  case '$':\n    local_b0 = 0;\n    *param_6 = 5;\n    goto LAB_00030965;\n  }\n  local_b0 = 0;\n  *param_6 = 0xc;\nLAB_00030965:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00036030();\n  }\n  return local_b0;\ncode_r0x000314d1:\n  uVar6 = 0;\n  goto code_r0x000312e4;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "uint *__ptr;" (type_identifier "uint") (pointer_declarator "*__ptr" (* "*") (identifier "__ptr")) (; ";")) (declaration "uint *puVar5;" (type_identifier "uint") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "uint *puVar7;" (type_identifier "uint") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "ushort **ppuVar8;" (type_identifier "ushort") (pointer_declarator "**ppuVar8" (* "*") (pointer_declarator "*ppuVar8" (* "*") (identifier "ppuVar8"))) (; ";")) (declaration "ushort *puVar9;" (type_identifier "ushort") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "char *pcVar10;" (primitive_type "char") (pointer_declarator "*pcVar10" (* "*") (identifier "pcVar10")) (; ";")) (declaration "void *__ptr_00;" (primitive_type "void") (pointer_declarator "*__ptr_00" (* "*") (identifier "__ptr_00")) (; ";")) (declaration "void *__ptr_01;" (primitive_type "void") (pointer_declarator "*__ptr_01" (* "*") (identifier "__ptr_01")) (; ";")) (declaration "char *pcVar11;" (primitive_type "char") (pointer_declarator "*pcVar11" (* "*") (identifier "pcVar11")) (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "uint uVar13;" (type_identifier "uint") (identifier "uVar13") (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "uint uVar15;" (type_identifier "uint") (identifier "uVar15") (; ";")) (declaration "int iVar16;" (primitive_type "int") (identifier "iVar16") (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "byte bVar17;" (type_identifier "byte") (identifier "bVar17") (; ";")) (declaration "uint **ppuVar18;" (type_identifier "uint") (pointer_declarator "**ppuVar18" (* "*") (pointer_declarator "*ppuVar18" (* "*") (identifier "ppuVar18"))) (; ";")) (declaration "uint uStack_c0;" (type_identifier "uint") (identifier "uStack_c0") (; ";")) (declaration "int local_b0;" (primitive_type "int") (identifier "local_b0") (; ";")) (declaration "int iStack_a4;" (primitive_type "int") (identifier "iStack_a4") (; ";")) (declaration "uint uStack_90;" (type_identifier "uint") (identifier "uStack_90") (; ";")) (declaration "char *pcStack_8c;" (primitive_type "char") (pointer_declarator "*pcStack_8c" (* "*") (identifier "pcStack_8c")) (; ";")) (declaration "uint *puStack_70;" (type_identifier "uint") (pointer_declarator "*puStack_70" (* "*") (identifier "puStack_70")) (; ";")) (declaration "char *pcStack_6c;" (primitive_type "char") (pointer_declarator "*pcStack_6c" (* "*") (identifier "pcStack_6c")) (; ";")) (declaration "uint *puStack_68;" (type_identifier "uint") (pointer_declarator "*puStack_68" (* "*") (identifier "puStack_68")) (; ";")) (declaration "char cStack_64;" (primitive_type "char") (identifier "cStack_64") (; ";")) (declaration "char acStack_60 [32];" (primitive_type "char") (array_declarator "acStack_60 [32]" (identifier "acStack_60") ([ "[") (number_literal "32") (] "]")) (; ";")) (declaration "char acStack_40 [32];" (primitive_type "char") (array_declarator "acStack_40 [32]" (identifier "acStack_40") ([ "[") (number_literal "32") (] "]")) (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" (identifier "bVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (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")) () ")"))))) (; ";")) (expression_statement "iVar3 = *param_2;" (assignment_expression "iVar3 = *param_2" (identifier "iVar3") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "cVar2 = (char)param_3[1];" (assignment_expression "cVar2 = (char)param_3[1]" (identifier "cVar2") (= "=") (cast_expression "(char)param_3[1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")))) (; ";")) (switch_statement "switch(cVar2) {\n  default:\n    goto LAB_00030e58;\n  case '\x01':\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\n      if (*(int *)(iVar3 + 0x5c) < 2) goto code_r0x0003093e;\n      do {\n        iVar3 = *(int *)(param_1 + 0x28);\n        if (((*(int *)(param_1 + 0x38) <= iVar3) || (iVar3 == *(int *)(param_1 + 0x1c))) ||\n           (*(int *)(*(int *)(param_1 + 8) + iVar3 * 4) != -1)) goto code_r0x0003093e;\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        iVar3 = FUN_00028330(0,param_3);\n        cStack_64 = '\x10';\n        local_b0 = FUN_00028330(iVar3,&puStack_68);\n      } while (iVar3 != 0 && local_b0 != 0);\n    }\n    break;\n  case '\x04':\n    uVar14 = 1 << ((byte)*param_3 & 0x1f);\n    if ((*(uint *)(iVar3 + 0x54) & uVar14) == 0) {\n      local_b0 = 0;\n      *param_6 = 6;\n      goto LAB_00030965;\n    }\n    *(uint *)(iVar3 + 0x50) = *(uint *)(iVar3 + 0x50) | uVar14;\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\n      *(int *)(iVar3 + 0x4c) = *(int *)(iVar3 + 0x4c) + 1;\n      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n      goto code_r0x0003093e;\n    }\n    break;\n  case '\x05':\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 == 0) break;\n    if (1 < *(int *)(iVar3 + 0x5c)) {\n      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n    }\n    goto code_r0x0003093e;\n  case '\b':\n    uVar14 = param_2[6];\n    param_2[6] = uVar14 + 1;\n    iVar16 = FUN_000300e0();\n    *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n    if ((char)param_3[1] == '\t') {\ncode_r0x00030fd0:\n      if (uVar14 < 9) {\n        *(uint *)(iVar3 + 0x54) = *(uint *)(iVar3 + 0x54) | 1 << ((byte)uVar14 & 0x1f);\n      }\n      cStack_64 = '\x11';\n      local_b0 = FUN_00028330(0,&puStack_68);\n      if (local_b0 != 0) {\n        *(uint *)(local_b0 + 0x14) = uVar14;\n        goto code_r0x0003093e;\n      }\n      break;\n    }\n    iVar16 = FUN_00031e70(param_4,param_5 + 1,param_6);\n    if (*param_6 == 0) {\n      if ((char)param_3[1] == '\t') goto code_r0x00030fd0;\n      if (iVar16 != 0) {\n        FUN_00025a40();\n      }\n      *param_6 = 8;\n    }\n    goto LAB_00030e58;\n  case '\t':\ncode_r0x000313dd:\n    if ((param_4 & 0x20000) == 0) {\n      local_b0 = 0;\n      *param_6 = 0x10;\n      goto LAB_00030965;\n    }\n  case '\x18':\ncode_r0x00030910:\n    *(char *)(param_3 + 1) = '\x01';\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\ncode_r0x0003093e:\n      iVar3 = FUN_000300e0();\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n      uVar14 = (uint)(byte)param_3[1];\n      do {\n        bVar17 = (byte)uVar14;\n        if ((0x17 < bVar17) || ((0x8c0800U >> (uVar14 & 0x1f) & 1) == 0)) goto LAB_00030965;\n        uVar6 = *(undefined4 *)(param_1 + 0x28);\n        uVar14 = *param_3;\n        uVar13 = param_3[1];\n        iStack_a4 = local_b0;\n        if (bVar17 == 0x17) {\n          uVar15 = FUN_000307e0();\n          if (uVar15 == 0xffffffff) {\n            if (((char)param_3[1] == '\x01') && ((char)*param_3 == ',')) {\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\ncode_r0x00030e40:\n            *param_6 = 10;\n          }\n          else {\n            if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }\ncode_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }\ncode_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;\n            *param_3 = uVar14;\n            param_3[1] = uVar13;\n            *(char *)(param_3 + 1) = '\x01';\n            iVar3 = local_b0;\ncode_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;\n          }\ncode_r0x00030e4a:\n          if (local_b0 == 0) goto LAB_00030e58;\ncode_r0x00030bea:\n          FUN_00025a40();\n          local_b0 = 0;\n          goto LAB_00030965;\n        }\n        uVar15 = (uint)(bVar17 == 0x12);\n        if (bVar17 == 0x13) {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 == 0) goto code_r0x00030d10;\n          if (*(char *)(local_b0 + 0x18) == '\x11') {\n            uStack_c0 = 1;\n            iStack_a4 = 0;\n            goto code_r0x00030c76;\n          }\n          uStack_c0 = 1;\n          cStack_64 = '\n';\n          iStack_a4 = 0;\ncode_r0x00030a18:\n          iVar3 = FUN_00028330(0,&puStack_68);\n          if (iVar3 == 0) {\ncode_r0x00030be0:\n            *param_6 = 0xc;\n            goto code_r0x00030bea;\n          }\n          for (iVar16 = uVar15 + 2; iVar16 <= (int)uStack_c0; iVar16 = iVar16 + 1) {\n            iVar3 = FUN_00028410();\n            cStack_64 = '\x10';\n            iVar4 = FUN_00028330(iVar3,&puStack_68);\n            if ((iVar3 == 0) || (iVar4 == 0)) goto code_r0x00030be0;\n            cStack_64 = '\n';\n            iVar3 = FUN_00028330(0,&puStack_68);\n            if (iVar3 == 0) goto code_r0x00030be0;\n          }\n          if (iStack_a4 != 0) {\n            cStack_64 = '\x10';\n            iVar3 = FUN_00028330(iVar3,&puStack_68);\n            goto code_r0x00030af2;\n          }\n        }\n        else {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 != 0) {\n            if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }\n            uStack_c0 = 0xffffffff;\n            uVar15 = 1;\ncode_r0x00030e9c:\n            iVar3 = FUN_00028410();\n            if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }\n            goto code_r0x00030be0;\n          }\ncode_r0x00030d10:\n          if (*param_6 != 0) goto LAB_00030e58;\ncode_r0x00030d1e:\n          local_b0 = 0;\n          iVar3 = local_b0;\n        }\ncode_r0x00030b08:\n        local_b0 = iVar3;\n        bVar17 = (byte)param_3[1];\n        uVar14 = (uint)bVar17;\n      } while (((param_4 & 0x1000000) == 0) || ((bVar17 != 0xb && (bVar17 != 0x17))));\n      if (local_b0 != 0) {\n        FUN_00025a40();\n      }\n      goto code_r0x00030b48;\n    }\n    break;\n  case '\v':\n  case '\x12':\n  case '\x13':\ncode_r0x000308ec:\n    if ((param_4 & 0x20) == 0) {\n      if ((param_4 & 0x10) != 0) {\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        local_b0 = FUN_00030880(param_4,param_5,param_6);\n        goto LAB_00030965;\n      }\n      if (cVar2 == '\t') goto code_r0x000313dd;\n      goto code_r0x00030910;\n    }\n    goto code_r0x00030b48;\n  case '\f':\n    uStack_c0 = *param_3;\n    if (((uStack_c0 & 0x30f) != 0) && (bVar17 = *(byte *)(iVar3 + 0x58), (bVar17 & 0x10) == 0)) {\n      *(byte *)(iVar3 + 0x58) = bVar17 | 0x10;\n      if ((bVar17 & 8) == 0) {\n        *(undefined4 *)(iVar3 + 0x60) = 0;\n        *(undefined4 *)(iVar3 + 100) = 0x3ff0000;\n        *(undefined4 *)(iVar3 + 0x68) = 0x87fffffe;\n        *(undefined4 *)(iVar3 + 0x6c) = 0x7fffffe;\n        if ((bVar17 & 4) != 0) {\n          *(undefined4 *)(iVar3 + 0x70) = 0;\n          *(undefined4 *)(iVar3 + 0x74) = 0;\n          *(undefined4 *)(iVar3 + 0x78) = 0;\n          *(undefined4 *)(iVar3 + 0x7c) = 0;\n          uStack_c0 = *param_3;\n          goto code_r0x00031089;\n        }\n        iVar4 = 0x80;\n        iVar16 = 4;\n      }\n      else {\n        iVar4 = 0;\n        iVar16 = 0;\n      }\n      ppuVar8 = __ctype_b_loc();\n      iVar16 = iVar3 + iVar16 * 4;\n      puVar9 = *ppuVar8 + iVar4;\n      do {\n        iVar12 = 0;\n        do {\n          if (((puVar9[iVar12] & 8) != 0) || (iVar4 + iVar12 == 0x5f)) {\n            *(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f);\n          }\n          iVar12 = iVar12 + 1;\n        } while (iVar12 != 0x20);\n        iVar4 = iVar4 + 0x20;\n        iVar16 = iVar16 + 4;\n        puVar9 = puVar9 + 0x20;\n      } while (iVar3 + 0x20 != iVar16);\n    }\ncode_r0x00031089:\n    if ((uStack_c0 - 0x100 & 0xfffffeff) == 0) {\n      if (uStack_c0 == 0x100) {\n        *param_3 = 6;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 9;\n      }\n      else {\n        *param_3 = 5;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 10;\n      }\n      iVar3 = FUN_00028330(0,param_3);\n      cStack_64 = '\n';\n      local_b0 = FUN_00028330(iVar3,&puStack_68);\n      if (uStack_c0 == 0 || iVar3 == 0) break;\n    }\n    else {\n      local_b0 = FUN_00028330(0,param_3);\n    }\n    if (local_b0 != 0) {\n      iVar3 = FUN_000300e0();\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n      goto LAB_00030965;\n    }\n    break;\n  case '\x14':\n    __ptr = (uint *)calloc(0x20,1);\n    puVar5 = (uint *)calloc(0x28,1);\n    if (__ptr == (uint *)0x0 || puVar5 == (uint *)0x0) {\n      free(__ptr);\n      free(puVar5);\n      *param_6 = 0xc;\n      local_b0 = 0;\n      goto LAB_00030965;\n    }\n    uStack_c0 = FUN_00025ab0();\n    cVar2 = (char)param_3[1];\n    if (cVar2 != '\x02') {\n      bVar1 = false;\n      if (cVar2 != '\x19') {\ncode_r0x000312a6:\n        if (cVar2 == '\x15') {\n          *(char *)(param_3 + 1) = '\x01';\n        }\n        uStack_90 = 0;\n        uVar6 = 1;\ncode_r0x000312e4:\n        iVar16 = FUN_0002fec0(uStack_c0,param_4,uVar6);\n        if (iVar16 == 0) {\n          iVar16 = FUN_00025ab0();\n          if ((char)param_3[1] == '\x02') {\ncode_r0x00031615:\n            *param_6 = 7;\n          }\n          else {\n            if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    \n                    \n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }\n            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n            uVar6 = FUN_00025ab0();\n            if (cStack_64 == '\x02') goto code_r0x00031615;\n            if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }\n            pcStack_6c = acStack_40;\n            puStack_70 = (uint *)0x3;\n            uVar14 = 1;\n            iVar16 = FUN_0002fec0(uVar6,param_4,1);\n            if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }\n          }\n        }\n        else {\n          *param_6 = iVar16;\n        }\n        goto code_r0x000314ef;\n      }\n      *(byte *)(puVar5 + 4) = (byte)puVar5[4] | 1;\n      if ((param_4 & 0x100) != 0) {\n        *__ptr = *__ptr | 0x400;\n      }\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n      uStack_c0 = FUN_00025ab0();\n      cVar2 = (char)param_3[1];\n      if (cVar2 != '\x02') {\n        bVar1 = true;\n        goto code_r0x000312a6;\n      }\n    }\n    *param_6 = 2;\ncode_r0x000314ef:\n    free(__ptr);\n    FUN_00026c30();\n    if (*param_6 == 0) {\n      local_b0 = 0;\n      goto code_r0x0003093e;\n    }\nLAB_00030e58:\n    local_b0 = 0;\n    goto LAB_00030965;\n  case '\x17':\n    if ((param_4 & 0x1000000) == 0) goto code_r0x000308ec;\ncode_r0x00030b48:\n    local_b0 = 0;\n    *param_6 = 0xd;\n    goto LAB_00030965;\n  case ' ':\n  case '!':\n    local_b0 = FUN_0002b9b0(&UNK_000370bb,cVar2 == '!',param_6);\n    iVar3 = *param_6;\n    goto joined_r0x00030f59;\n  case '\"':\n  case '#':\n    local_b0 = FUN_0002b9b0("",cVar2 == '#',param_6);\n    iVar3 = *param_6;\njoined_r0x00030f59:\n    if ((iVar3 != 0) && (local_b0 == 0)) goto LAB_00030e58;\n    goto code_r0x0003093e;\n  case '$':\n    local_b0 = 0;\n    *param_6 = 5;\n    goto LAB_00030965;\n  }" (switch "switch") (parenthesized_expression "(cVar2)" (( "(") (identifier "cVar2") () ")")) (compound_statement "{\n  default:\n    goto LAB_00030e58;\n  case '\x01':\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\n      if (*(int *)(iVar3 + 0x5c) < 2) goto code_r0x0003093e;\n      do {\n        iVar3 = *(int *)(param_1 + 0x28);\n        if (((*(int *)(param_1 + 0x38) <= iVar3) || (iVar3 == *(int *)(param_1 + 0x1c))) ||\n           (*(int *)(*(int *)(param_1 + 8) + iVar3 * 4) != -1)) goto code_r0x0003093e;\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        iVar3 = FUN_00028330(0,param_3);\n        cStack_64 = '\x10';\n        local_b0 = FUN_00028330(iVar3,&puStack_68);\n      } while (iVar3 != 0 && local_b0 != 0);\n    }\n    break;\n  case '\x04':\n    uVar14 = 1 << ((byte)*param_3 & 0x1f);\n    if ((*(uint *)(iVar3 + 0x54) & uVar14) == 0) {\n      local_b0 = 0;\n      *param_6 = 6;\n      goto LAB_00030965;\n    }\n    *(uint *)(iVar3 + 0x50) = *(uint *)(iVar3 + 0x50) | uVar14;\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\n      *(int *)(iVar3 + 0x4c) = *(int *)(iVar3 + 0x4c) + 1;\n      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n      goto code_r0x0003093e;\n    }\n    break;\n  case '\x05':\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 == 0) break;\n    if (1 < *(int *)(iVar3 + 0x5c)) {\n      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n    }\n    goto code_r0x0003093e;\n  case '\b':\n    uVar14 = param_2[6];\n    param_2[6] = uVar14 + 1;\n    iVar16 = FUN_000300e0();\n    *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n    if ((char)param_3[1] == '\t') {\ncode_r0x00030fd0:\n      if (uVar14 < 9) {\n        *(uint *)(iVar3 + 0x54) = *(uint *)(iVar3 + 0x54) | 1 << ((byte)uVar14 & 0x1f);\n      }\n      cStack_64 = '\x11';\n      local_b0 = FUN_00028330(0,&puStack_68);\n      if (local_b0 != 0) {\n        *(uint *)(local_b0 + 0x14) = uVar14;\n        goto code_r0x0003093e;\n      }\n      break;\n    }\n    iVar16 = FUN_00031e70(param_4,param_5 + 1,param_6);\n    if (*param_6 == 0) {\n      if ((char)param_3[1] == '\t') goto code_r0x00030fd0;\n      if (iVar16 != 0) {\n        FUN_00025a40();\n      }\n      *param_6 = 8;\n    }\n    goto LAB_00030e58;\n  case '\t':\ncode_r0x000313dd:\n    if ((param_4 & 0x20000) == 0) {\n      local_b0 = 0;\n      *param_6 = 0x10;\n      goto LAB_00030965;\n    }\n  case '\x18':\ncode_r0x00030910:\n    *(char *)(param_3 + 1) = '\x01';\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\ncode_r0x0003093e:\n      iVar3 = FUN_000300e0();\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n      uVar14 = (uint)(byte)param_3[1];\n      do {\n        bVar17 = (byte)uVar14;\n        if ((0x17 < bVar17) || ((0x8c0800U >> (uVar14 & 0x1f) & 1) == 0)) goto LAB_00030965;\n        uVar6 = *(undefined4 *)(param_1 + 0x28);\n        uVar14 = *param_3;\n        uVar13 = param_3[1];\n        iStack_a4 = local_b0;\n        if (bVar17 == 0x17) {\n          uVar15 = FUN_000307e0();\n          if (uVar15 == 0xffffffff) {\n            if (((char)param_3[1] == '\x01') && ((char)*param_3 == ',')) {\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\ncode_r0x00030e40:\n            *param_6 = 10;\n          }\n          else {\n            if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }\ncode_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }\ncode_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;\n            *param_3 = uVar14;\n            param_3[1] = uVar13;\n            *(char *)(param_3 + 1) = '\x01';\n            iVar3 = local_b0;\ncode_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;\n          }\ncode_r0x00030e4a:\n          if (local_b0 == 0) goto LAB_00030e58;\ncode_r0x00030bea:\n          FUN_00025a40();\n          local_b0 = 0;\n          goto LAB_00030965;\n        }\n        uVar15 = (uint)(bVar17 == 0x12);\n        if (bVar17 == 0x13) {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 == 0) goto code_r0x00030d10;\n          if (*(char *)(local_b0 + 0x18) == '\x11') {\n            uStack_c0 = 1;\n            iStack_a4 = 0;\n            goto code_r0x00030c76;\n          }\n          uStack_c0 = 1;\n          cStack_64 = '\n';\n          iStack_a4 = 0;\ncode_r0x00030a18:\n          iVar3 = FUN_00028330(0,&puStack_68);\n          if (iVar3 == 0) {\ncode_r0x00030be0:\n            *param_6 = 0xc;\n            goto code_r0x00030bea;\n          }\n          for (iVar16 = uVar15 + 2; iVar16 <= (int)uStack_c0; iVar16 = iVar16 + 1) {\n            iVar3 = FUN_00028410();\n            cStack_64 = '\x10';\n            iVar4 = FUN_00028330(iVar3,&puStack_68);\n            if ((iVar3 == 0) || (iVar4 == 0)) goto code_r0x00030be0;\n            cStack_64 = '\n';\n            iVar3 = FUN_00028330(0,&puStack_68);\n            if (iVar3 == 0) goto code_r0x00030be0;\n          }\n          if (iStack_a4 != 0) {\n            cStack_64 = '\x10';\n            iVar3 = FUN_00028330(iVar3,&puStack_68);\n            goto code_r0x00030af2;\n          }\n        }\n        else {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 != 0) {\n            if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }\n            uStack_c0 = 0xffffffff;\n            uVar15 = 1;\ncode_r0x00030e9c:\n            iVar3 = FUN_00028410();\n            if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }\n            goto code_r0x00030be0;\n          }\ncode_r0x00030d10:\n          if (*param_6 != 0) goto LAB_00030e58;\ncode_r0x00030d1e:\n          local_b0 = 0;\n          iVar3 = local_b0;\n        }\ncode_r0x00030b08:\n        local_b0 = iVar3;\n        bVar17 = (byte)param_3[1];\n        uVar14 = (uint)bVar17;\n      } while (((param_4 & 0x1000000) == 0) || ((bVar17 != 0xb && (bVar17 != 0x17))));\n      if (local_b0 != 0) {\n        FUN_00025a40();\n      }\n      goto code_r0x00030b48;\n    }\n    break;\n  case '\v':\n  case '\x12':\n  case '\x13':\ncode_r0x000308ec:\n    if ((param_4 & 0x20) == 0) {\n      if ((param_4 & 0x10) != 0) {\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        local_b0 = FUN_00030880(param_4,param_5,param_6);\n        goto LAB_00030965;\n      }\n      if (cVar2 == '\t') goto code_r0x000313dd;\n      goto code_r0x00030910;\n    }\n    goto code_r0x00030b48;\n  case '\f':\n    uStack_c0 = *param_3;\n    if (((uStack_c0 & 0x30f) != 0) && (bVar17 = *(byte *)(iVar3 + 0x58), (bVar17 & 0x10) == 0)) {\n      *(byte *)(iVar3 + 0x58) = bVar17 | 0x10;\n      if ((bVar17 & 8) == 0) {\n        *(undefined4 *)(iVar3 + 0x60) = 0;\n        *(undefined4 *)(iVar3 + 100) = 0x3ff0000;\n        *(undefined4 *)(iVar3 + 0x68) = 0x87fffffe;\n        *(undefined4 *)(iVar3 + 0x6c) = 0x7fffffe;\n        if ((bVar17 & 4) != 0) {\n          *(undefined4 *)(iVar3 + 0x70) = 0;\n          *(undefined4 *)(iVar3 + 0x74) = 0;\n          *(undefined4 *)(iVar3 + 0x78) = 0;\n          *(undefined4 *)(iVar3 + 0x7c) = 0;\n          uStack_c0 = *param_3;\n          goto code_r0x00031089;\n        }\n        iVar4 = 0x80;\n        iVar16 = 4;\n      }\n      else {\n        iVar4 = 0;\n        iVar16 = 0;\n      }\n      ppuVar8 = __ctype_b_loc();\n      iVar16 = iVar3 + iVar16 * 4;\n      puVar9 = *ppuVar8 + iVar4;\n      do {\n        iVar12 = 0;\n        do {\n          if (((puVar9[iVar12] & 8) != 0) || (iVar4 + iVar12 == 0x5f)) {\n            *(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f);\n          }\n          iVar12 = iVar12 + 1;\n        } while (iVar12 != 0x20);\n        iVar4 = iVar4 + 0x20;\n        iVar16 = iVar16 + 4;\n        puVar9 = puVar9 + 0x20;\n      } while (iVar3 + 0x20 != iVar16);\n    }\ncode_r0x00031089:\n    if ((uStack_c0 - 0x100 & 0xfffffeff) == 0) {\n      if (uStack_c0 == 0x100) {\n        *param_3 = 6;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 9;\n      }\n      else {\n        *param_3 = 5;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 10;\n      }\n      iVar3 = FUN_00028330(0,param_3);\n      cStack_64 = '\n';\n      local_b0 = FUN_00028330(iVar3,&puStack_68);\n      if (uStack_c0 == 0 || iVar3 == 0) break;\n    }\n    else {\n      local_b0 = FUN_00028330(0,param_3);\n    }\n    if (local_b0 != 0) {\n      iVar3 = FUN_000300e0();\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n      goto LAB_00030965;\n    }\n    break;\n  case '\x14':\n    __ptr = (uint *)calloc(0x20,1);\n    puVar5 = (uint *)calloc(0x28,1);\n    if (__ptr == (uint *)0x0 || puVar5 == (uint *)0x0) {\n      free(__ptr);\n      free(puVar5);\n      *param_6 = 0xc;\n      local_b0 = 0;\n      goto LAB_00030965;\n    }\n    uStack_c0 = FUN_00025ab0();\n    cVar2 = (char)param_3[1];\n    if (cVar2 != '\x02') {\n      bVar1 = false;\n      if (cVar2 != '\x19') {\ncode_r0x000312a6:\n        if (cVar2 == '\x15') {\n          *(char *)(param_3 + 1) = '\x01';\n        }\n        uStack_90 = 0;\n        uVar6 = 1;\ncode_r0x000312e4:\n        iVar16 = FUN_0002fec0(uStack_c0,param_4,uVar6);\n        if (iVar16 == 0) {\n          iVar16 = FUN_00025ab0();\n          if ((char)param_3[1] == '\x02') {\ncode_r0x00031615:\n            *param_6 = 7;\n          }\n          else {\n            if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    \n                    \n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }\n            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n            uVar6 = FUN_00025ab0();\n            if (cStack_64 == '\x02') goto code_r0x00031615;\n            if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }\n            pcStack_6c = acStack_40;\n            puStack_70 = (uint *)0x3;\n            uVar14 = 1;\n            iVar16 = FUN_0002fec0(uVar6,param_4,1);\n            if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }\n          }\n        }\n        else {\n          *param_6 = iVar16;\n        }\n        goto code_r0x000314ef;\n      }\n      *(byte *)(puVar5 + 4) = (byte)puVar5[4] | 1;\n      if ((param_4 & 0x100) != 0) {\n        *__ptr = *__ptr | 0x400;\n      }\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n      uStack_c0 = FUN_00025ab0();\n      cVar2 = (char)param_3[1];\n      if (cVar2 != '\x02') {\n        bVar1 = true;\n        goto code_r0x000312a6;\n      }\n    }\n    *param_6 = 2;\ncode_r0x000314ef:\n    free(__ptr);\n    FUN_00026c30();\n    if (*param_6 == 0) {\n      local_b0 = 0;\n      goto code_r0x0003093e;\n    }\nLAB_00030e58:\n    local_b0 = 0;\n    goto LAB_00030965;\n  case '\x17':\n    if ((param_4 & 0x1000000) == 0) goto code_r0x000308ec;\ncode_r0x00030b48:\n    local_b0 = 0;\n    *param_6 = 0xd;\n    goto LAB_00030965;\n  case ' ':\n  case '!':\n    local_b0 = FUN_0002b9b0(&UNK_000370bb,cVar2 == '!',param_6);\n    iVar3 = *param_6;\n    goto joined_r0x00030f59;\n  case '\"':\n  case '#':\n    local_b0 = FUN_0002b9b0("",cVar2 == '#',param_6);\n    iVar3 = *param_6;\njoined_r0x00030f59:\n    if ((iVar3 != 0) && (local_b0 == 0)) goto LAB_00030e58;\n    goto code_r0x0003093e;\n  case '$':\n    local_b0 = 0;\n    *param_6 = 5;\n    goto LAB_00030965;\n  }" ({ "{") (case_statement "default:\n    goto LAB_00030e58;" (default "default") (: ":") (goto_statement "goto LAB_00030e58;" (goto "goto") (statement_identifier "LAB_00030e58") (; ";"))) (case_statement "case '\x01':\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\n      if (*(int *)(iVar3 + 0x5c) < 2) goto code_r0x0003093e;\n      do {\n        iVar3 = *(int *)(param_1 + 0x28);\n        if (((*(int *)(param_1 + 0x38) <= iVar3) || (iVar3 == *(int *)(param_1 + 0x1c))) ||\n           (*(int *)(*(int *)(param_1 + 8) + iVar3 * 4) != -1)) goto code_r0x0003093e;\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        iVar3 = FUN_00028330(0,param_3);\n        cStack_64 = '\x10';\n        local_b0 = FUN_00028330(iVar3,&puStack_68);\n      } while (iVar3 != 0 && local_b0 != 0);\n    }\n    break;" (case "case") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'")) (: ":") (expression_statement "local_b0 = FUN_00028330(0,param_3);" (assignment_expression "local_b0 = FUN_00028330(0,param_3)" (identifier "local_b0") (= "=") (call_expression "FUN_00028330(0,param_3)" (identifier "FUN_00028330") (argument_list "(0,param_3)" (( "(") (number_literal "0") (, ",") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (local_b0 != 0) {\n      if (*(int *)(iVar3 + 0x5c) < 2) goto code_r0x0003093e;\n      do {\n        iVar3 = *(int *)(param_1 + 0x28);\n        if (((*(int *)(param_1 + 0x38) <= iVar3) || (iVar3 == *(int *)(param_1 + 0x1c))) ||\n           (*(int *)(*(int *)(param_1 + 8) + iVar3 * 4) != -1)) goto code_r0x0003093e;\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        iVar3 = FUN_00028330(0,param_3);\n        cStack_64 = '\x10';\n        local_b0 = FUN_00028330(iVar3,&puStack_68);\n      } while (iVar3 != 0 && local_b0 != 0);\n    }" (if "if") (parenthesized_expression "(local_b0 != 0)" (( "(") (binary_expression "local_b0 != 0" (identifier "local_b0") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (*(int *)(iVar3 + 0x5c) < 2) goto code_r0x0003093e;\n      do {\n        iVar3 = *(int *)(param_1 + 0x28);\n        if (((*(int *)(param_1 + 0x38) <= iVar3) || (iVar3 == *(int *)(param_1 + 0x1c))) ||\n           (*(int *)(*(int *)(param_1 + 8) + iVar3 * 4) != -1)) goto code_r0x0003093e;\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        iVar3 = FUN_00028330(0,param_3);\n        cStack_64 = '\x10';\n        local_b0 = FUN_00028330(iVar3,&puStack_68);\n      } while (iVar3 != 0 && local_b0 != 0);\n    }" ({ "{") (if_statement "if (*(int *)(iVar3 + 0x5c) < 2) goto code_r0x0003093e;" (if "if") (parenthesized_expression "(*(int *)(iVar3 + 0x5c) < 2)" (( "(") (binary_expression "*(int *)(iVar3 + 0x5c) < 2" (pointer_expression "*(int *)(iVar3 + 0x5c)" (* "*") (cast_expression "(int *)(iVar3 + 0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x5c)" (( "(") (binary_expression "iVar3 + 0x5c" (identifier "iVar3") (+ "+") (number_literal "0x5c")) () ")")))) (< "<") (number_literal "2")) () ")")) (goto_statement "goto code_r0x0003093e;" (goto "goto") (statement_identifier "code_r0x0003093e") (; ";"))) (do_statement "do {\n        iVar3 = *(int *)(param_1 + 0x28);\n        if (((*(int *)(param_1 + 0x38) <= iVar3) || (iVar3 == *(int *)(param_1 + 0x1c))) ||\n           (*(int *)(*(int *)(param_1 + 8) + iVar3 * 4) != -1)) goto code_r0x0003093e;\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        iVar3 = FUN_00028330(0,param_3);\n        cStack_64 = '\x10';\n        local_b0 = FUN_00028330(iVar3,&puStack_68);\n      } while (iVar3 != 0 && local_b0 != 0);" (do "do") (compound_statement "{\n        iVar3 = *(int *)(param_1 + 0x28);\n        if (((*(int *)(param_1 + 0x38) <= iVar3) || (iVar3 == *(int *)(param_1 + 0x1c))) ||\n           (*(int *)(*(int *)(param_1 + 8) + iVar3 * 4) != -1)) goto code_r0x0003093e;\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        iVar3 = FUN_00028330(0,param_3);\n        cStack_64 = '\x10';\n        local_b0 = FUN_00028330(iVar3,&puStack_68);\n      }" ({ "{") (expression_statement "iVar3 = *(int *)(param_1 + 0x28);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x28)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(param_1 + 0x28)" (* "*") (cast_expression "(int *)(param_1 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (if_statement "if (((*(int *)(param_1 + 0x38) <= iVar3) || (iVar3 == *(int *)(param_1 + 0x1c))) ||\n           (*(int *)(*(int *)(param_1 + 8) + iVar3 * 4) != -1)) goto code_r0x0003093e;" (if "if") (parenthesized_expression "(((*(int *)(param_1 + 0x38) <= iVar3) || (iVar3 == *(int *)(param_1 + 0x1c))) ||\n           (*(int *)(*(int *)(param_1 + 8) + iVar3 * 4) != -1))" (( "(") (binary_expression "((*(int *)(param_1 + 0x38) <= iVar3) || (iVar3 == *(int *)(param_1 + 0x1c))) ||\n           (*(int *)(*(int *)(param_1 + 8) + iVar3 * 4) != -1)" (parenthesized_expression "((*(int *)(param_1 + 0x38) <= iVar3) || (iVar3 == *(int *)(param_1 + 0x1c)))" (( "(") (binary_expression "(*(int *)(param_1 + 0x38) <= iVar3) || (iVar3 == *(int *)(param_1 + 0x1c))" (parenthesized_expression "(*(int *)(param_1 + 0x38) <= iVar3)" (( "(") (binary_expression "*(int *)(param_1 + 0x38) <= iVar3" (pointer_expression "*(int *)(param_1 + 0x38)" (* "*") (cast_expression "(int *)(param_1 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (<= "<=") (identifier "iVar3")) () ")")) (|| "||") (parenthesized_expression "(iVar3 == *(int *)(param_1 + 0x1c))" (( "(") (binary_expression "iVar3 == *(int *)(param_1 + 0x1c)" (identifier "iVar3") (== "==") (pointer_expression "*(int *)(param_1 + 0x1c)" (* "*") (cast_expression "(int *)(param_1 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")"))))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(*(int *)(*(int *)(param_1 + 8) + iVar3 * 4) != -1)" (( "(") (binary_expression "*(int *)(*(int *)(param_1 + 8) + iVar3 * 4) != -1" (pointer_expression "*(int *)(*(int *)(param_1 + 8) + iVar3 * 4)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 8) + iVar3 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 8) + iVar3 * 4)" (( "(") (binary_expression "*(int *)(param_1 + 8) + iVar3 * 4" (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (+ "+") (binary_expression "iVar3 * 4" (identifier "iVar3") (* "*") (number_literal "4"))) () ")")))) (!= "!=") (number_literal "-1")) () ")"))) () ")")) (goto_statement "goto code_r0x0003093e;" (goto "goto") (statement_identifier "code_r0x0003093e") (; ";"))) (expression_statement "iVar3 = FUN_000300e0();" (assignment_expression "iVar3 = FUN_000300e0()" (identifier "iVar3") (= "=") (call_expression "FUN_000300e0()" (identifier "FUN_000300e0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;" (assignment_expression "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3" (pointer_expression "*(int *)(param_1 + 0x28)" (* "*") (cast_expression "(int *)(param_1 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (binary_expression "*(int *)(param_1 + 0x28) + iVar3" (pointer_expression "*(int *)(param_1 + 0x28)" (* "*") (cast_expression "(int *)(param_1 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (+ "+") (identifier "iVar3"))) (; ";")) (expression_statement "iVar3 = FUN_00028330(0,param_3);" (assignment_expression "iVar3 = FUN_00028330(0,param_3)" (identifier "iVar3") (= "=") (call_expression "FUN_00028330(0,param_3)" (identifier "FUN_00028330") (argument_list "(0,param_3)" (( "(") (number_literal "0") (, ",") (identifier "param_3") () ")")))) (; ";")) (expression_statement "cStack_64 = '\x10';" (assignment_expression "cStack_64 = '\x10'" (identifier "cStack_64") (= "=") (char_literal "'\x10'" (' "'") (escape_sequence "\x10") (' "'"))) (; ";")) (expression_statement "local_b0 = FUN_00028330(iVar3,&puStack_68);" (assignment_expression "local_b0 = FUN_00028330(iVar3,&puStack_68)" (identifier "local_b0") (= "=") (call_expression "FUN_00028330(iVar3,&puStack_68)" (identifier "FUN_00028330") (argument_list "(iVar3,&puStack_68)" (( "(") (identifier "iVar3") (, ",") (pointer_expression "&puStack_68" (& "&") (identifier "puStack_68")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar3 != 0 && local_b0 != 0)" (( "(") (binary_expression "iVar3 != 0 && local_b0 != 0" (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) (&& "&&") (binary_expression "local_b0 != 0" (identifier "local_b0") (!= "!=") (number_literal "0"))) () ")")) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case '\x04':\n    uVar14 = 1 << ((byte)*param_3 & 0x1f);\n    if ((*(uint *)(iVar3 + 0x54) & uVar14) == 0) {\n      local_b0 = 0;\n      *param_6 = 6;\n      goto LAB_00030965;\n    }\n    *(uint *)(iVar3 + 0x50) = *(uint *)(iVar3 + 0x50) | uVar14;\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\n      *(int *)(iVar3 + 0x4c) = *(int *)(iVar3 + 0x4c) + 1;\n      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n      goto code_r0x0003093e;\n    }\n    break;" (case "case") (char_literal "'\x04'" (' "'") (escape_sequence "\x04") (' "'")) (: ":") (expression_statement "uVar14 = 1 << ((byte)*param_3 & 0x1f);" (assignment_expression "uVar14 = 1 << ((byte)*param_3 & 0x1f)" (identifier "uVar14") (= "=") (binary_expression "1 << ((byte)*param_3 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "((byte)*param_3 & 0x1f)" (( "(") (binary_expression "(byte)*param_3 & 0x1f" (binary_expression "(byte)*param_3" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "param_3")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (if_statement "if ((*(uint *)(iVar3 + 0x54) & uVar14) == 0) {\n      local_b0 = 0;\n      *param_6 = 6;\n      goto LAB_00030965;\n    }" (if "if") (parenthesized_expression "((*(uint *)(iVar3 + 0x54) & uVar14) == 0)" (( "(") (binary_expression "(*(uint *)(iVar3 + 0x54) & uVar14) == 0" (parenthesized_expression "(*(uint *)(iVar3 + 0x54) & uVar14)" (( "(") (binary_expression "*(uint *)(iVar3 + 0x54) & uVar14" (pointer_expression "*(uint *)(iVar3 + 0x54)" (* "*") (cast_expression "(uint *)(iVar3 + 0x54)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x54)" (( "(") (binary_expression "iVar3 + 0x54" (identifier "iVar3") (+ "+") (number_literal "0x54")) () ")")))) (& "&") (identifier "uVar14")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      local_b0 = 0;\n      *param_6 = 6;\n      goto LAB_00030965;\n    }" ({ "{") (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" (identifier "local_b0") (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_6 = 6;" (assignment_expression "*param_6 = 6" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (number_literal "6")) (; ";")) (goto_statement "goto LAB_00030965;" (goto "goto") (statement_identifier "LAB_00030965") (; ";")) (} "}"))) (expression_statement "*(uint *)(iVar3 + 0x50) = *(uint *)(iVar3 + 0x50) | uVar14;" (assignment_expression "*(uint *)(iVar3 + 0x50) = *(uint *)(iVar3 + 0x50) | uVar14" (pointer_expression "*(uint *)(iVar3 + 0x50)" (* "*") (cast_expression "(uint *)(iVar3 + 0x50)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x50)" (( "(") (binary_expression "iVar3 + 0x50" (identifier "iVar3") (+ "+") (number_literal "0x50")) () ")")))) (= "=") (binary_expression "*(uint *)(iVar3 + 0x50) | uVar14" (pointer_expression "*(uint *)(iVar3 + 0x50)" (* "*") (cast_expression "(uint *)(iVar3 + 0x50)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x50)" (( "(") (binary_expression "iVar3 + 0x50" (identifier "iVar3") (+ "+") (number_literal "0x50")) () ")")))) (| "|") (identifier "uVar14"))) (; ";")) (expression_statement "local_b0 = FUN_00028330(0,param_3);" (assignment_expression "local_b0 = FUN_00028330(0,param_3)" (identifier "local_b0") (= "=") (call_expression "FUN_00028330(0,param_3)" (identifier "FUN_00028330") (argument_list "(0,param_3)" (( "(") (number_literal "0") (, ",") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (local_b0 != 0) {\n      *(int *)(iVar3 + 0x4c) = *(int *)(iVar3 + 0x4c) + 1;\n      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n      goto code_r0x0003093e;\n    }" (if "if") (parenthesized_expression "(local_b0 != 0)" (( "(") (binary_expression "local_b0 != 0" (identifier "local_b0") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      *(int *)(iVar3 + 0x4c) = *(int *)(iVar3 + 0x4c) + 1;\n      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n      goto code_r0x0003093e;\n    }" ({ "{") (expression_statement "*(int *)(iVar3 + 0x4c) = *(int *)(iVar3 + 0x4c) + 1;" (assignment_expression "*(int *)(iVar3 + 0x4c) = *(int *)(iVar3 + 0x4c) + 1" (pointer_expression "*(int *)(iVar3 + 0x4c)" (* "*") (cast_expression "(int *)(iVar3 + 0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x4c)" (( "(") (binary_expression "iVar3 + 0x4c" (identifier "iVar3") (+ "+") (number_literal "0x4c")) () ")")))) (= "=") (binary_expression "*(int *)(iVar3 + 0x4c) + 1" (pointer_expression "*(int *)(iVar3 + 0x4c)" (* "*") (cast_expression "(int *)(iVar3 + 0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x4c)" (( "(") (binary_expression "iVar3 + 0x4c" (identifier "iVar3") (+ "+") (number_literal "0x4c")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;" (assignment_expression "*(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2" (pointer_expression "*(byte *)(iVar3 + 0x58)" (* "*") (cast_expression "(byte *)(iVar3 + 0x58)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x58)" (( "(") (binary_expression "iVar3 + 0x58" (identifier "iVar3") (+ "+") (number_literal "0x58")) () ")")))) (= "=") (binary_expression "*(byte *)(iVar3 + 0x58) | 2" (pointer_expression "*(byte *)(iVar3 + 0x58)" (* "*") (cast_expression "(byte *)(iVar3 + 0x58)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x58)" (( "(") (binary_expression "iVar3 + 0x58" (identifier "iVar3") (+ "+") (number_literal "0x58")) () ")")))) (| "|") (number_literal "2"))) (; ";")) (goto_statement "goto code_r0x0003093e;" (goto "goto") (statement_identifier "code_r0x0003093e") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case '\x05':\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 == 0) break;\n    if (1 < *(int *)(iVar3 + 0x5c)) {\n      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n    }\n    goto code_r0x0003093e;" (case "case") (char_literal "'\x05'" (' "'") (escape_sequence "\x05") (' "'")) (: ":") (expression_statement "local_b0 = FUN_00028330(0,param_3);" (assignment_expression "local_b0 = FUN_00028330(0,param_3)" (identifier "local_b0") (= "=") (call_expression "FUN_00028330(0,param_3)" (identifier "FUN_00028330") (argument_list "(0,param_3)" (( "(") (number_literal "0") (, ",") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (local_b0 == 0) break;" (if "if") (parenthesized_expression "(local_b0 == 0)" (( "(") (binary_expression "local_b0 == 0" (identifier "local_b0") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (1 < *(int *)(iVar3 + 0x5c)) {\n      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n    }" (if "if") (parenthesized_expression "(1 < *(int *)(iVar3 + 0x5c))" (( "(") (binary_expression "1 < *(int *)(iVar3 + 0x5c)" (number_literal "1") (< "<") (pointer_expression "*(int *)(iVar3 + 0x5c)" (* "*") (cast_expression "(int *)(iVar3 + 0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x5c)" (( "(") (binary_expression "iVar3 + 0x5c" (identifier "iVar3") (+ "+") (number_literal "0x5c")) () ")"))))) () ")")) (compound_statement "{\n      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n    }" ({ "{") (expression_statement "*(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;" (assignment_expression "*(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2" (pointer_expression "*(byte *)(iVar3 + 0x58)" (* "*") (cast_expression "(byte *)(iVar3 + 0x58)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x58)" (( "(") (binary_expression "iVar3 + 0x58" (identifier "iVar3") (+ "+") (number_literal "0x58")) () ")")))) (= "=") (binary_expression "*(byte *)(iVar3 + 0x58) | 2" (pointer_expression "*(byte *)(iVar3 + 0x58)" (* "*") (cast_expression "(byte *)(iVar3 + 0x58)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x58)" (( "(") (binary_expression "iVar3 + 0x58" (identifier "iVar3") (+ "+") (number_literal "0x58")) () ")")))) (| "|") (number_literal "2"))) (; ";")) (} "}"))) (goto_statement "goto code_r0x0003093e;" (goto "goto") (statement_identifier "code_r0x0003093e") (; ";"))) (case_statement "case '\b':\n    uVar14 = param_2[6];\n    param_2[6] = uVar14 + 1;\n    iVar16 = FUN_000300e0();\n    *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n    if ((char)param_3[1] == '\t') {\ncode_r0x00030fd0:\n      if (uVar14 < 9) {\n        *(uint *)(iVar3 + 0x54) = *(uint *)(iVar3 + 0x54) | 1 << ((byte)uVar14 & 0x1f);\n      }\n      cStack_64 = '\x11';\n      local_b0 = FUN_00028330(0,&puStack_68);\n      if (local_b0 != 0) {\n        *(uint *)(local_b0 + 0x14) = uVar14;\n        goto code_r0x0003093e;\n      }\n      break;\n    }\n    iVar16 = FUN_00031e70(param_4,param_5 + 1,param_6);\n    if (*param_6 == 0) {\n      if ((char)param_3[1] == '\t') goto code_r0x00030fd0;\n      if (iVar16 != 0) {\n        FUN_00025a40();\n      }\n      *param_6 = 8;\n    }\n    goto LAB_00030e58;" (case "case") (char_literal "'\b'" (' "'") (escape_sequence "\b") (' "'")) (: ":") (expression_statement "uVar14 = param_2[6];" (assignment_expression "uVar14 = param_2[6]" (identifier "uVar14") (= "=") (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "param_2[6] = uVar14 + 1;" (assignment_expression "param_2[6] = uVar14 + 1" (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]")) (= "=") (binary_expression "uVar14 + 1" (identifier "uVar14") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar16 = FUN_000300e0();" (assignment_expression "iVar16 = FUN_000300e0()" (identifier "iVar16") (= "=") (call_expression "FUN_000300e0()" (identifier "FUN_000300e0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;" (assignment_expression "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16" (pointer_expression "*(int *)(param_1 + 0x28)" (* "*") (cast_expression "(int *)(param_1 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (binary_expression "*(int *)(param_1 + 0x28) + iVar16" (pointer_expression "*(int *)(param_1 + 0x28)" (* "*") (cast_expression "(int *)(param_1 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (+ "+") (identifier "iVar16"))) (; ";")) (if_statement "if ((char)param_3[1] == '\t') {\ncode_r0x00030fd0:\n      if (uVar14 < 9) {\n        *(uint *)(iVar3 + 0x54) = *(uint *)(iVar3 + 0x54) | 1 << ((byte)uVar14 & 0x1f);\n      }\n      cStack_64 = '\x11';\n      local_b0 = FUN_00028330(0,&puStack_68);\n      if (local_b0 != 0) {\n        *(uint *)(local_b0 + 0x14) = uVar14;\n        goto code_r0x0003093e;\n      }\n      break;\n    }" (if "if") (parenthesized_expression "((char)param_3[1] == '\t')" (( "(") (binary_expression "(char)param_3[1] == '\t'" (cast_expression "(char)param_3[1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) (== "==") (char_literal "'\t'" (' "'") (escape_sequence "\t") (' "'"))) () ")")) (compound_statement "{\ncode_r0x00030fd0:\n      if (uVar14 < 9) {\n        *(uint *)(iVar3 + 0x54) = *(uint *)(iVar3 + 0x54) | 1 << ((byte)uVar14 & 0x1f);\n      }\n      cStack_64 = '\x11';\n      local_b0 = FUN_00028330(0,&puStack_68);\n      if (local_b0 != 0) {\n        *(uint *)(local_b0 + 0x14) = uVar14;\n        goto code_r0x0003093e;\n      }\n      break;\n    }" ({ "{") (labeled_statement "code_r0x00030fd0:\n      if (uVar14 < 9) {\n        *(uint *)(iVar3 + 0x54) = *(uint *)(iVar3 + 0x54) | 1 << ((byte)uVar14 & 0x1f);\n      }" (statement_identifier "code_r0x00030fd0") (: ":") (if_statement "if (uVar14 < 9) {\n        *(uint *)(iVar3 + 0x54) = *(uint *)(iVar3 + 0x54) | 1 << ((byte)uVar14 & 0x1f);\n      }" (if "if") (parenthesized_expression "(uVar14 < 9)" (( "(") (binary_expression "uVar14 < 9" (identifier "uVar14") (< "<") (number_literal "9")) () ")")) (compound_statement "{\n        *(uint *)(iVar3 + 0x54) = *(uint *)(iVar3 + 0x54) | 1 << ((byte)uVar14 & 0x1f);\n      }" ({ "{") (expression_statement "*(uint *)(iVar3 + 0x54) = *(uint *)(iVar3 + 0x54) | 1 << ((byte)uVar14 & 0x1f);" (assignment_expression "*(uint *)(iVar3 + 0x54) = *(uint *)(iVar3 + 0x54) | 1 << ((byte)uVar14 & 0x1f)" (pointer_expression "*(uint *)(iVar3 + 0x54)" (* "*") (cast_expression "(uint *)(iVar3 + 0x54)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x54)" (( "(") (binary_expression "iVar3 + 0x54" (identifier "iVar3") (+ "+") (number_literal "0x54")) () ")")))) (= "=") (binary_expression "*(uint *)(iVar3 + 0x54) | 1 << ((byte)uVar14 & 0x1f)" (pointer_expression "*(uint *)(iVar3 + 0x54)" (* "*") (cast_expression "(uint *)(iVar3 + 0x54)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x54)" (( "(") (binary_expression "iVar3 + 0x54" (identifier "iVar3") (+ "+") (number_literal "0x54")) () ")")))) (| "|") (binary_expression "1 << ((byte)uVar14 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "((byte)uVar14 & 0x1f)" (( "(") (binary_expression "(byte)uVar14 & 0x1f" (cast_expression "(byte)uVar14" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar14")) (& "&") (number_literal "0x1f")) () ")"))))) (; ";")) (} "}")))) (expression_statement "cStack_64 = '\x11';" (assignment_expression "cStack_64 = '\x11'" (identifier "cStack_64") (= "=") (char_literal "'\x11'" (' "'") (escape_sequence "\x11") (' "'"))) (; ";")) (expression_statement "local_b0 = FUN_00028330(0,&puStack_68);" (assignment_expression "local_b0 = FUN_00028330(0,&puStack_68)" (identifier "local_b0") (= "=") (call_expression "FUN_00028330(0,&puStack_68)" (identifier "FUN_00028330") (argument_list "(0,&puStack_68)" (( "(") (number_literal "0") (, ",") (pointer_expression "&puStack_68" (& "&") (identifier "puStack_68")) () ")")))) (; ";")) (if_statement "if (local_b0 != 0) {\n        *(uint *)(local_b0 + 0x14) = uVar14;\n        goto code_r0x0003093e;\n      }" (if "if") (parenthesized_expression "(local_b0 != 0)" (( "(") (binary_expression "local_b0 != 0" (identifier "local_b0") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        *(uint *)(local_b0 + 0x14) = uVar14;\n        goto code_r0x0003093e;\n      }" ({ "{") (expression_statement "*(uint *)(local_b0 + 0x14) = uVar14;" (assignment_expression "*(uint *)(local_b0 + 0x14) = uVar14" (pointer_expression "*(uint *)(local_b0 + 0x14)" (* "*") (cast_expression "(uint *)(local_b0 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_b0 + 0x14)" (( "(") (binary_expression "local_b0 + 0x14" (identifier "local_b0") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "uVar14")) (; ";")) (goto_statement "goto code_r0x0003093e;" (goto "goto") (statement_identifier "code_r0x0003093e") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "iVar16 = FUN_00031e70(param_4,param_5 + 1,param_6);" (assignment_expression "iVar16 = FUN_00031e70(param_4,param_5 + 1,param_6)" (identifier "iVar16") (= "=") (call_expression "FUN_00031e70(param_4,param_5 + 1,param_6)" (identifier "FUN_00031e70") (argument_list "(param_4,param_5 + 1,param_6)" (( "(") (identifier "param_4") (, ",") (binary_expression "param_5 + 1" (identifier "param_5") (+ "+") (number_literal "1")) (, ",") (identifier "param_6") () ")")))) (; ";")) (if_statement "if (*param_6 == 0) {\n      if ((char)param_3[1] == '\t') goto code_r0x00030fd0;\n      if (iVar16 != 0) {\n        FUN_00025a40();\n      }\n      *param_6 = 8;\n    }" (if "if") (parenthesized_expression "(*param_6 == 0)" (( "(") (binary_expression "*param_6 == 0" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if ((char)param_3[1] == '\t') goto code_r0x00030fd0;\n      if (iVar16 != 0) {\n        FUN_00025a40();\n      }\n      *param_6 = 8;\n    }" ({ "{") (if_statement "if ((char)param_3[1] == '\t') goto code_r0x00030fd0;" (if "if") (parenthesized_expression "((char)param_3[1] == '\t')" (( "(") (binary_expression "(char)param_3[1] == '\t'" (cast_expression "(char)param_3[1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) (== "==") (char_literal "'\t'" (' "'") (escape_sequence "\t") (' "'"))) () ")")) (goto_statement "goto code_r0x00030fd0;" (goto "goto") (statement_identifier "code_r0x00030fd0") (; ";"))) (if_statement "if (iVar16 != 0) {\n        FUN_00025a40();\n      }" (if "if") (parenthesized_expression "(iVar16 != 0)" (( "(") (binary_expression "iVar16 != 0" (identifier "iVar16") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_00025a40();\n      }" ({ "{") (expression_statement "FUN_00025a40();" (call_expression "FUN_00025a40()" (identifier "FUN_00025a40") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "*param_6 = 8;" (assignment_expression "*param_6 = 8" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (number_literal "8")) (; ";")) (} "}"))) (goto_statement "goto LAB_00030e58;" (goto "goto") (statement_identifier "LAB_00030e58") (; ";"))) (case_statement "case '\t':\ncode_r0x000313dd:\n    if ((param_4 & 0x20000) == 0) {\n      local_b0 = 0;\n      *param_6 = 0x10;\n      goto LAB_00030965;\n    }" (case "case") (char_literal "'\t'" (' "'") (escape_sequence "\t") (' "'")) (: ":") (labeled_statement "code_r0x000313dd:\n    if ((param_4 & 0x20000) == 0) {\n      local_b0 = 0;\n      *param_6 = 0x10;\n      goto LAB_00030965;\n    }" (statement_identifier "code_r0x000313dd") (: ":") (if_statement "if ((param_4 & 0x20000) == 0) {\n      local_b0 = 0;\n      *param_6 = 0x10;\n      goto LAB_00030965;\n    }" (if "if") (parenthesized_expression "((param_4 & 0x20000) == 0)" (( "(") (binary_expression "(param_4 & 0x20000) == 0" (parenthesized_expression "(param_4 & 0x20000)" (( "(") (binary_expression "param_4 & 0x20000" (identifier "param_4") (& "&") (number_literal "0x20000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      local_b0 = 0;\n      *param_6 = 0x10;\n      goto LAB_00030965;\n    }" ({ "{") (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" (identifier "local_b0") (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_6 = 0x10;" (assignment_expression "*param_6 = 0x10" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (number_literal "0x10")) (; ";")) (goto_statement "goto LAB_00030965;" (goto "goto") (statement_identifier "LAB_00030965") (; ";")) (} "}"))))) (case_statement "case '\x18':\ncode_r0x00030910:\n    *(char *)(param_3 + 1) = '\x01';\n    local_b0 = FUN_00028330(0,param_3);\n    if (local_b0 != 0) {\ncode_r0x0003093e:\n      iVar3 = FUN_000300e0();\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n      uVar14 = (uint)(byte)param_3[1];\n      do {\n        bVar17 = (byte)uVar14;\n        if ((0x17 < bVar17) || ((0x8c0800U >> (uVar14 & 0x1f) & 1) == 0)) goto LAB_00030965;\n        uVar6 = *(undefined4 *)(param_1 + 0x28);\n        uVar14 = *param_3;\n        uVar13 = param_3[1];\n        iStack_a4 = local_b0;\n        if (bVar17 == 0x17) {\n          uVar15 = FUN_000307e0();\n          if (uVar15 == 0xffffffff) {\n            if (((char)param_3[1] == '\x01') && ((char)*param_3 == ',')) {\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\ncode_r0x00030e40:\n            *param_6 = 10;\n          }\n          else {\n            if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }\ncode_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }\ncode_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;\n            *param_3 = uVar14;\n            param_3[1] = uVar13;\n            *(char *)(param_3 + 1) = '\x01';\n            iVar3 = local_b0;\ncode_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;\n          }\ncode_r0x00030e4a:\n          if (local_b0 == 0) goto LAB_00030e58;\ncode_r0x00030bea:\n          FUN_00025a40();\n          local_b0 = 0;\n          goto LAB_00030965;\n        }\n        uVar15 = (uint)(bVar17 == 0x12);\n        if (bVar17 == 0x13) {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 == 0) goto code_r0x00030d10;\n          if (*(char *)(local_b0 + 0x18) == '\x11') {\n            uStack_c0 = 1;\n            iStack_a4 = 0;\n            goto code_r0x00030c76;\n          }\n          uStack_c0 = 1;\n          cStack_64 = '\n';\n          iStack_a4 = 0;\ncode_r0x00030a18:\n          iVar3 = FUN_00028330(0,&puStack_68);\n          if (iVar3 == 0) {\ncode_r0x00030be0:\n            *param_6 = 0xc;\n            goto code_r0x00030bea;\n          }\n          for (iVar16 = uVar15 + 2; iVar16 <= (int)uStack_c0; iVar16 = iVar16 + 1) {\n            iVar3 = FUN_00028410();\n            cStack_64 = '\x10';\n            iVar4 = FUN_00028330(iVar3,&puStack_68);\n            if ((iVar3 == 0) || (iVar4 == 0)) goto code_r0x00030be0;\n            cStack_64 = '\n';\n            iVar3 = FUN_00028330(0,&puStack_68);\n            if (iVar3 == 0) goto code_r0x00030be0;\n          }\n          if (iStack_a4 != 0) {\n            cStack_64 = '\x10';\n            iVar3 = FUN_00028330(iVar3,&puStack_68);\n            goto code_r0x00030af2;\n          }\n        }\n        else {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 != 0) {\n            if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }\n            uStack_c0 = 0xffffffff;\n            uVar15 = 1;\ncode_r0x00030e9c:\n            iVar3 = FUN_00028410();\n            if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }\n            goto code_r0x00030be0;\n          }\ncode_r0x00030d10:\n          if (*param_6 != 0) goto LAB_00030e58;\ncode_r0x00030d1e:\n          local_b0 = 0;\n          iVar3 = local_b0;\n        }\ncode_r0x00030b08:\n        local_b0 = iVar3;\n        bVar17 = (byte)param_3[1];\n        uVar14 = (uint)bVar17;\n      } while (((param_4 & 0x1000000) == 0) || ((bVar17 != 0xb && (bVar17 != 0x17))));\n      if (local_b0 != 0) {\n        FUN_00025a40();\n      }\n      goto code_r0x00030b48;\n    }\n    break;" (case "case") (char_literal "'\x18'" (' "'") (escape_sequence "\x18") (' "'")) (: ":") (labeled_statement "code_r0x00030910:\n    *(char *)(param_3 + 1) = '\x01';" (statement_identifier "code_r0x00030910") (: ":") (expression_statement "*(char *)(param_3 + 1) = '\x01';" (assignment_expression "*(char *)(param_3 + 1) = '\x01'" (pointer_expression "*(char *)(param_3 + 1)" (* "*") (cast_expression "(char *)(param_3 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 1)" (( "(") (binary_expression "param_3 + 1" (identifier "param_3") (+ "+") (number_literal "1")) () ")")))) (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";"))) (expression_statement "local_b0 = FUN_00028330(0,param_3);" (assignment_expression "local_b0 = FUN_00028330(0,param_3)" (identifier "local_b0") (= "=") (call_expression "FUN_00028330(0,param_3)" (identifier "FUN_00028330") (argument_list "(0,param_3)" (( "(") (number_literal "0") (, ",") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (local_b0 != 0) {\ncode_r0x0003093e:\n      iVar3 = FUN_000300e0();\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n      uVar14 = (uint)(byte)param_3[1];\n      do {\n        bVar17 = (byte)uVar14;\n        if ((0x17 < bVar17) || ((0x8c0800U >> (uVar14 & 0x1f) & 1) == 0)) goto LAB_00030965;\n        uVar6 = *(undefined4 *)(param_1 + 0x28);\n        uVar14 = *param_3;\n        uVar13 = param_3[1];\n        iStack_a4 = local_b0;\n        if (bVar17 == 0x17) {\n          uVar15 = FUN_000307e0();\n          if (uVar15 == 0xffffffff) {\n            if (((char)param_3[1] == '\x01') && ((char)*param_3 == ',')) {\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\ncode_r0x00030e40:\n            *param_6 = 10;\n          }\n          else {\n            if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }\ncode_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }\ncode_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;\n            *param_3 = uVar14;\n            param_3[1] = uVar13;\n            *(char *)(param_3 + 1) = '\x01';\n            iVar3 = local_b0;\ncode_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;\n          }\ncode_r0x00030e4a:\n          if (local_b0 == 0) goto LAB_00030e58;\ncode_r0x00030bea:\n          FUN_00025a40();\n          local_b0 = 0;\n          goto LAB_00030965;\n        }\n        uVar15 = (uint)(bVar17 == 0x12);\n        if (bVar17 == 0x13) {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 == 0) goto code_r0x00030d10;\n          if (*(char *)(local_b0 + 0x18) == '\x11') {\n            uStack_c0 = 1;\n            iStack_a4 = 0;\n            goto code_r0x00030c76;\n          }\n          uStack_c0 = 1;\n          cStack_64 = '\n';\n          iStack_a4 = 0;\ncode_r0x00030a18:\n          iVar3 = FUN_00028330(0,&puStack_68);\n          if (iVar3 == 0) {\ncode_r0x00030be0:\n            *param_6 = 0xc;\n            goto code_r0x00030bea;\n          }\n          for (iVar16 = uVar15 + 2; iVar16 <= (int)uStack_c0; iVar16 = iVar16 + 1) {\n            iVar3 = FUN_00028410();\n            cStack_64 = '\x10';\n            iVar4 = FUN_00028330(iVar3,&puStack_68);\n            if ((iVar3 == 0) || (iVar4 == 0)) goto code_r0x00030be0;\n            cStack_64 = '\n';\n            iVar3 = FUN_00028330(0,&puStack_68);\n            if (iVar3 == 0) goto code_r0x00030be0;\n          }\n          if (iStack_a4 != 0) {\n            cStack_64 = '\x10';\n            iVar3 = FUN_00028330(iVar3,&puStack_68);\n            goto code_r0x00030af2;\n          }\n        }\n        else {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 != 0) {\n            if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }\n            uStack_c0 = 0xffffffff;\n            uVar15 = 1;\ncode_r0x00030e9c:\n            iVar3 = FUN_00028410();\n            if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }\n            goto code_r0x00030be0;\n          }\ncode_r0x00030d10:\n          if (*param_6 != 0) goto LAB_00030e58;\ncode_r0x00030d1e:\n          local_b0 = 0;\n          iVar3 = local_b0;\n        }\ncode_r0x00030b08:\n        local_b0 = iVar3;\n        bVar17 = (byte)param_3[1];\n        uVar14 = (uint)bVar17;\n      } while (((param_4 & 0x1000000) == 0) || ((bVar17 != 0xb && (bVar17 != 0x17))));\n      if (local_b0 != 0) {\n        FUN_00025a40();\n      }\n      goto code_r0x00030b48;\n    }" (if "if") (parenthesized_expression "(local_b0 != 0)" (( "(") (binary_expression "local_b0 != 0" (identifier "local_b0") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\ncode_r0x0003093e:\n      iVar3 = FUN_000300e0();\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n      uVar14 = (uint)(byte)param_3[1];\n      do {\n        bVar17 = (byte)uVar14;\n        if ((0x17 < bVar17) || ((0x8c0800U >> (uVar14 & 0x1f) & 1) == 0)) goto LAB_00030965;\n        uVar6 = *(undefined4 *)(param_1 + 0x28);\n        uVar14 = *param_3;\n        uVar13 = param_3[1];\n        iStack_a4 = local_b0;\n        if (bVar17 == 0x17) {\n          uVar15 = FUN_000307e0();\n          if (uVar15 == 0xffffffff) {\n            if (((char)param_3[1] == '\x01') && ((char)*param_3 == ',')) {\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\ncode_r0x00030e40:\n            *param_6 = 10;\n          }\n          else {\n            if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }\ncode_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }\ncode_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;\n            *param_3 = uVar14;\n            param_3[1] = uVar13;\n            *(char *)(param_3 + 1) = '\x01';\n            iVar3 = local_b0;\ncode_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;\n          }\ncode_r0x00030e4a:\n          if (local_b0 == 0) goto LAB_00030e58;\ncode_r0x00030bea:\n          FUN_00025a40();\n          local_b0 = 0;\n          goto LAB_00030965;\n        }\n        uVar15 = (uint)(bVar17 == 0x12);\n        if (bVar17 == 0x13) {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 == 0) goto code_r0x00030d10;\n          if (*(char *)(local_b0 + 0x18) == '\x11') {\n            uStack_c0 = 1;\n            iStack_a4 = 0;\n            goto code_r0x00030c76;\n          }\n          uStack_c0 = 1;\n          cStack_64 = '\n';\n          iStack_a4 = 0;\ncode_r0x00030a18:\n          iVar3 = FUN_00028330(0,&puStack_68);\n          if (iVar3 == 0) {\ncode_r0x00030be0:\n            *param_6 = 0xc;\n            goto code_r0x00030bea;\n          }\n          for (iVar16 = uVar15 + 2; iVar16 <= (int)uStack_c0; iVar16 = iVar16 + 1) {\n            iVar3 = FUN_00028410();\n            cStack_64 = '\x10';\n            iVar4 = FUN_00028330(iVar3,&puStack_68);\n            if ((iVar3 == 0) || (iVar4 == 0)) goto code_r0x00030be0;\n            cStack_64 = '\n';\n            iVar3 = FUN_00028330(0,&puStack_68);\n            if (iVar3 == 0) goto code_r0x00030be0;\n          }\n          if (iStack_a4 != 0) {\n            cStack_64 = '\x10';\n            iVar3 = FUN_00028330(iVar3,&puStack_68);\n            goto code_r0x00030af2;\n          }\n        }\n        else {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 != 0) {\n            if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }\n            uStack_c0 = 0xffffffff;\n            uVar15 = 1;\ncode_r0x00030e9c:\n            iVar3 = FUN_00028410();\n            if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }\n            goto code_r0x00030be0;\n          }\ncode_r0x00030d10:\n          if (*param_6 != 0) goto LAB_00030e58;\ncode_r0x00030d1e:\n          local_b0 = 0;\n          iVar3 = local_b0;\n        }\ncode_r0x00030b08:\n        local_b0 = iVar3;\n        bVar17 = (byte)param_3[1];\n        uVar14 = (uint)bVar17;\n      } while (((param_4 & 0x1000000) == 0) || ((bVar17 != 0xb && (bVar17 != 0x17))));\n      if (local_b0 != 0) {\n        FUN_00025a40();\n      }\n      goto code_r0x00030b48;\n    }" ({ "{") (labeled_statement "code_r0x0003093e:\n      iVar3 = FUN_000300e0();" (statement_identifier "code_r0x0003093e") (: ":") (expression_statement "iVar3 = FUN_000300e0();" (assignment_expression "iVar3 = FUN_000300e0()" (identifier "iVar3") (= "=") (call_expression "FUN_000300e0()" (identifier "FUN_000300e0") (argument_list "()" (( "(") () ")")))) (; ";"))) (expression_statement "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;" (assignment_expression "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3" (pointer_expression "*(int *)(param_1 + 0x28)" (* "*") (cast_expression "(int *)(param_1 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (binary_expression "*(int *)(param_1 + 0x28) + iVar3" (pointer_expression "*(int *)(param_1 + 0x28)" (* "*") (cast_expression "(int *)(param_1 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (+ "+") (identifier "iVar3"))) (; ";")) (expression_statement "uVar14 = (uint)(byte)param_3[1];" (assignment_expression "uVar14 = (uint)(byte)param_3[1]" (identifier "uVar14") (= "=") (cast_expression "(uint)(byte)param_3[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)param_3[1]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))))) (; ";")) (do_statement "do {\n        bVar17 = (byte)uVar14;\n        if ((0x17 < bVar17) || ((0x8c0800U >> (uVar14 & 0x1f) & 1) == 0)) goto LAB_00030965;\n        uVar6 = *(undefined4 *)(param_1 + 0x28);\n        uVar14 = *param_3;\n        uVar13 = param_3[1];\n        iStack_a4 = local_b0;\n        if (bVar17 == 0x17) {\n          uVar15 = FUN_000307e0();\n          if (uVar15 == 0xffffffff) {\n            if (((char)param_3[1] == '\x01') && ((char)*param_3 == ',')) {\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\ncode_r0x00030e40:\n            *param_6 = 10;\n          }\n          else {\n            if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }\ncode_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }\ncode_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;\n            *param_3 = uVar14;\n            param_3[1] = uVar13;\n            *(char *)(param_3 + 1) = '\x01';\n            iVar3 = local_b0;\ncode_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;\n          }\ncode_r0x00030e4a:\n          if (local_b0 == 0) goto LAB_00030e58;\ncode_r0x00030bea:\n          FUN_00025a40();\n          local_b0 = 0;\n          goto LAB_00030965;\n        }\n        uVar15 = (uint)(bVar17 == 0x12);\n        if (bVar17 == 0x13) {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 == 0) goto code_r0x00030d10;\n          if (*(char *)(local_b0 + 0x18) == '\x11') {\n            uStack_c0 = 1;\n            iStack_a4 = 0;\n            goto code_r0x00030c76;\n          }\n          uStack_c0 = 1;\n          cStack_64 = '\n';\n          iStack_a4 = 0;\ncode_r0x00030a18:\n          iVar3 = FUN_00028330(0,&puStack_68);\n          if (iVar3 == 0) {\ncode_r0x00030be0:\n            *param_6 = 0xc;\n            goto code_r0x00030bea;\n          }\n          for (iVar16 = uVar15 + 2; iVar16 <= (int)uStack_c0; iVar16 = iVar16 + 1) {\n            iVar3 = FUN_00028410();\n            cStack_64 = '\x10';\n            iVar4 = FUN_00028330(iVar3,&puStack_68);\n            if ((iVar3 == 0) || (iVar4 == 0)) goto code_r0x00030be0;\n            cStack_64 = '\n';\n            iVar3 = FUN_00028330(0,&puStack_68);\n            if (iVar3 == 0) goto code_r0x00030be0;\n          }\n          if (iStack_a4 != 0) {\n            cStack_64 = '\x10';\n            iVar3 = FUN_00028330(iVar3,&puStack_68);\n            goto code_r0x00030af2;\n          }\n        }\n        else {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 != 0) {\n            if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }\n            uStack_c0 = 0xffffffff;\n            uVar15 = 1;\ncode_r0x00030e9c:\n            iVar3 = FUN_00028410();\n            if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }\n            goto code_r0x00030be0;\n          }\ncode_r0x00030d10:\n          if (*param_6 != 0) goto LAB_00030e58;\ncode_r0x00030d1e:\n          local_b0 = 0;\n          iVar3 = local_b0;\n        }\ncode_r0x00030b08:\n        local_b0 = iVar3;\n        bVar17 = (byte)param_3[1];\n        uVar14 = (uint)bVar17;\n      } while (((param_4 & 0x1000000) == 0) || ((bVar17 != 0xb && (bVar17 != 0x17))));" (do "do") (compound_statement "{\n        bVar17 = (byte)uVar14;\n        if ((0x17 < bVar17) || ((0x8c0800U >> (uVar14 & 0x1f) & 1) == 0)) goto LAB_00030965;\n        uVar6 = *(undefined4 *)(param_1 + 0x28);\n        uVar14 = *param_3;\n        uVar13 = param_3[1];\n        iStack_a4 = local_b0;\n        if (bVar17 == 0x17) {\n          uVar15 = FUN_000307e0();\n          if (uVar15 == 0xffffffff) {\n            if (((char)param_3[1] == '\x01') && ((char)*param_3 == ',')) {\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\ncode_r0x00030e40:\n            *param_6 = 10;\n          }\n          else {\n            if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }\ncode_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }\ncode_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;\n            *param_3 = uVar14;\n            param_3[1] = uVar13;\n            *(char *)(param_3 + 1) = '\x01';\n            iVar3 = local_b0;\ncode_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;\n          }\ncode_r0x00030e4a:\n          if (local_b0 == 0) goto LAB_00030e58;\ncode_r0x00030bea:\n          FUN_00025a40();\n          local_b0 = 0;\n          goto LAB_00030965;\n        }\n        uVar15 = (uint)(bVar17 == 0x12);\n        if (bVar17 == 0x13) {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 == 0) goto code_r0x00030d10;\n          if (*(char *)(local_b0 + 0x18) == '\x11') {\n            uStack_c0 = 1;\n            iStack_a4 = 0;\n            goto code_r0x00030c76;\n          }\n          uStack_c0 = 1;\n          cStack_64 = '\n';\n          iStack_a4 = 0;\ncode_r0x00030a18:\n          iVar3 = FUN_00028330(0,&puStack_68);\n          if (iVar3 == 0) {\ncode_r0x00030be0:\n            *param_6 = 0xc;\n            goto code_r0x00030bea;\n          }\n          for (iVar16 = uVar15 + 2; iVar16 <= (int)uStack_c0; iVar16 = iVar16 + 1) {\n            iVar3 = FUN_00028410();\n            cStack_64 = '\x10';\n            iVar4 = FUN_00028330(iVar3,&puStack_68);\n            if ((iVar3 == 0) || (iVar4 == 0)) goto code_r0x00030be0;\n            cStack_64 = '\n';\n            iVar3 = FUN_00028330(0,&puStack_68);\n            if (iVar3 == 0) goto code_r0x00030be0;\n          }\n          if (iStack_a4 != 0) {\n            cStack_64 = '\x10';\n            iVar3 = FUN_00028330(iVar3,&puStack_68);\n            goto code_r0x00030af2;\n          }\n        }\n        else {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 != 0) {\n            if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }\n            uStack_c0 = 0xffffffff;\n            uVar15 = 1;\ncode_r0x00030e9c:\n            iVar3 = FUN_00028410();\n            if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }\n            goto code_r0x00030be0;\n          }\ncode_r0x00030d10:\n          if (*param_6 != 0) goto LAB_00030e58;\ncode_r0x00030d1e:\n          local_b0 = 0;\n          iVar3 = local_b0;\n        }\ncode_r0x00030b08:\n        local_b0 = iVar3;\n        bVar17 = (byte)param_3[1];\n        uVar14 = (uint)bVar17;\n      }" ({ "{") (expression_statement "bVar17 = (byte)uVar14;" (assignment_expression "bVar17 = (byte)uVar14" (identifier "bVar17") (= "=") (cast_expression "(byte)uVar14" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar14"))) (; ";")) (if_statement "if ((0x17 < bVar17) || ((0x8c0800U >> (uVar14 & 0x1f) & 1) == 0)) goto LAB_00030965;" (if "if") (parenthesized_expression "((0x17 < bVar17) || ((0x8c0800U >> (uVar14 & 0x1f) & 1) == 0))" (( "(") (binary_expression "(0x17 < bVar17) || ((0x8c0800U >> (uVar14 & 0x1f) & 1) == 0)" (parenthesized_expression "(0x17 < bVar17)" (( "(") (binary_expression "0x17 < bVar17" (number_literal "0x17") (< "<") (identifier "bVar17")) () ")")) (|| "||") (parenthesized_expression "((0x8c0800U >> (uVar14 & 0x1f) & 1) == 0)" (( "(") (binary_expression "(0x8c0800U >> (uVar14 & 0x1f) & 1) == 0" (parenthesized_expression "(0x8c0800U >> (uVar14 & 0x1f) & 1)" (( "(") (binary_expression "0x8c0800U >> (uVar14 & 0x1f) & 1" (binary_expression "0x8c0800U >> (uVar14 & 0x1f)" (number_literal "0x8c0800U") (>> ">>") (parenthesized_expression "(uVar14 & 0x1f)" (( "(") (binary_expression "uVar14 & 0x1f" (identifier "uVar14") (& "&") (number_literal "0x1f")) () ")"))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_00030965;" (goto "goto") (statement_identifier "LAB_00030965") (; ";"))) (expression_statement "uVar6 = *(undefined4 *)(param_1 + 0x28);" (assignment_expression "uVar6 = *(undefined4 *)(param_1 + 0x28)" (identifier "uVar6") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x28)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "uVar14 = *param_3;" (assignment_expression "uVar14 = *param_3" (identifier "uVar14") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (expression_statement "uVar13 = param_3[1];" (assignment_expression "uVar13 = param_3[1]" (identifier "uVar13") (= "=") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "iStack_a4 = local_b0;" (assignment_expression "iStack_a4 = local_b0" (identifier "iStack_a4") (= "=") (identifier "local_b0")) (; ";")) (if_statement "if (bVar17 == 0x17) {\n          uVar15 = FUN_000307e0();\n          if (uVar15 == 0xffffffff) {\n            if (((char)param_3[1] == '\x01') && ((char)*param_3 == ',')) {\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\ncode_r0x00030e40:\n            *param_6 = 10;\n          }\n          else {\n            if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }\ncode_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }\ncode_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;\n            *param_3 = uVar14;\n            param_3[1] = uVar13;\n            *(char *)(param_3 + 1) = '\x01';\n            iVar3 = local_b0;\ncode_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;\n          }\ncode_r0x00030e4a:\n          if (local_b0 == 0) goto LAB_00030e58;\ncode_r0x00030bea:\n          FUN_00025a40();\n          local_b0 = 0;\n          goto LAB_00030965;\n        }" (if "if") (parenthesized_expression "(bVar17 == 0x17)" (( "(") (binary_expression "bVar17 == 0x17" (identifier "bVar17") (== "==") (number_literal "0x17")) () ")")) (compound_statement "{\n          uVar15 = FUN_000307e0();\n          if (uVar15 == 0xffffffff) {\n            if (((char)param_3[1] == '\x01') && ((char)*param_3 == ',')) {\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\ncode_r0x00030e40:\n            *param_6 = 10;\n          }\n          else {\n            if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }\ncode_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }\ncode_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;\n            *param_3 = uVar14;\n            param_3[1] = uVar13;\n            *(char *)(param_3 + 1) = '\x01';\n            iVar3 = local_b0;\ncode_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;\n          }\ncode_r0x00030e4a:\n          if (local_b0 == 0) goto LAB_00030e58;\ncode_r0x00030bea:\n          FUN_00025a40();\n          local_b0 = 0;\n          goto LAB_00030965;\n        }" ({ "{") (expression_statement "uVar15 = FUN_000307e0();" (assignment_expression "uVar15 = FUN_000307e0()" (identifier "uVar15") (= "=") (call_expression "FUN_000307e0()" (identifier "FUN_000307e0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (uVar15 == 0xffffffff) {\n            if (((char)param_3[1] == '\x01') && ((char)*param_3 == ',')) {\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\ncode_r0x00030e40:\n            *param_6 = 10;\n          }\n          else {\n            if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }\ncode_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }\ncode_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;\n            *param_3 = uVar14;\n            param_3[1] = uVar13;\n            *(char *)(param_3 + 1) = '\x01';\n            iVar3 = local_b0;\ncode_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;\n          }" (if "if") (parenthesized_expression "(uVar15 == 0xffffffff)" (( "(") (binary_expression "uVar15 == 0xffffffff" (identifier "uVar15") (== "==") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n            if (((char)param_3[1] == '\x01') && ((char)*param_3 == ',')) {\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }\ncode_r0x00030e40:\n            *param_6 = 10;\n          }" ({ "{") (if_statement "if (((char)param_3[1] == '\x01') && ((char)*param_3 == ',')) {\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }" (if "if") (parenthesized_expression "(((char)param_3[1] == '\x01') && ((char)*param_3 == ','))" (( "(") (binary_expression "((char)param_3[1] == '\x01') && ((char)*param_3 == ',')" (parenthesized_expression "((char)param_3[1] == '\x01')" (( "(") (binary_expression "(char)param_3[1] == '\x01'" (cast_expression "(char)param_3[1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) (== "==") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "((char)*param_3 == ',')" (( "(") (binary_expression "(char)*param_3 == ','" (cast_expression "(char)*param_3" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (== "==") (char_literal "','" (' "'") (character ",") (' "'"))) () ")"))) () ")")) (compound_statement "{\n              uVar15 = 0;\ncode_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();\n              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;\n              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }\n            }" ({ "{") (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" (identifier "uVar15") (= "=") (number_literal "0")) (; ";")) (labeled_statement "code_r0x00030d4d:\n              uStack_c0 = FUN_000307e0();" (statement_identifier "code_r0x00030d4d") (: ":") (expression_statement "uStack_c0 = FUN_000307e0();" (assignment_expression "uStack_c0 = FUN_000307e0()" (identifier "uStack_c0") (= "=") (call_expression "FUN_000307e0()" (identifier "FUN_000307e0") (argument_list "()" (( "(") () ")")))) (; ";"))) (if_statement "if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;" (if "if") (parenthesized_expression "(uStack_c0 == 0xfffffffe)" (( "(") (binary_expression "uStack_c0 == 0xfffffffe" (identifier "uStack_c0") (== "==") (number_literal "0xfffffffe")) () ")")) (goto_statement "goto code_r0x00030cd8;" (goto "goto") (statement_identifier "code_r0x00030cd8") (; ";"))) (if_statement "if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')) {\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }" (if "if") (parenthesized_expression "(((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18'))" (( "(") (binary_expression "((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&\n                 ((char)param_3[1] == '\x18')" (parenthesized_expression "((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0))" (( "(") (binary_expression "(uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)" (parenthesized_expression "(uStack_c0 == 0xffffffff)" (( "(") (binary_expression "uStack_c0 == 0xffffffff" (identifier "uStack_c0") (== "==") (number_literal "0xffffffff")) () ")")) (|| "||") (parenthesized_expression "((int)uVar15 <= (int)uStack_c0)" (( "(") (binary_expression "(int)uVar15 <= (int)uStack_c0" (cast_expression "(int)uVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar15")) (<= "<=") (cast_expression "(int)uStack_c0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uStack_c0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((char)param_3[1] == '\x18')" (( "(") (binary_expression "(char)param_3[1] == '\x18'" (cast_expression "(char)param_3[1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) (== "==") (char_literal "'\x18'" (' "'") (escape_sequence "\x18") (' "'"))) () ")"))) () ")")) (compound_statement "{\n                uVar14 = uVar15;\n                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;\n                goto joined_r0x00030e0b;\n              }" ({ "{") (expression_statement "uVar14 = uVar15;" (assignment_expression "uVar14 = uVar15" (identifier "uVar14") (= "=") (identifier "uVar15")) (; ";")) (if_statement "if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;" (if "if") (parenthesized_expression "(uStack_c0 != 0xffffffff)" (( "(") (binary_expression "uStack_c0 != 0xffffffff" (identifier "uStack_c0") (!= "!=") (number_literal "0xffffffff")) () ")")) (goto_statement "goto code_r0x00030dfc;" (goto "goto") (statement_identifier "code_r0x00030dfc") (; ";"))) (goto_statement "goto joined_r0x00030e0b;" (goto "goto") (statement_identifier "joined_r0x00030e0b") (; ";")) (} "}"))) (} "}"))) (labeled_statement "code_r0x00030e40:\n            *param_6 = 10;" (statement_identifier "code_r0x00030e40") (: ":") (expression_statement "*param_6 = 10;" (assignment_expression "*param_6 = 10" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (number_literal "10")) (; ";"))) (} "}")) (else_clause "else {\n            if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }\ncode_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }\ncode_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;\n            *param_3 = uVar14;\n            param_3[1] = uVar13;\n            *(char *)(param_3 + 1) = '\x01';\n            iVar3 = local_b0;\ncode_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;\n          }" (else "else") (compound_statement "{\n            if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }\ncode_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }\ncode_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;\n            *param_3 = uVar14;\n            param_3[1] = uVar13;\n            *(char *)(param_3 + 1) = '\x01';\n            iVar3 = local_b0;\ncode_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;\n          }" ({ "{") (if_statement "if (uVar15 != 0xfffffffe) {\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }" (if "if") (parenthesized_expression "(uVar15 != 0xfffffffe)" (( "(") (binary_expression "uVar15 != 0xfffffffe" (identifier "uVar15") (!= "!=") (number_literal "0xfffffffe")) () ")")) (compound_statement "{\n              uStack_c0 = uVar15;\n              if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }\ncode_r0x00030dfc:\n              uVar14 = uStack_c0;\njoined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }\n              iVar3 = FUN_000300e0();\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n              if (local_b0 == 0) goto code_r0x00030d10;\n              if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }\n              FUN_00025a40();\n              if (*param_6 == 0) goto code_r0x00030d1e;\n              goto code_r0x00030bea;\n            }" ({ "{") (expression_statement "uStack_c0 = uVar15;" (assignment_expression "uStack_c0 = uVar15" (identifier "uStack_c0") (= "=") (identifier "uVar15")) (; ";")) (if_statement "if ((char)param_3[1] != '\x18') {\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }" (if "if") (parenthesized_expression "((char)param_3[1] != '\x18')" (( "(") (binary_expression "(char)param_3[1] != '\x18'" (cast_expression "(char)param_3[1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) (!= "!=") (char_literal "'\x18'" (' "'") (escape_sequence "\x18") (' "'"))) () ")")) (compound_statement "{\n                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;\n                if ((char)*param_3 == ',') goto code_r0x00030d4d;\n                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;\n                goto code_r0x00030ce9;\n              }" ({ "{") (if_statement "if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;" (if "if") (parenthesized_expression "((char)param_3[1] != '\x01')" (( "(") (binary_expression "(char)param_3[1] != '\x01'" (cast_expression "(char)param_3[1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) (!= "!=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")")) (goto_statement "goto code_r0x00030cd8;" (goto "goto") (statement_identifier "code_r0x00030cd8") (; ";"))) (if_statement "if ((char)*param_3 == ',') goto code_r0x00030d4d;" (if "if") (parenthesized_expression "((char)*param_3 == ',')" (( "(") (binary_expression "(char)*param_3 == ','" (cast_expression "(char)*param_3" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (== "==") (char_literal "','" (' "'") (character ",") (' "'"))) () ")")) (goto_statement "goto code_r0x00030d4d;" (goto "goto") (statement_identifier "code_r0x00030d4d") (; ";"))) (if_statement "if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;" (if "if") (parenthesized_expression "((param_4 & 0x200000) == 0)" (( "(") (binary_expression "(param_4 & 0x200000) == 0" (parenthesized_expression "(param_4 & 0x200000)" (( "(") (binary_expression "param_4 & 0x200000" (identifier "param_4") (& "&") (number_literal "0x200000")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto code_r0x00030e40;" (goto "goto") (statement_identifier "code_r0x00030e40") (; ";"))) (goto_statement "goto code_r0x00030ce9;" (goto "goto") (statement_identifier "code_r0x00030ce9") (; ";")) (} "}"))) (labeled_statement "code_r0x00030dfc:\n              uVar14 = uStack_c0;" (statement_identifier "code_r0x00030dfc") (: ":") (expression_statement "uVar14 = uStack_c0;" (assignment_expression "uVar14 = uStack_c0" (identifier "uVar14") (= "=") (identifier "uStack_c0")) (; ";"))) (labeled_statement "joined_r0x00030e0b:\n              if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }" (statement_identifier "joined_r0x00030e0b") (: ":") (if_statement "if (0x7fff < (int)uVar14) {\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }" (if "if") (parenthesized_expression "(0x7fff < (int)uVar14)" (( "(") (binary_expression "0x7fff < (int)uVar14" (number_literal "0x7fff") (< "<") (cast_expression "(int)uVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar14"))) () ")")) (compound_statement "{\n                *param_6 = 0xf;\n                goto code_r0x00030e4a;\n              }" ({ "{") (expression_statement "*param_6 = 0xf;" (assignment_expression "*param_6 = 0xf" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (number_literal "0xf")) (; ";")) (goto_statement "goto code_r0x00030e4a;" (goto "goto") (statement_identifier "code_r0x00030e4a") (; ";")) (} "}")))) (expression_statement "iVar3 = FUN_000300e0();" (assignment_expression "iVar3 = FUN_000300e0()" (identifier "iVar3") (= "=") (call_expression "FUN_000300e0()" (identifier "FUN_000300e0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;" (assignment_expression "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3" (pointer_expression "*(int *)(param_1 + 0x28)" (* "*") (cast_expression "(int *)(param_1 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (binary_expression "*(int *)(param_1 + 0x28) + iVar3" (pointer_expression "*(int *)(param_1 + 0x28)" (* "*") (cast_expression "(int *)(param_1 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (+ "+") (identifier "iVar3"))) (; ";")) (if_statement "if (local_b0 == 0) goto code_r0x00030d10;" (if "if") (parenthesized_expression "(local_b0 == 0)" (( "(") (binary_expression "local_b0 == 0" (identifier "local_b0") (== "==") (number_literal "0")) () ")")) (goto_statement "goto code_r0x00030d10;" (goto "goto") (statement_identifier "code_r0x00030d10") (; ";"))) (if_statement "if (uStack_c0 != 0 || uVar15 != 0) {\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }" (if "if") (parenthesized_expression "(uStack_c0 != 0 || uVar15 != 0)" (( "(") (binary_expression "uStack_c0 != 0 || uVar15 != 0" (binary_expression "uStack_c0 != 0" (identifier "uStack_c0") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "uVar15 != 0" (identifier "uVar15") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n                if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }\n                if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }\n                iVar3 = iStack_a4;\n                if (uStack_c0 != uVar15) goto code_r0x00030e9c;\n                goto code_r0x00030b08;\n              }" ({ "{") (if_statement "if ((int)uVar15 < 1) {\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }" (if "if") (parenthesized_expression "((int)uVar15 < 1)" (( "(") (binary_expression "(int)uVar15 < 1" (cast_expression "(int)uVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar15")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n                  iStack_a4 = 0;\n                  iVar3 = local_b0;\n                  goto code_r0x00030eb9;\n                }" ({ "{") (expression_statement "iStack_a4 = 0;" (assignment_expression "iStack_a4 = 0" (identifier "iStack_a4") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar3 = local_b0;" (assignment_expression "iVar3 = local_b0" (identifier "iVar3") (= "=") (identifier "local_b0")) (; ";")) (goto_statement "goto code_r0x00030eb9;" (goto "goto") (statement_identifier "code_r0x00030eb9") (; ";")) (} "}"))) (if_statement "if (uVar15 != 1) {\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }" (if "if") (parenthesized_expression "(uVar15 != 1)" (( "(") (binary_expression "uVar15 != 1" (identifier "uVar15") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n                  iVar3 = 2;\n                  do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);\n                }" ({ "{") (expression_statement "iVar3 = 2;" (assignment_expression "iVar3 = 2" (identifier "iVar3") (= "=") (number_literal "2")) (; ";")) (do_statement "do {\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  } while (iVar3 <= (int)uVar15);" (do "do") (compound_statement "{\n                    iVar16 = FUN_00028410();\n                    cStack_64 = '\x10';\n                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);\n                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;\n                    iVar3 = iVar3 + 1;\n                  }" ({ "{") (expression_statement "iVar16 = FUN_00028410();" (assignment_expression "iVar16 = FUN_00028410()" (identifier "iVar16") (= "=") (call_expression "FUN_00028410()" (identifier "FUN_00028410") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "cStack_64 = '\x10';" (assignment_expression "cStack_64 = '\x10'" (identifier "cStack_64") (= "=") (char_literal "'\x10'" (' "'") (escape_sequence "\x10") (' "'"))) (; ";")) (expression_statement "iStack_a4 = FUN_00028330(iVar16,&puStack_68);" (assignment_expression "iStack_a4 = FUN_00028330(iVar16,&puStack_68)" (identifier "iStack_a4") (= "=") (call_expression "FUN_00028330(iVar16,&puStack_68)" (identifier "FUN_00028330") (argument_list "(iVar16,&puStack_68)" (( "(") (identifier "iVar16") (, ",") (pointer_expression "&puStack_68" (& "&") (identifier "puStack_68")) () ")")))) (; ";")) (if_statement "if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;" (if "if") (parenthesized_expression "((iVar16 == 0) || (iStack_a4 == 0))" (( "(") (binary_expression "(iVar16 == 0) || (iStack_a4 == 0)" (parenthesized_expression "(iVar16 == 0)" (( "(") (binary_expression "iVar16 == 0" (identifier "iVar16") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iStack_a4 == 0)" (( "(") (binary_expression "iStack_a4 == 0" (identifier "iStack_a4") (== "==") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto code_r0x00030be0;" (goto "goto") (statement_identifier "code_r0x00030be0") (; ";"))) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar3 <= (int)uVar15)" (( "(") (binary_expression "iVar3 <= (int)uVar15" (identifier "iVar3") (<= "<=") (cast_expression "(int)uVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar15"))) () ")")) (; ";")) (} "}"))) (expression_statement "iVar3 = iStack_a4;" (assignment_expression "iVar3 = iStack_a4" (identifier "iVar3") (= "=") (identifier "iStack_a4")) (; ";")) (if_statement "if (uStack_c0 != uVar15) goto code_r0x00030e9c;" (if "if") (parenthesized_expression "(uStack_c0 != uVar15)" (( "(") (binary_expression "uStack_c0 != uVar15" (identifier "uStack_c0") (!= "!=") (identifier "uVar15")) () ")")) (goto_statement "goto code_r0x00030e9c;" (goto "goto") (statement_identifier "code_r0x00030e9c") (; ";"))) (goto_statement "goto code_r0x00030b08;" (goto "goto") (statement_identifier "code_r0x00030b08") (; ";")) (} "}"))) (expression_statement "FUN_00025a40();" (call_expression "FUN_00025a40()" (identifier "FUN_00025a40") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (*param_6 == 0) goto code_r0x00030d1e;" (if "if") (parenthesized_expression "(*param_6 == 0)" (( "(") (binary_expression "*param_6 == 0" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto code_r0x00030d1e;" (goto "goto") (statement_identifier "code_r0x00030d1e") (; ";"))) (goto_statement "goto code_r0x00030bea;" (goto "goto") (statement_identifier "code_r0x00030bea") (; ";")) (} "}"))) (labeled_statement "code_r0x00030cd8:\n            if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }" (statement_identifier "code_r0x00030cd8") (: ":") (if_statement "if ((param_4 & 0x200000) == 0) {\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }" (if "if") (parenthesized_expression "((param_4 & 0x200000) == 0)" (( "(") (binary_expression "(param_4 & 0x200000) == 0" (parenthesized_expression "(param_4 & 0x200000)" (( "(") (binary_expression "param_4 & 0x200000" (identifier "param_4") (& "&") (number_literal "0x200000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;\n              *param_6 = 9;\n              goto code_r0x00030e4a;\n            }" ({ "{") (if_statement "if ((char)param_3[1] != '\x02') goto code_r0x00030e40;" (if "if") (parenthesized_expression "((char)param_3[1] != '\x02')" (( "(") (binary_expression "(char)param_3[1] != '\x02'" (cast_expression "(char)param_3[1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) (!= "!=") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (goto_statement "goto code_r0x00030e40;" (goto "goto") (statement_identifier "code_r0x00030e40") (; ";"))) (expression_statement "*param_6 = 9;" (assignment_expression "*param_6 = 9" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (number_literal "9")) (; ";")) (goto_statement "goto code_r0x00030e4a;" (goto "goto") (statement_identifier "code_r0x00030e4a") (; ";")) (} "}")))) (labeled_statement "code_r0x00030ce9:\n            *(undefined4 *)(param_1 + 0x28) = uVar6;" (statement_identifier "code_r0x00030ce9") (: ":") (expression_statement "*(undefined4 *)(param_1 + 0x28) = uVar6;" (assignment_expression "*(undefined4 *)(param_1 + 0x28) = uVar6" (pointer_expression "*(undefined4 *)(param_1 + 0x28)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (identifier "uVar6")) (; ";"))) (expression_statement "*param_3 = uVar14;" (assignment_expression "*param_3 = uVar14" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "uVar14")) (; ";")) (expression_statement "param_3[1] = uVar13;" (assignment_expression "param_3[1] = uVar13" (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "*(char *)(param_3 + 1) = '\x01';" (assignment_expression "*(char *)(param_3 + 1) = '\x01'" (pointer_expression "*(char *)(param_3 + 1)" (* "*") (cast_expression "(char *)(param_3 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 1)" (( "(") (binary_expression "param_3 + 1" (identifier "param_3") (+ "+") (number_literal "1")) () ")")))) (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (expression_statement "iVar3 = local_b0;" (assignment_expression "iVar3 = local_b0" (identifier "iVar3") (= "=") (identifier "local_b0")) (; ";")) (labeled_statement "code_r0x00030af2:\n            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;" (statement_identifier "code_r0x00030af2") (: ":") (if_statement "if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;" (if "if") (parenthesized_expression "((*param_6 == 0) || (iVar3 != 0))" (( "(") (binary_expression "(*param_6 == 0) || (iVar3 != 0)" (parenthesized_expression "(*param_6 == 0)" (( "(") (binary_expression "*param_6 == 0" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto code_r0x00030b08;" (goto "goto") (statement_identifier "code_r0x00030b08") (; ";")))) (} "}")))) (labeled_statement "code_r0x00030e4a:\n          if (local_b0 == 0) goto LAB_00030e58;" (statement_identifier "code_r0x00030e4a") (: ":") (if_statement "if (local_b0 == 0) goto LAB_00030e58;" (if "if") (parenthesized_expression "(local_b0 == 0)" (( "(") (binary_expression "local_b0 == 0" (identifier "local_b0") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00030e58;" (goto "goto") (statement_identifier "LAB_00030e58") (; ";")))) (labeled_statement "code_r0x00030bea:\n          FUN_00025a40();" (statement_identifier "code_r0x00030bea") (: ":") (expression_statement "FUN_00025a40();" (call_expression "FUN_00025a40()" (identifier "FUN_00025a40") (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" (identifier "local_b0") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00030965;" (goto "goto") (statement_identifier "LAB_00030965") (; ";")) (} "}"))) (expression_statement "uVar15 = (uint)(bVar17 == 0x12);" (assignment_expression "uVar15 = (uint)(bVar17 == 0x12)" (identifier "uVar15") (= "=") (call_expression "(uint)(bVar17 == 0x12)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(bVar17 == 0x12)" (( "(") (binary_expression "bVar17 == 0x12" (identifier "bVar17") (== "==") (number_literal "0x12")) () ")")))) (; ";")) (if_statement "if (bVar17 == 0x13) {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 == 0) goto code_r0x00030d10;\n          if (*(char *)(local_b0 + 0x18) == '\x11') {\n            uStack_c0 = 1;\n            iStack_a4 = 0;\n            goto code_r0x00030c76;\n          }\n          uStack_c0 = 1;\n          cStack_64 = '\n';\n          iStack_a4 = 0;\ncode_r0x00030a18:\n          iVar3 = FUN_00028330(0,&puStack_68);\n          if (iVar3 == 0) {\ncode_r0x00030be0:\n            *param_6 = 0xc;\n            goto code_r0x00030bea;\n          }\n          for (iVar16 = uVar15 + 2; iVar16 <= (int)uStack_c0; iVar16 = iVar16 + 1) {\n            iVar3 = FUN_00028410();\n            cStack_64 = '\x10';\n            iVar4 = FUN_00028330(iVar3,&puStack_68);\n            if ((iVar3 == 0) || (iVar4 == 0)) goto code_r0x00030be0;\n            cStack_64 = '\n';\n            iVar3 = FUN_00028330(0,&puStack_68);\n            if (iVar3 == 0) goto code_r0x00030be0;\n          }\n          if (iStack_a4 != 0) {\n            cStack_64 = '\x10';\n            iVar3 = FUN_00028330(iVar3,&puStack_68);\n            goto code_r0x00030af2;\n          }\n        }\n        else {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 != 0) {\n            if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }\n            uStack_c0 = 0xffffffff;\n            uVar15 = 1;\ncode_r0x00030e9c:\n            iVar3 = FUN_00028410();\n            if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }\n            goto code_r0x00030be0;\n          }\ncode_r0x00030d10:\n          if (*param_6 != 0) goto LAB_00030e58;\ncode_r0x00030d1e:\n          local_b0 = 0;\n          iVar3 = local_b0;\n        }" (if "if") (parenthesized_expression "(bVar17 == 0x13)" (( "(") (binary_expression "bVar17 == 0x13" (identifier "bVar17") (== "==") (number_literal "0x13")) () ")")) (compound_statement "{\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 == 0) goto code_r0x00030d10;\n          if (*(char *)(local_b0 + 0x18) == '\x11') {\n            uStack_c0 = 1;\n            iStack_a4 = 0;\n            goto code_r0x00030c76;\n          }\n          uStack_c0 = 1;\n          cStack_64 = '\n';\n          iStack_a4 = 0;\ncode_r0x00030a18:\n          iVar3 = FUN_00028330(0,&puStack_68);\n          if (iVar3 == 0) {\ncode_r0x00030be0:\n            *param_6 = 0xc;\n            goto code_r0x00030bea;\n          }\n          for (iVar16 = uVar15 + 2; iVar16 <= (int)uStack_c0; iVar16 = iVar16 + 1) {\n            iVar3 = FUN_00028410();\n            cStack_64 = '\x10';\n            iVar4 = FUN_00028330(iVar3,&puStack_68);\n            if ((iVar3 == 0) || (iVar4 == 0)) goto code_r0x00030be0;\n            cStack_64 = '\n';\n            iVar3 = FUN_00028330(0,&puStack_68);\n            if (iVar3 == 0) goto code_r0x00030be0;\n          }\n          if (iStack_a4 != 0) {\n            cStack_64 = '\x10';\n            iVar3 = FUN_00028330(iVar3,&puStack_68);\n            goto code_r0x00030af2;\n          }\n        }" ({ "{") (expression_statement "iVar3 = FUN_000300e0();" (assignment_expression "iVar3 = FUN_000300e0()" (identifier "iVar3") (= "=") (call_expression "FUN_000300e0()" (identifier "FUN_000300e0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;" (assignment_expression "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3" (pointer_expression "*(int *)(param_1 + 0x28)" (* "*") (cast_expression "(int *)(param_1 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (binary_expression "*(int *)(param_1 + 0x28) + iVar3" (pointer_expression "*(int *)(param_1 + 0x28)" (* "*") (cast_expression "(int *)(param_1 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (+ "+") (identifier "iVar3"))) (; ";")) (if_statement "if (local_b0 == 0) goto code_r0x00030d10;" (if "if") (parenthesized_expression "(local_b0 == 0)" (( "(") (binary_expression "local_b0 == 0" (identifier "local_b0") (== "==") (number_literal "0")) () ")")) (goto_statement "goto code_r0x00030d10;" (goto "goto") (statement_identifier "code_r0x00030d10") (; ";"))) (if_statement "if (*(char *)(local_b0 + 0x18) == '\x11') {\n            uStack_c0 = 1;\n            iStack_a4 = 0;\n            goto code_r0x00030c76;\n          }" (if "if") (parenthesized_expression "(*(char *)(local_b0 + 0x18) == '\x11')" (( "(") (binary_expression "*(char *)(local_b0 + 0x18) == '\x11'" (pointer_expression "*(char *)(local_b0 + 0x18)" (* "*") (cast_expression "(char *)(local_b0 + 0x18)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_b0 + 0x18)" (( "(") (binary_expression "local_b0 + 0x18" (identifier "local_b0") (+ "+") (number_literal "0x18")) () ")")))) (== "==") (char_literal "'\x11'" (' "'") (escape_sequence "\x11") (' "'"))) () ")")) (compound_statement "{\n            uStack_c0 = 1;\n            iStack_a4 = 0;\n            goto code_r0x00030c76;\n          }" ({ "{") (expression_statement "uStack_c0 = 1;" (assignment_expression "uStack_c0 = 1" (identifier "uStack_c0") (= "=") (number_literal "1")) (; ";")) (expression_statement "iStack_a4 = 0;" (assignment_expression "iStack_a4 = 0" (identifier "iStack_a4") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto code_r0x00030c76;" (goto "goto") (statement_identifier "code_r0x00030c76") (; ";")) (} "}"))) (expression_statement "uStack_c0 = 1;" (assignment_expression "uStack_c0 = 1" (identifier "uStack_c0") (= "=") (number_literal "1")) (; ";")) (expression_statement "cStack_64 = '\n';" (assignment_expression "cStack_64 = '\n'" (identifier "cStack_64") (= "=") (char_literal "'\n'" (' "'") (escape_sequence "\n") (' "'"))) (; ";")) (expression_statement "iStack_a4 = 0;" (assignment_expression "iStack_a4 = 0" (identifier "iStack_a4") (= "=") (number_literal "0")) (; ";")) (labeled_statement "code_r0x00030a18:\n          iVar3 = FUN_00028330(0,&puStack_68);" (statement_identifier "code_r0x00030a18") (: ":") (expression_statement "iVar3 = FUN_00028330(0,&puStack_68);" (assignment_expression "iVar3 = FUN_00028330(0,&puStack_68)" (identifier "iVar3") (= "=") (call_expression "FUN_00028330(0,&puStack_68)" (identifier "FUN_00028330") (argument_list "(0,&puStack_68)" (( "(") (number_literal "0") (, ",") (pointer_expression "&puStack_68" (& "&") (identifier "puStack_68")) () ")")))) (; ";"))) (if_statement "if (iVar3 == 0) {\ncode_r0x00030be0:\n            *param_6 = 0xc;\n            goto code_r0x00030bea;\n          }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\ncode_r0x00030be0:\n            *param_6 = 0xc;\n            goto code_r0x00030bea;\n          }" ({ "{") (labeled_statement "code_r0x00030be0:\n            *param_6 = 0xc;" (statement_identifier "code_r0x00030be0") (: ":") (expression_statement "*param_6 = 0xc;" (assignment_expression "*param_6 = 0xc" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (number_literal "0xc")) (; ";"))) (goto_statement "goto code_r0x00030bea;" (goto "goto") (statement_identifier "code_r0x00030bea") (; ";")) (} "}"))) (for_statement "for (iVar16 = uVar15 + 2; iVar16 <= (int)uStack_c0; iVar16 = iVar16 + 1) {\n            iVar3 = FUN_00028410();\n            cStack_64 = '\x10';\n            iVar4 = FUN_00028330(iVar3,&puStack_68);\n            if ((iVar3 == 0) || (iVar4 == 0)) goto code_r0x00030be0;\n            cStack_64 = '\n';\n            iVar3 = FUN_00028330(0,&puStack_68);\n            if (iVar3 == 0) goto code_r0x00030be0;\n          }" (for "for") (( "(") (assignment_expression "iVar16 = uVar15 + 2" (identifier "iVar16") (= "=") (binary_expression "uVar15 + 2" (identifier "uVar15") (+ "+") (number_literal "2"))) (; ";") (binary_expression "iVar16 <= (int)uStack_c0" (identifier "iVar16") (<= "<=") (cast_expression "(int)uStack_c0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uStack_c0"))) (; ";") (assignment_expression "iVar16 = iVar16 + 1" (identifier "iVar16") (= "=") (binary_expression "iVar16 + 1" (identifier "iVar16") (+ "+") (number_literal "1"))) () ")") (compound_statement "{\n            iVar3 = FUN_00028410();\n            cStack_64 = '\x10';\n            iVar4 = FUN_00028330(iVar3,&puStack_68);\n            if ((iVar3 == 0) || (iVar4 == 0)) goto code_r0x00030be0;\n            cStack_64 = '\n';\n            iVar3 = FUN_00028330(0,&puStack_68);\n            if (iVar3 == 0) goto code_r0x00030be0;\n          }" ({ "{") (expression_statement "iVar3 = FUN_00028410();" (assignment_expression "iVar3 = FUN_00028410()" (identifier "iVar3") (= "=") (call_expression "FUN_00028410()" (identifier "FUN_00028410") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "cStack_64 = '\x10';" (assignment_expression "cStack_64 = '\x10'" (identifier "cStack_64") (= "=") (char_literal "'\x10'" (' "'") (escape_sequence "\x10") (' "'"))) (; ";")) (expression_statement "iVar4 = FUN_00028330(iVar3,&puStack_68);" (assignment_expression "iVar4 = FUN_00028330(iVar3,&puStack_68)" (identifier "iVar4") (= "=") (call_expression "FUN_00028330(iVar3,&puStack_68)" (identifier "FUN_00028330") (argument_list "(iVar3,&puStack_68)" (( "(") (identifier "iVar3") (, ",") (pointer_expression "&puStack_68" (& "&") (identifier "puStack_68")) () ")")))) (; ";")) (if_statement "if ((iVar3 == 0) || (iVar4 == 0)) goto code_r0x00030be0;" (if "if") (parenthesized_expression "((iVar3 == 0) || (iVar4 == 0))" (( "(") (binary_expression "(iVar3 == 0) || (iVar4 == 0)" (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto code_r0x00030be0;" (goto "goto") (statement_identifier "code_r0x00030be0") (; ";"))) (expression_statement "cStack_64 = '\n';" (assignment_expression "cStack_64 = '\n'" (identifier "cStack_64") (= "=") (char_literal "'\n'" (' "'") (escape_sequence "\n") (' "'"))) (; ";")) (expression_statement "iVar3 = FUN_00028330(0,&puStack_68);" (assignment_expression "iVar3 = FUN_00028330(0,&puStack_68)" (identifier "iVar3") (= "=") (call_expression "FUN_00028330(0,&puStack_68)" (identifier "FUN_00028330") (argument_list "(0,&puStack_68)" (( "(") (number_literal "0") (, ",") (pointer_expression "&puStack_68" (& "&") (identifier "puStack_68")) () ")")))) (; ";")) (if_statement "if (iVar3 == 0) goto code_r0x00030be0;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto code_r0x00030be0;" (goto "goto") (statement_identifier "code_r0x00030be0") (; ";"))) (} "}"))) (if_statement "if (iStack_a4 != 0) {\n            cStack_64 = '\x10';\n            iVar3 = FUN_00028330(iVar3,&puStack_68);\n            goto code_r0x00030af2;\n          }" (if "if") (parenthesized_expression "(iStack_a4 != 0)" (( "(") (binary_expression "iStack_a4 != 0" (identifier "iStack_a4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            cStack_64 = '\x10';\n            iVar3 = FUN_00028330(iVar3,&puStack_68);\n            goto code_r0x00030af2;\n          }" ({ "{") (expression_statement "cStack_64 = '\x10';" (assignment_expression "cStack_64 = '\x10'" (identifier "cStack_64") (= "=") (char_literal "'\x10'" (' "'") (escape_sequence "\x10") (' "'"))) (; ";")) (expression_statement "iVar3 = FUN_00028330(iVar3,&puStack_68);" (assignment_expression "iVar3 = FUN_00028330(iVar3,&puStack_68)" (identifier "iVar3") (= "=") (call_expression "FUN_00028330(iVar3,&puStack_68)" (identifier "FUN_00028330") (argument_list "(iVar3,&puStack_68)" (( "(") (identifier "iVar3") (, ",") (pointer_expression "&puStack_68" (& "&") (identifier "puStack_68")) () ")")))) (; ";")) (goto_statement "goto code_r0x00030af2;" (goto "goto") (statement_identifier "code_r0x00030af2") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 != 0) {\n            if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }\n            uStack_c0 = 0xffffffff;\n            uVar15 = 1;\ncode_r0x00030e9c:\n            iVar3 = FUN_00028410();\n            if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }\n            goto code_r0x00030be0;\n          }\ncode_r0x00030d10:\n          if (*param_6 != 0) goto LAB_00030e58;\ncode_r0x00030d1e:\n          local_b0 = 0;\n          iVar3 = local_b0;\n        }" (else "else") (compound_statement "{\n          iVar3 = FUN_000300e0();\n          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n          if (local_b0 != 0) {\n            if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }\n            uStack_c0 = 0xffffffff;\n            uVar15 = 1;\ncode_r0x00030e9c:\n            iVar3 = FUN_00028410();\n            if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }\n            goto code_r0x00030be0;\n          }\ncode_r0x00030d10:\n          if (*param_6 != 0) goto LAB_00030e58;\ncode_r0x00030d1e:\n          local_b0 = 0;\n          iVar3 = local_b0;\n        }" ({ "{") (expression_statement "iVar3 = FUN_000300e0();" (assignment_expression "iVar3 = FUN_000300e0()" (identifier "iVar3") (= "=") (call_expression "FUN_000300e0()" (identifier "FUN_000300e0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;" (assignment_expression "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3" (pointer_expression "*(int *)(param_1 + 0x28)" (* "*") (cast_expression "(int *)(param_1 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (binary_expression "*(int *)(param_1 + 0x28) + iVar3" (pointer_expression "*(int *)(param_1 + 0x28)" (* "*") (cast_expression "(int *)(param_1 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (+ "+") (identifier "iVar3"))) (; ";")) (if_statement "if (local_b0 != 0) {\n            if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }\n            uStack_c0 = 0xffffffff;\n            uVar15 = 1;\ncode_r0x00030e9c:\n            iVar3 = FUN_00028410();\n            if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }\n            goto code_r0x00030be0;\n          }" (if "if") (parenthesized_expression "(local_b0 != 0)" (( "(") (binary_expression "local_b0 != 0" (identifier "local_b0") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }\n            uStack_c0 = 0xffffffff;\n            uVar15 = 1;\ncode_r0x00030e9c:\n            iVar3 = FUN_00028410();\n            if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }\n            goto code_r0x00030be0;\n          }" ({ "{") (if_statement "if (bVar17 != 0x12) {\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }" (if "if") (parenthesized_expression "(bVar17 != 0x12)" (( "(") (binary_expression "bVar17 != 0x12" (identifier "bVar17") (!= "!=") (number_literal "0x12")) () ")")) (compound_statement "{\n              if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }\n              uStack_c0 = 0xffffffff;\n              uVar15 = 0;\n              iStack_a4 = 0;\ncode_r0x00030a13:\n              cStack_64 = '\v';\n              goto code_r0x00030a18;\n            }" ({ "{") (if_statement "if (*(char *)(local_b0 + 0x18) == '\x11') {\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }" (if "if") (parenthesized_expression "(*(char *)(local_b0 + 0x18) == '\x11')" (( "(") (binary_expression "*(char *)(local_b0 + 0x18) == '\x11'" (pointer_expression "*(char *)(local_b0 + 0x18)" (* "*") (cast_expression "(char *)(local_b0 + 0x18)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_b0 + 0x18)" (( "(") (binary_expression "local_b0 + 0x18" (identifier "local_b0") (+ "+") (number_literal "0x18")) () ")")))) (== "==") (char_literal "'\x11'" (' "'") (escape_sequence "\x11") (' "'"))) () ")")) (compound_statement "{\n                uStack_c0 = 0xffffffff;\n                uVar15 = 0;\n                iStack_a4 = 0;\ncode_r0x00030c76:\n                FUN_00025a40();\n                goto code_r0x00030c8a;\n              }" ({ "{") (expression_statement "uStack_c0 = 0xffffffff;" (assignment_expression "uStack_c0 = 0xffffffff" (identifier "uStack_c0") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" (identifier "uVar15") (= "=") (number_literal "0")) (; ";")) (expression_statement "iStack_a4 = 0;" (assignment_expression "iStack_a4 = 0" (identifier "iStack_a4") (= "=") (number_literal "0")) (; ";")) (labeled_statement "code_r0x00030c76:\n                FUN_00025a40();" (statement_identifier "code_r0x00030c76") (: ":") (expression_statement "FUN_00025a40();" (call_expression "FUN_00025a40()" (identifier "FUN_00025a40") (argument_list "()" (( "(") () ")"))) (; ";"))) (goto_statement "goto code_r0x00030c8a;" (goto "goto") (statement_identifier "code_r0x00030c8a") (; ";")) (} "}"))) (expression_statement "uStack_c0 = 0xffffffff;" (assignment_expression "uStack_c0 = 0xffffffff" (identifier "uStack_c0") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" (identifier "uVar15") (= "=") (number_literal "0")) (; ";")) (expression_statement "iStack_a4 = 0;" (assignment_expression "iStack_a4 = 0" (identifier "iStack_a4") (= "=") (number_literal "0")) (; ";")) (labeled_statement "code_r0x00030a13:\n              cStack_64 = '\v';" (statement_identifier "code_r0x00030a13") (: ":") (expression_statement "cStack_64 = '\v';" (assignment_expression "cStack_64 = '\v'" (identifier "cStack_64") (= "=") (char_literal "'\v'" (' "'") (escape_sequence "\v") (' "'"))) (; ";"))) (goto_statement "goto code_r0x00030a18;" (goto "goto") (statement_identifier "code_r0x00030a18") (; ";")) (} "}"))) (expression_statement "uStack_c0 = 0xffffffff;" (assignment_expression "uStack_c0 = 0xffffffff" (identifier "uStack_c0") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "uVar15 = 1;" (assignment_expression "uVar15 = 1" (identifier "uVar15") (= "=") (number_literal "1")) (; ";")) (labeled_statement "code_r0x00030e9c:\n            iVar3 = FUN_00028410();" (statement_identifier "code_r0x00030e9c") (: ":") (expression_statement "iVar3 = FUN_00028410();" (assignment_expression "iVar3 = FUN_00028410()" (identifier "iVar3") (= "=") (call_expression "FUN_00028410()" (identifier "FUN_00028410") (argument_list "()" (( "(") () ")")))) (; ";"))) (if_statement "if (iVar3 != 0) {\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\ncode_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;\ncode_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }\n              goto code_r0x00030a13;\n            }" ({ "{") (labeled_statement "code_r0x00030eb9:\n              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;" (statement_identifier "code_r0x00030eb9") (: ":") (if_statement "if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;" (if "if") (parenthesized_expression "(*(char *)(iVar3 + 0x18) == '\x11')" (( "(") (binary_expression "*(char *)(iVar3 + 0x18) == '\x11'" (pointer_expression "*(char *)(iVar3 + 0x18)" (* "*") (cast_expression "(char *)(iVar3 + 0x18)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x18)" (( "(") (binary_expression "iVar3 + 0x18" (identifier "iVar3") (+ "+") (number_literal "0x18")) () ")")))) (== "==") (char_literal "'\x11'" (' "'") (escape_sequence "\x11") (' "'"))) () ")")) (goto_statement "goto code_r0x00030c76;" (goto "goto") (statement_identifier "code_r0x00030c76") (; ";")))) (labeled_statement "code_r0x00030c8a:\n              if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }" (statement_identifier "code_r0x00030c8a") (: ":") (if_statement "if (uStack_c0 != 0xffffffff) {\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }" (if "if") (parenthesized_expression "(uStack_c0 != 0xffffffff)" (( "(") (binary_expression "uStack_c0 != 0xffffffff" (identifier "uStack_c0") (!= "!=") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n                cStack_64 = '\n';\n                goto code_r0x00030a18;\n              }" ({ "{") (expression_statement "cStack_64 = '\n';" (assignment_expression "cStack_64 = '\n'" (identifier "cStack_64") (= "=") (char_literal "'\n'" (' "'") (escape_sequence "\n") (' "'"))) (; ";")) (goto_statement "goto code_r0x00030a18;" (goto "goto") (statement_identifier "code_r0x00030a18") (; ";")) (} "}")))) (goto_statement "goto code_r0x00030a13;" (goto "goto") (statement_identifier "code_r0x00030a13") (; ";")) (} "}"))) (goto_statement "goto code_r0x00030be0;" (goto "goto") (statement_identifier "code_r0x00030be0") (; ";")) (} "}"))) (labeled_statement "code_r0x00030d10:\n          if (*param_6 != 0) goto LAB_00030e58;" (statement_identifier "code_r0x00030d10") (: ":") (if_statement "if (*param_6 != 0) goto LAB_00030e58;" (if "if") (parenthesized_expression "(*param_6 != 0)" (( "(") (binary_expression "*param_6 != 0" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00030e58;" (goto "goto") (statement_identifier "LAB_00030e58") (; ";")))) (labeled_statement "code_r0x00030d1e:\n          local_b0 = 0;" (statement_identifier "code_r0x00030d1e") (: ":") (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" (identifier "local_b0") (= "=") (number_literal "0")) (; ";"))) (expression_statement "iVar3 = local_b0;" (assignment_expression "iVar3 = local_b0" (identifier "iVar3") (= "=") (identifier "local_b0")) (; ";")) (} "}")))) (labeled_statement "code_r0x00030b08:\n        local_b0 = iVar3;" (statement_identifier "code_r0x00030b08") (: ":") (expression_statement "local_b0 = iVar3;" (assignment_expression "local_b0 = iVar3" (identifier "local_b0") (= "=") (identifier "iVar3")) (; ";"))) (expression_statement "bVar17 = (byte)param_3[1];" (assignment_expression "bVar17 = (byte)param_3[1]" (identifier "bVar17") (= "=") (cast_expression "(byte)param_3[1]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "uVar14 = (uint)bVar17;" (assignment_expression "uVar14 = (uint)bVar17" (identifier "uVar14") (= "=") (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(((param_4 & 0x1000000) == 0) || ((bVar17 != 0xb && (bVar17 != 0x17))))" (( "(") (binary_expression "((param_4 & 0x1000000) == 0) || ((bVar17 != 0xb && (bVar17 != 0x17)))" (parenthesized_expression "((param_4 & 0x1000000) == 0)" (( "(") (binary_expression "(param_4 & 0x1000000) == 0" (parenthesized_expression "(param_4 & 0x1000000)" (( "(") (binary_expression "param_4 & 0x1000000" (identifier "param_4") (& "&") (number_literal "0x1000000")) () ")")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((bVar17 != 0xb && (bVar17 != 0x17)))" (( "(") (parenthesized_expression "(bVar17 != 0xb && (bVar17 != 0x17))" (( "(") (binary_expression "bVar17 != 0xb && (bVar17 != 0x17)" (binary_expression "bVar17 != 0xb" (identifier "bVar17") (!= "!=") (number_literal "0xb")) (&& "&&") (parenthesized_expression "(bVar17 != 0x17)" (( "(") (binary_expression "bVar17 != 0x17" (identifier "bVar17") (!= "!=") (number_literal "0x17")) () ")"))) () ")")) () ")"))) () ")")) (; ";")) (if_statement "if (local_b0 != 0) {\n        FUN_00025a40();\n      }" (if "if") (parenthesized_expression "(local_b0 != 0)" (( "(") (binary_expression "local_b0 != 0" (identifier "local_b0") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_00025a40();\n      }" ({ "{") (expression_statement "FUN_00025a40();" (call_expression "FUN_00025a40()" (identifier "FUN_00025a40") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (goto_statement "goto code_r0x00030b48;" (goto "goto") (statement_identifier "code_r0x00030b48") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case '\v':" (case "case") (char_literal "'\v'" (' "'") (escape_sequence "\v") (' "'")) (: ":")) (case_statement "case '\x12':" (case "case") (char_literal "'\x12'" (' "'") (escape_sequence "\x12") (' "'")) (: ":")) (case_statement "case '\x13':\ncode_r0x000308ec:\n    if ((param_4 & 0x20) == 0) {\n      if ((param_4 & 0x10) != 0) {\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        local_b0 = FUN_00030880(param_4,param_5,param_6);\n        goto LAB_00030965;\n      }\n      if (cVar2 == '\t') goto code_r0x000313dd;\n      goto code_r0x00030910;\n    }\n    goto code_r0x00030b48;" (case "case") (char_literal "'\x13'" (' "'") (escape_sequence "\x13") (' "'")) (: ":") (labeled_statement "code_r0x000308ec:\n    if ((param_4 & 0x20) == 0) {\n      if ((param_4 & 0x10) != 0) {\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        local_b0 = FUN_00030880(param_4,param_5,param_6);\n        goto LAB_00030965;\n      }\n      if (cVar2 == '\t') goto code_r0x000313dd;\n      goto code_r0x00030910;\n    }" (statement_identifier "code_r0x000308ec") (: ":") (if_statement "if ((param_4 & 0x20) == 0) {\n      if ((param_4 & 0x10) != 0) {\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        local_b0 = FUN_00030880(param_4,param_5,param_6);\n        goto LAB_00030965;\n      }\n      if (cVar2 == '\t') goto code_r0x000313dd;\n      goto code_r0x00030910;\n    }" (if "if") (parenthesized_expression "((param_4 & 0x20) == 0)" (( "(") (binary_expression "(param_4 & 0x20) == 0" (parenthesized_expression "(param_4 & 0x20)" (( "(") (binary_expression "param_4 & 0x20" (identifier "param_4") (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if ((param_4 & 0x10) != 0) {\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        local_b0 = FUN_00030880(param_4,param_5,param_6);\n        goto LAB_00030965;\n      }\n      if (cVar2 == '\t') goto code_r0x000313dd;\n      goto code_r0x00030910;\n    }" ({ "{") (if_statement "if ((param_4 & 0x10) != 0) {\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        local_b0 = FUN_00030880(param_4,param_5,param_6);\n        goto LAB_00030965;\n      }" (if "if") (parenthesized_expression "((param_4 & 0x10) != 0)" (( "(") (binary_expression "(param_4 & 0x10) != 0" (parenthesized_expression "(param_4 & 0x10)" (( "(") (binary_expression "param_4 & 0x10" (identifier "param_4") (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar3 = FUN_000300e0();\n        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n        local_b0 = FUN_00030880(param_4,param_5,param_6);\n        goto LAB_00030965;\n      }" ({ "{") (expression_statement "iVar3 = FUN_000300e0();" (assignment_expression "iVar3 = FUN_000300e0()" (identifier "iVar3") (= "=") (call_expression "FUN_000300e0()" (identifier "FUN_000300e0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;" (assignment_expression "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3" (pointer_expression "*(int *)(param_1 + 0x28)" (* "*") (cast_expression "(int *)(param_1 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (binary_expression "*(int *)(param_1 + 0x28) + iVar3" (pointer_expression "*(int *)(param_1 + 0x28)" (* "*") (cast_expression "(int *)(param_1 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (+ "+") (identifier "iVar3"))) (; ";")) (expression_statement "local_b0 = FUN_00030880(param_4,param_5,param_6);" (assignment_expression "local_b0 = FUN_00030880(param_4,param_5,param_6)" (identifier "local_b0") (= "=") (call_expression "FUN_00030880(param_4,param_5,param_6)" (identifier "FUN_00030880") (argument_list "(param_4,param_5,param_6)" (( "(") (identifier "param_4") (, ",") (identifier "param_5") (, ",") (identifier "param_6") () ")")))) (; ";")) (goto_statement "goto LAB_00030965;" (goto "goto") (statement_identifier "LAB_00030965") (; ";")) (} "}"))) (if_statement "if (cVar2 == '\t') goto code_r0x000313dd;" (if "if") (parenthesized_expression "(cVar2 == '\t')" (( "(") (binary_expression "cVar2 == '\t'" (identifier "cVar2") (== "==") (char_literal "'\t'" (' "'") (escape_sequence "\t") (' "'"))) () ")")) (goto_statement "goto code_r0x000313dd;" (goto "goto") (statement_identifier "code_r0x000313dd") (; ";"))) (goto_statement "goto code_r0x00030910;" (goto "goto") (statement_identifier "code_r0x00030910") (; ";")) (} "}")))) (goto_statement "goto code_r0x00030b48;" (goto "goto") (statement_identifier "code_r0x00030b48") (; ";"))) (case_statement "case '\f':\n    uStack_c0 = *param_3;\n    if (((uStack_c0 & 0x30f) != 0) && (bVar17 = *(byte *)(iVar3 + 0x58), (bVar17 & 0x10) == 0)) {\n      *(byte *)(iVar3 + 0x58) = bVar17 | 0x10;\n      if ((bVar17 & 8) == 0) {\n        *(undefined4 *)(iVar3 + 0x60) = 0;\n        *(undefined4 *)(iVar3 + 100) = 0x3ff0000;\n        *(undefined4 *)(iVar3 + 0x68) = 0x87fffffe;\n        *(undefined4 *)(iVar3 + 0x6c) = 0x7fffffe;\n        if ((bVar17 & 4) != 0) {\n          *(undefined4 *)(iVar3 + 0x70) = 0;\n          *(undefined4 *)(iVar3 + 0x74) = 0;\n          *(undefined4 *)(iVar3 + 0x78) = 0;\n          *(undefined4 *)(iVar3 + 0x7c) = 0;\n          uStack_c0 = *param_3;\n          goto code_r0x00031089;\n        }\n        iVar4 = 0x80;\n        iVar16 = 4;\n      }\n      else {\n        iVar4 = 0;\n        iVar16 = 0;\n      }\n      ppuVar8 = __ctype_b_loc();\n      iVar16 = iVar3 + iVar16 * 4;\n      puVar9 = *ppuVar8 + iVar4;\n      do {\n        iVar12 = 0;\n        do {\n          if (((puVar9[iVar12] & 8) != 0) || (iVar4 + iVar12 == 0x5f)) {\n            *(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f);\n          }\n          iVar12 = iVar12 + 1;\n        } while (iVar12 != 0x20);\n        iVar4 = iVar4 + 0x20;\n        iVar16 = iVar16 + 4;\n        puVar9 = puVar9 + 0x20;\n      } while (iVar3 + 0x20 != iVar16);\n    }\ncode_r0x00031089:\n    if ((uStack_c0 - 0x100 & 0xfffffeff) == 0) {\n      if (uStack_c0 == 0x100) {\n        *param_3 = 6;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 9;\n      }\n      else {\n        *param_3 = 5;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 10;\n      }\n      iVar3 = FUN_00028330(0,param_3);\n      cStack_64 = '\n';\n      local_b0 = FUN_00028330(iVar3,&puStack_68);\n      if (uStack_c0 == 0 || iVar3 == 0) break;\n    }\n    else {\n      local_b0 = FUN_00028330(0,param_3);\n    }\n    if (local_b0 != 0) {\n      iVar3 = FUN_000300e0();\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n      goto LAB_00030965;\n    }\n    break;" (case "case") (char_literal "'\f'" (' "'") (escape_sequence "\f") (' "'")) (: ":") (expression_statement "uStack_c0 = *param_3;" (assignment_expression "uStack_c0 = *param_3" (identifier "uStack_c0") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (if_statement "if (((uStack_c0 & 0x30f) != 0) && (bVar17 = *(byte *)(iVar3 + 0x58), (bVar17 & 0x10) == 0)) {\n      *(byte *)(iVar3 + 0x58) = bVar17 | 0x10;\n      if ((bVar17 & 8) == 0) {\n        *(undefined4 *)(iVar3 + 0x60) = 0;\n        *(undefined4 *)(iVar3 + 100) = 0x3ff0000;\n        *(undefined4 *)(iVar3 + 0x68) = 0x87fffffe;\n        *(undefined4 *)(iVar3 + 0x6c) = 0x7fffffe;\n        if ((bVar17 & 4) != 0) {\n          *(undefined4 *)(iVar3 + 0x70) = 0;\n          *(undefined4 *)(iVar3 + 0x74) = 0;\n          *(undefined4 *)(iVar3 + 0x78) = 0;\n          *(undefined4 *)(iVar3 + 0x7c) = 0;\n          uStack_c0 = *param_3;\n          goto code_r0x00031089;\n        }\n        iVar4 = 0x80;\n        iVar16 = 4;\n      }\n      else {\n        iVar4 = 0;\n        iVar16 = 0;\n      }\n      ppuVar8 = __ctype_b_loc();\n      iVar16 = iVar3 + iVar16 * 4;\n      puVar9 = *ppuVar8 + iVar4;\n      do {\n        iVar12 = 0;\n        do {\n          if (((puVar9[iVar12] & 8) != 0) || (iVar4 + iVar12 == 0x5f)) {\n            *(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f);\n          }\n          iVar12 = iVar12 + 1;\n        } while (iVar12 != 0x20);\n        iVar4 = iVar4 + 0x20;\n        iVar16 = iVar16 + 4;\n        puVar9 = puVar9 + 0x20;\n      } while (iVar3 + 0x20 != iVar16);\n    }" (if "if") (parenthesized_expression "(((uStack_c0 & 0x30f) != 0) && (bVar17 = *(byte *)(iVar3 + 0x58), (bVar17 & 0x10) == 0))" (( "(") (binary_expression "((uStack_c0 & 0x30f) != 0) && (bVar17 = *(byte *)(iVar3 + 0x58), (bVar17 & 0x10) == 0)" (parenthesized_expression "((uStack_c0 & 0x30f) != 0)" (( "(") (binary_expression "(uStack_c0 & 0x30f) != 0" (parenthesized_expression "(uStack_c0 & 0x30f)" (( "(") (binary_expression "uStack_c0 & 0x30f" (identifier "uStack_c0") (& "&") (number_literal "0x30f")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(bVar17 = *(byte *)(iVar3 + 0x58), (bVar17 & 0x10) == 0)" (( "(") (comma_expression "bVar17 = *(byte *)(iVar3 + 0x58), (bVar17 & 0x10) == 0" (assignment_expression "bVar17 = *(byte *)(iVar3 + 0x58)" (identifier "bVar17") (= "=") (pointer_expression "*(byte *)(iVar3 + 0x58)" (* "*") (cast_expression "(byte *)(iVar3 + 0x58)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x58)" (( "(") (binary_expression "iVar3 + 0x58" (identifier "iVar3") (+ "+") (number_literal "0x58")) () ")"))))) (, ",") (binary_expression "(bVar17 & 0x10) == 0" (parenthesized_expression "(bVar17 & 0x10)" (( "(") (binary_expression "bVar17 & 0x10" (identifier "bVar17") (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      *(byte *)(iVar3 + 0x58) = bVar17 | 0x10;\n      if ((bVar17 & 8) == 0) {\n        *(undefined4 *)(iVar3 + 0x60) = 0;\n        *(undefined4 *)(iVar3 + 100) = 0x3ff0000;\n        *(undefined4 *)(iVar3 + 0x68) = 0x87fffffe;\n        *(undefined4 *)(iVar3 + 0x6c) = 0x7fffffe;\n        if ((bVar17 & 4) != 0) {\n          *(undefined4 *)(iVar3 + 0x70) = 0;\n          *(undefined4 *)(iVar3 + 0x74) = 0;\n          *(undefined4 *)(iVar3 + 0x78) = 0;\n          *(undefined4 *)(iVar3 + 0x7c) = 0;\n          uStack_c0 = *param_3;\n          goto code_r0x00031089;\n        }\n        iVar4 = 0x80;\n        iVar16 = 4;\n      }\n      else {\n        iVar4 = 0;\n        iVar16 = 0;\n      }\n      ppuVar8 = __ctype_b_loc();\n      iVar16 = iVar3 + iVar16 * 4;\n      puVar9 = *ppuVar8 + iVar4;\n      do {\n        iVar12 = 0;\n        do {\n          if (((puVar9[iVar12] & 8) != 0) || (iVar4 + iVar12 == 0x5f)) {\n            *(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f);\n          }\n          iVar12 = iVar12 + 1;\n        } while (iVar12 != 0x20);\n        iVar4 = iVar4 + 0x20;\n        iVar16 = iVar16 + 4;\n        puVar9 = puVar9 + 0x20;\n      } while (iVar3 + 0x20 != iVar16);\n    }" ({ "{") (expression_statement "*(byte *)(iVar3 + 0x58) = bVar17 | 0x10;" (assignment_expression "*(byte *)(iVar3 + 0x58) = bVar17 | 0x10" (pointer_expression "*(byte *)(iVar3 + 0x58)" (* "*") (cast_expression "(byte *)(iVar3 + 0x58)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x58)" (( "(") (binary_expression "iVar3 + 0x58" (identifier "iVar3") (+ "+") (number_literal "0x58")) () ")")))) (= "=") (binary_expression "bVar17 | 0x10" (identifier "bVar17") (| "|") (number_literal "0x10"))) (; ";")) (if_statement "if ((bVar17 & 8) == 0) {\n        *(undefined4 *)(iVar3 + 0x60) = 0;\n        *(undefined4 *)(iVar3 + 100) = 0x3ff0000;\n        *(undefined4 *)(iVar3 + 0x68) = 0x87fffffe;\n        *(undefined4 *)(iVar3 + 0x6c) = 0x7fffffe;\n        if ((bVar17 & 4) != 0) {\n          *(undefined4 *)(iVar3 + 0x70) = 0;\n          *(undefined4 *)(iVar3 + 0x74) = 0;\n          *(undefined4 *)(iVar3 + 0x78) = 0;\n          *(undefined4 *)(iVar3 + 0x7c) = 0;\n          uStack_c0 = *param_3;\n          goto code_r0x00031089;\n        }\n        iVar4 = 0x80;\n        iVar16 = 4;\n      }\n      else {\n        iVar4 = 0;\n        iVar16 = 0;\n      }" (if "if") (parenthesized_expression "((bVar17 & 8) == 0)" (( "(") (binary_expression "(bVar17 & 8) == 0" (parenthesized_expression "(bVar17 & 8)" (( "(") (binary_expression "bVar17 & 8" (identifier "bVar17") (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(undefined4 *)(iVar3 + 0x60) = 0;\n        *(undefined4 *)(iVar3 + 100) = 0x3ff0000;\n        *(undefined4 *)(iVar3 + 0x68) = 0x87fffffe;\n        *(undefined4 *)(iVar3 + 0x6c) = 0x7fffffe;\n        if ((bVar17 & 4) != 0) {\n          *(undefined4 *)(iVar3 + 0x70) = 0;\n          *(undefined4 *)(iVar3 + 0x74) = 0;\n          *(undefined4 *)(iVar3 + 0x78) = 0;\n          *(undefined4 *)(iVar3 + 0x7c) = 0;\n          uStack_c0 = *param_3;\n          goto code_r0x00031089;\n        }\n        iVar4 = 0x80;\n        iVar16 = 4;\n      }" ({ "{") (expression_statement "*(undefined4 *)(iVar3 + 0x60) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + 0x60) = 0" (pointer_expression "*(undefined4 *)(iVar3 + 0x60)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x60)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x60)" (( "(") (binary_expression "iVar3 + 0x60" (identifier "iVar3") (+ "+") (number_literal "0x60")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar3 + 100) = 0x3ff0000;" (assignment_expression "*(undefined4 *)(iVar3 + 100) = 0x3ff0000" (pointer_expression "*(undefined4 *)(iVar3 + 100)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 100)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 100)" (( "(") (binary_expression "iVar3 + 100" (identifier "iVar3") (+ "+") (number_literal "100")) () ")")))) (= "=") (number_literal "0x3ff0000")) (; ";")) (expression_statement "*(undefined4 *)(iVar3 + 0x68) = 0x87fffffe;" (assignment_expression "*(undefined4 *)(iVar3 + 0x68) = 0x87fffffe" (pointer_expression "*(undefined4 *)(iVar3 + 0x68)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x68)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x68)" (( "(") (binary_expression "iVar3 + 0x68" (identifier "iVar3") (+ "+") (number_literal "0x68")) () ")")))) (= "=") (number_literal "0x87fffffe")) (; ";")) (expression_statement "*(undefined4 *)(iVar3 + 0x6c) = 0x7fffffe;" (assignment_expression "*(undefined4 *)(iVar3 + 0x6c) = 0x7fffffe" (pointer_expression "*(undefined4 *)(iVar3 + 0x6c)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x6c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x6c)" (( "(") (binary_expression "iVar3 + 0x6c" (identifier "iVar3") (+ "+") (number_literal "0x6c")) () ")")))) (= "=") (number_literal "0x7fffffe")) (; ";")) (if_statement "if ((bVar17 & 4) != 0) {\n          *(undefined4 *)(iVar3 + 0x70) = 0;\n          *(undefined4 *)(iVar3 + 0x74) = 0;\n          *(undefined4 *)(iVar3 + 0x78) = 0;\n          *(undefined4 *)(iVar3 + 0x7c) = 0;\n          uStack_c0 = *param_3;\n          goto code_r0x00031089;\n        }" (if "if") (parenthesized_expression "((bVar17 & 4) != 0)" (( "(") (binary_expression "(bVar17 & 4) != 0" (parenthesized_expression "(bVar17 & 4)" (( "(") (binary_expression "bVar17 & 4" (identifier "bVar17") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          *(undefined4 *)(iVar3 + 0x70) = 0;\n          *(undefined4 *)(iVar3 + 0x74) = 0;\n          *(undefined4 *)(iVar3 + 0x78) = 0;\n          *(undefined4 *)(iVar3 + 0x7c) = 0;\n          uStack_c0 = *param_3;\n          goto code_r0x00031089;\n        }" ({ "{") (expression_statement "*(undefined4 *)(iVar3 + 0x70) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + 0x70) = 0" (pointer_expression "*(undefined4 *)(iVar3 + 0x70)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x70)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x70)" (( "(") (binary_expression "iVar3 + 0x70" (identifier "iVar3") (+ "+") (number_literal "0x70")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar3 + 0x74) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + 0x74) = 0" (pointer_expression "*(undefined4 *)(iVar3 + 0x74)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x74)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x74)" (( "(") (binary_expression "iVar3 + 0x74" (identifier "iVar3") (+ "+") (number_literal "0x74")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar3 + 0x78) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + 0x78) = 0" (pointer_expression "*(undefined4 *)(iVar3 + 0x78)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x78)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x78)" (( "(") (binary_expression "iVar3 + 0x78" (identifier "iVar3") (+ "+") (number_literal "0x78")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar3 + 0x7c) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + 0x7c) = 0" (pointer_expression "*(undefined4 *)(iVar3 + 0x7c)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x7c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x7c)" (( "(") (binary_expression "iVar3 + 0x7c" (identifier "iVar3") (+ "+") (number_literal "0x7c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_c0 = *param_3;" (assignment_expression "uStack_c0 = *param_3" (identifier "uStack_c0") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (goto_statement "goto code_r0x00031089;" (goto "goto") (statement_identifier "code_r0x00031089") (; ";")) (} "}"))) (expression_statement "iVar4 = 0x80;" (assignment_expression "iVar4 = 0x80" (identifier "iVar4") (= "=") (number_literal "0x80")) (; ";")) (expression_statement "iVar16 = 4;" (assignment_expression "iVar16 = 4" (identifier "iVar16") (= "=") (number_literal "4")) (; ";")) (} "}")) (else_clause "else {\n        iVar4 = 0;\n        iVar16 = 0;\n      }" (else "else") (compound_statement "{\n        iVar4 = 0;\n        iVar16 = 0;\n      }" ({ "{") (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" (identifier "iVar4") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" (identifier "iVar16") (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "ppuVar8 = __ctype_b_loc();" (assignment_expression "ppuVar8 = __ctype_b_loc()" (identifier "ppuVar8") (= "=") (call_expression "__ctype_b_loc()" (identifier "__ctype_b_loc") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar16 = iVar3 + iVar16 * 4;" (assignment_expression "iVar16 = iVar3 + iVar16 * 4" (identifier "iVar16") (= "=") (binary_expression "iVar3 + iVar16 * 4" (identifier "iVar3") (+ "+") (binary_expression "iVar16 * 4" (identifier "iVar16") (* "*") (number_literal "4")))) (; ";")) (expression_statement "puVar9 = *ppuVar8 + iVar4;" (assignment_expression "puVar9 = *ppuVar8 + iVar4" (identifier "puVar9") (= "=") (binary_expression "*ppuVar8 + iVar4" (pointer_expression "*ppuVar8" (* "*") (identifier "ppuVar8")) (+ "+") (identifier "iVar4"))) (; ";")) (do_statement "do {\n        iVar12 = 0;\n        do {\n          if (((puVar9[iVar12] & 8) != 0) || (iVar4 + iVar12 == 0x5f)) {\n            *(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f);\n          }\n          iVar12 = iVar12 + 1;\n        } while (iVar12 != 0x20);\n        iVar4 = iVar4 + 0x20;\n        iVar16 = iVar16 + 4;\n        puVar9 = puVar9 + 0x20;\n      } while (iVar3 + 0x20 != iVar16);" (do "do") (compound_statement "{\n        iVar12 = 0;\n        do {\n          if (((puVar9[iVar12] & 8) != 0) || (iVar4 + iVar12 == 0x5f)) {\n            *(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f);\n          }\n          iVar12 = iVar12 + 1;\n        } while (iVar12 != 0x20);\n        iVar4 = iVar4 + 0x20;\n        iVar16 = iVar16 + 4;\n        puVar9 = puVar9 + 0x20;\n      }" ({ "{") (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          if (((puVar9[iVar12] & 8) != 0) || (iVar4 + iVar12 == 0x5f)) {\n            *(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f);\n          }\n          iVar12 = iVar12 + 1;\n        } while (iVar12 != 0x20);" (do "do") (compound_statement "{\n          if (((puVar9[iVar12] & 8) != 0) || (iVar4 + iVar12 == 0x5f)) {\n            *(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f);\n          }\n          iVar12 = iVar12 + 1;\n        }" ({ "{") (if_statement "if (((puVar9[iVar12] & 8) != 0) || (iVar4 + iVar12 == 0x5f)) {\n            *(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f);\n          }" (if "if") (parenthesized_expression "(((puVar9[iVar12] & 8) != 0) || (iVar4 + iVar12 == 0x5f))" (( "(") (binary_expression "((puVar9[iVar12] & 8) != 0) || (iVar4 + iVar12 == 0x5f)" (parenthesized_expression "((puVar9[iVar12] & 8) != 0)" (( "(") (binary_expression "(puVar9[iVar12] & 8) != 0" (parenthesized_expression "(puVar9[iVar12] & 8)" (( "(") (binary_expression "puVar9[iVar12] & 8" (subscript_expression "puVar9[iVar12]" (identifier "puVar9") ([ "[") (identifier "iVar12") (] "]")) (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar4 + iVar12 == 0x5f)" (( "(") (binary_expression "iVar4 + iVar12 == 0x5f" (binary_expression "iVar4 + iVar12" (identifier "iVar4") (+ "+") (identifier "iVar12")) (== "==") (number_literal "0x5f")) () ")"))) () ")")) (compound_statement "{\n            *(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f);\n          }" ({ "{") (expression_statement "*(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f);" (assignment_expression "*(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f)" (pointer_expression "*(uint *)(iVar16 + 0x60)" (* "*") (cast_expression "(uint *)(iVar16 + 0x60)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0x60)" (( "(") (binary_expression "iVar16 + 0x60" (identifier "iVar16") (+ "+") (number_literal "0x60")) () ")")))) (= "=") (binary_expression "*(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f)" (pointer_expression "*(uint *)(iVar16 + 0x60)" (* "*") (cast_expression "(uint *)(iVar16 + 0x60)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0x60)" (( "(") (binary_expression "iVar16 + 0x60" (identifier "iVar16") (+ "+") (number_literal "0x60")) () ")")))) (| "|") (binary_expression "1 << ((byte)iVar12 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "((byte)iVar12 & 0x1f)" (( "(") (binary_expression "(byte)iVar12 & 0x1f" (cast_expression "(byte)iVar12" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iVar12")) (& "&") (number_literal "0x1f")) () ")"))))) (; ";")) (} "}"))) (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + 1" (identifier "iVar12") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar12 != 0x20)" (( "(") (binary_expression "iVar12 != 0x20" (identifier "iVar12") (!= "!=") (number_literal "0x20")) () ")")) (; ";")) (expression_statement "iVar4 = iVar4 + 0x20;" (assignment_expression "iVar4 = iVar4 + 0x20" (identifier "iVar4") (= "=") (binary_expression "iVar4 + 0x20" (identifier "iVar4") (+ "+") (number_literal "0x20"))) (; ";")) (expression_statement "iVar16 = iVar16 + 4;" (assignment_expression "iVar16 = iVar16 + 4" (identifier "iVar16") (= "=") (binary_expression "iVar16 + 4" (identifier "iVar16") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "puVar9 = puVar9 + 0x20;" (assignment_expression "puVar9 = puVar9 + 0x20" (identifier "puVar9") (= "=") (binary_expression "puVar9 + 0x20" (identifier "puVar9") (+ "+") (number_literal "0x20"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar3 + 0x20 != iVar16)" (( "(") (binary_expression "iVar3 + 0x20 != iVar16" (binary_expression "iVar3 + 0x20" (identifier "iVar3") (+ "+") (number_literal "0x20")) (!= "!=") (identifier "iVar16")) () ")")) (; ";")) (} "}"))) (labeled_statement "code_r0x00031089:\n    if ((uStack_c0 - 0x100 & 0xfffffeff) == 0) {\n      if (uStack_c0 == 0x100) {\n        *param_3 = 6;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 9;\n      }\n      else {\n        *param_3 = 5;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 10;\n      }\n      iVar3 = FUN_00028330(0,param_3);\n      cStack_64 = '\n';\n      local_b0 = FUN_00028330(iVar3,&puStack_68);\n      if (uStack_c0 == 0 || iVar3 == 0) break;\n    }\n    else {\n      local_b0 = FUN_00028330(0,param_3);\n    }" (statement_identifier "code_r0x00031089") (: ":") (if_statement "if ((uStack_c0 - 0x100 & 0xfffffeff) == 0) {\n      if (uStack_c0 == 0x100) {\n        *param_3 = 6;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 9;\n      }\n      else {\n        *param_3 = 5;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 10;\n      }\n      iVar3 = FUN_00028330(0,param_3);\n      cStack_64 = '\n';\n      local_b0 = FUN_00028330(iVar3,&puStack_68);\n      if (uStack_c0 == 0 || iVar3 == 0) break;\n    }\n    else {\n      local_b0 = FUN_00028330(0,param_3);\n    }" (if "if") (parenthesized_expression "((uStack_c0 - 0x100 & 0xfffffeff) == 0)" (( "(") (binary_expression "(uStack_c0 - 0x100 & 0xfffffeff) == 0" (parenthesized_expression "(uStack_c0 - 0x100 & 0xfffffeff)" (( "(") (binary_expression "uStack_c0 - 0x100 & 0xfffffeff" (binary_expression "uStack_c0 - 0x100" (identifier "uStack_c0") (- "-") (number_literal "0x100")) (& "&") (number_literal "0xfffffeff")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (uStack_c0 == 0x100) {\n        *param_3 = 6;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 9;\n      }\n      else {\n        *param_3 = 5;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 10;\n      }\n      iVar3 = FUN_00028330(0,param_3);\n      cStack_64 = '\n';\n      local_b0 = FUN_00028330(iVar3,&puStack_68);\n      if (uStack_c0 == 0 || iVar3 == 0) break;\n    }" ({ "{") (if_statement "if (uStack_c0 == 0x100) {\n        *param_3 = 6;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 9;\n      }\n      else {\n        *param_3 = 5;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 10;\n      }" (if "if") (parenthesized_expression "(uStack_c0 == 0x100)" (( "(") (binary_expression "uStack_c0 == 0x100" (identifier "uStack_c0") (== "==") (number_literal "0x100")) () ")")) (compound_statement "{\n        *param_3 = 6;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 9;\n      }" ({ "{") (expression_statement "*param_3 = 6;" (assignment_expression "*param_3 = 6" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (number_literal "6")) (; ";")) (expression_statement "uStack_c0 = FUN_00028330(0,param_3);" (assignment_expression "uStack_c0 = FUN_00028330(0,param_3)" (identifier "uStack_c0") (= "=") (call_expression "FUN_00028330(0,param_3)" (identifier "FUN_00028330") (argument_list "(0,param_3)" (( "(") (number_literal "0") (, ",") (identifier "param_3") () ")")))) (; ";")) (expression_statement "*param_3 = 9;" (assignment_expression "*param_3 = 9" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (number_literal "9")) (; ";")) (} "}")) (else_clause "else {\n        *param_3 = 5;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 10;\n      }" (else "else") (compound_statement "{\n        *param_3 = 5;\n        uStack_c0 = FUN_00028330(0,param_3);\n        *param_3 = 10;\n      }" ({ "{") (expression_statement "*param_3 = 5;" (assignment_expression "*param_3 = 5" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (number_literal "5")) (; ";")) (expression_statement "uStack_c0 = FUN_00028330(0,param_3);" (assignment_expression "uStack_c0 = FUN_00028330(0,param_3)" (identifier "uStack_c0") (= "=") (call_expression "FUN_00028330(0,param_3)" (identifier "FUN_00028330") (argument_list "(0,param_3)" (( "(") (number_literal "0") (, ",") (identifier "param_3") () ")")))) (; ";")) (expression_statement "*param_3 = 10;" (assignment_expression "*param_3 = 10" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (number_literal "10")) (; ";")) (} "}")))) (expression_statement "iVar3 = FUN_00028330(0,param_3);" (assignment_expression "iVar3 = FUN_00028330(0,param_3)" (identifier "iVar3") (= "=") (call_expression "FUN_00028330(0,param_3)" (identifier "FUN_00028330") (argument_list "(0,param_3)" (( "(") (number_literal "0") (, ",") (identifier "param_3") () ")")))) (; ";")) (expression_statement "cStack_64 = '\n';" (assignment_expression "cStack_64 = '\n'" (identifier "cStack_64") (= "=") (char_literal "'\n'" (' "'") (escape_sequence "\n") (' "'"))) (; ";")) (expression_statement "local_b0 = FUN_00028330(iVar3,&puStack_68);" (assignment_expression "local_b0 = FUN_00028330(iVar3,&puStack_68)" (identifier "local_b0") (= "=") (call_expression "FUN_00028330(iVar3,&puStack_68)" (identifier "FUN_00028330") (argument_list "(iVar3,&puStack_68)" (( "(") (identifier "iVar3") (, ",") (pointer_expression "&puStack_68" (& "&") (identifier "puStack_68")) () ")")))) (; ";")) (if_statement "if (uStack_c0 == 0 || iVar3 == 0) break;" (if "if") (parenthesized_expression "(uStack_c0 == 0 || iVar3 == 0)" (( "(") (binary_expression "uStack_c0 == 0 || iVar3 == 0" (binary_expression "uStack_c0 == 0" (identifier "uStack_c0") (== "==") (number_literal "0")) (|| "||") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (else_clause "else {\n      local_b0 = FUN_00028330(0,param_3);\n    }" (else "else") (compound_statement "{\n      local_b0 = FUN_00028330(0,param_3);\n    }" ({ "{") (expression_statement "local_b0 = FUN_00028330(0,param_3);" (assignment_expression "local_b0 = FUN_00028330(0,param_3)" (identifier "local_b0") (= "=") (call_expression "FUN_00028330(0,param_3)" (identifier "FUN_00028330") (argument_list "(0,param_3)" (( "(") (number_literal "0") (, ",") (identifier "param_3") () ")")))) (; ";")) (} "}"))))) (if_statement "if (local_b0 != 0) {\n      iVar3 = FUN_000300e0();\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n      goto LAB_00030965;\n    }" (if "if") (parenthesized_expression "(local_b0 != 0)" (( "(") (binary_expression "local_b0 != 0" (identifier "local_b0") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar3 = FUN_000300e0();\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;\n      goto LAB_00030965;\n    }" ({ "{") (expression_statement "iVar3 = FUN_000300e0();" (assignment_expression "iVar3 = FUN_000300e0()" (identifier "iVar3") (= "=") (call_expression "FUN_000300e0()" (identifier "FUN_000300e0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;" (assignment_expression "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3" (pointer_expression "*(int *)(param_1 + 0x28)" (* "*") (cast_expression "(int *)(param_1 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (binary_expression "*(int *)(param_1 + 0x28) + iVar3" (pointer_expression "*(int *)(param_1 + 0x28)" (* "*") (cast_expression "(int *)(param_1 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (+ "+") (identifier "iVar3"))) (; ";")) (goto_statement "goto LAB_00030965;" (goto "goto") (statement_identifier "LAB_00030965") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case '\x14':\n    __ptr = (uint *)calloc(0x20,1);\n    puVar5 = (uint *)calloc(0x28,1);\n    if (__ptr == (uint *)0x0 || puVar5 == (uint *)0x0) {\n      free(__ptr);\n      free(puVar5);\n      *param_6 = 0xc;\n      local_b0 = 0;\n      goto LAB_00030965;\n    }\n    uStack_c0 = FUN_00025ab0();\n    cVar2 = (char)param_3[1];\n    if (cVar2 != '\x02') {\n      bVar1 = false;\n      if (cVar2 != '\x19') {\ncode_r0x000312a6:\n        if (cVar2 == '\x15') {\n          *(char *)(param_3 + 1) = '\x01';\n        }\n        uStack_90 = 0;\n        uVar6 = 1;\ncode_r0x000312e4:\n        iVar16 = FUN_0002fec0(uStack_c0,param_4,uVar6);\n        if (iVar16 == 0) {\n          iVar16 = FUN_00025ab0();\n          if ((char)param_3[1] == '\x02') {\ncode_r0x00031615:\n            *param_6 = 7;\n          }\n          else {\n            if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    \n                    \n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }\n            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n            uVar6 = FUN_00025ab0();\n            if (cStack_64 == '\x02') goto code_r0x00031615;\n            if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }\n            pcStack_6c = acStack_40;\n            puStack_70 = (uint *)0x3;\n            uVar14 = 1;\n            iVar16 = FUN_0002fec0(uVar6,param_4,1);\n            if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }\n          }\n        }\n        else {\n          *param_6 = iVar16;\n        }\n        goto code_r0x000314ef;\n      }\n      *(byte *)(puVar5 + 4) = (byte)puVar5[4] | 1;\n      if ((param_4 & 0x100) != 0) {\n        *__ptr = *__ptr | 0x400;\n      }\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n      uStack_c0 = FUN_00025ab0();\n      cVar2 = (char)param_3[1];\n      if (cVar2 != '\x02') {\n        bVar1 = true;\n        goto code_r0x000312a6;\n      }\n    }\n    *param_6 = 2;\ncode_r0x000314ef:\n    free(__ptr);\n    FUN_00026c30();\n    if (*param_6 == 0) {\n      local_b0 = 0;\n      goto code_r0x0003093e;\n    }\nLAB_00030e58:\n    local_b0 = 0;\n    goto LAB_00030965;" (case "case") (char_literal "'\x14'" (' "'") (escape_sequence "\x14") (' "'")) (: ":") (expression_statement "__ptr = (uint *)calloc(0x20,1);" (assignment_expression "__ptr = (uint *)calloc(0x20,1)" (identifier "__ptr") (= "=") (cast_expression "(uint *)calloc(0x20,1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "calloc(0x20,1)" (identifier "calloc") (argument_list "(0x20,1)" (( "(") (number_literal "0x20") (, ",") (number_literal "1") () ")"))))) (; ";")) (expression_statement "puVar5 = (uint *)calloc(0x28,1);" (assignment_expression "puVar5 = (uint *)calloc(0x28,1)" (identifier "puVar5") (= "=") (cast_expression "(uint *)calloc(0x28,1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "calloc(0x28,1)" (identifier "calloc") (argument_list "(0x28,1)" (( "(") (number_literal "0x28") (, ",") (number_literal "1") () ")"))))) (; ";")) (if_statement "if (__ptr == (uint *)0x0 || puVar5 == (uint *)0x0) {\n      free(__ptr);\n      free(puVar5);\n      *param_6 = 0xc;\n      local_b0 = 0;\n      goto LAB_00030965;\n    }" (if "if") (parenthesized_expression "(__ptr == (uint *)0x0 || puVar5 == (uint *)0x0)" (( "(") (binary_expression "__ptr == (uint *)0x0 || puVar5 == (uint *)0x0" (binary_expression "__ptr == (uint *)0x0" (identifier "__ptr") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (|| "||") (binary_expression "puVar5 == (uint *)0x0" (identifier "puVar5") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")")) (compound_statement "{\n      free(__ptr);\n      free(puVar5);\n      *param_6 = 0xc;\n      local_b0 = 0;\n      goto LAB_00030965;\n    }" ({ "{") (expression_statement "free(__ptr);" (call_expression "free(__ptr)" (identifier "free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";")) (expression_statement "free(puVar5);" (call_expression "free(puVar5)" (identifier "free") (argument_list "(puVar5)" (( "(") (identifier "puVar5") () ")"))) (; ";")) (expression_statement "*param_6 = 0xc;" (assignment_expression "*param_6 = 0xc" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (number_literal "0xc")) (; ";")) (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" (identifier "local_b0") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00030965;" (goto "goto") (statement_identifier "LAB_00030965") (; ";")) (} "}"))) (expression_statement "uStack_c0 = FUN_00025ab0();" (assignment_expression "uStack_c0 = FUN_00025ab0()" (identifier "uStack_c0") (= "=") (call_expression "FUN_00025ab0()" (identifier "FUN_00025ab0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "cVar2 = (char)param_3[1];" (assignment_expression "cVar2 = (char)param_3[1]" (identifier "cVar2") (= "=") (cast_expression "(char)param_3[1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")))) (; ";")) (if_statement "if (cVar2 != '\x02') {\n      bVar1 = false;\n      if (cVar2 != '\x19') {\ncode_r0x000312a6:\n        if (cVar2 == '\x15') {\n          *(char *)(param_3 + 1) = '\x01';\n        }\n        uStack_90 = 0;\n        uVar6 = 1;\ncode_r0x000312e4:\n        iVar16 = FUN_0002fec0(uStack_c0,param_4,uVar6);\n        if (iVar16 == 0) {\n          iVar16 = FUN_00025ab0();\n          if ((char)param_3[1] == '\x02') {\ncode_r0x00031615:\n            *param_6 = 7;\n          }\n          else {\n            if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    \n                    \n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }\n            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n            uVar6 = FUN_00025ab0();\n            if (cStack_64 == '\x02') goto code_r0x00031615;\n            if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }\n            pcStack_6c = acStack_40;\n            puStack_70 = (uint *)0x3;\n            uVar14 = 1;\n            iVar16 = FUN_0002fec0(uVar6,param_4,1);\n            if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }\n          }\n        }\n        else {\n          *param_6 = iVar16;\n        }\n        goto code_r0x000314ef;\n      }\n      *(byte *)(puVar5 + 4) = (byte)puVar5[4] | 1;\n      if ((param_4 & 0x100) != 0) {\n        *__ptr = *__ptr | 0x400;\n      }\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n      uStack_c0 = FUN_00025ab0();\n      cVar2 = (char)param_3[1];\n      if (cVar2 != '\x02') {\n        bVar1 = true;\n        goto code_r0x000312a6;\n      }\n    }" (if "if") (parenthesized_expression "(cVar2 != '\x02')" (( "(") (binary_expression "cVar2 != '\x02'" (identifier "cVar2") (!= "!=") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (compound_statement "{\n      bVar1 = false;\n      if (cVar2 != '\x19') {\ncode_r0x000312a6:\n        if (cVar2 == '\x15') {\n          *(char *)(param_3 + 1) = '\x01';\n        }\n        uStack_90 = 0;\n        uVar6 = 1;\ncode_r0x000312e4:\n        iVar16 = FUN_0002fec0(uStack_c0,param_4,uVar6);\n        if (iVar16 == 0) {\n          iVar16 = FUN_00025ab0();\n          if ((char)param_3[1] == '\x02') {\ncode_r0x00031615:\n            *param_6 = 7;\n          }\n          else {\n            if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    \n                    \n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }\n            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n            uVar6 = FUN_00025ab0();\n            if (cStack_64 == '\x02') goto code_r0x00031615;\n            if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }\n            pcStack_6c = acStack_40;\n            puStack_70 = (uint *)0x3;\n            uVar14 = 1;\n            iVar16 = FUN_0002fec0(uVar6,param_4,1);\n            if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }\n          }\n        }\n        else {\n          *param_6 = iVar16;\n        }\n        goto code_r0x000314ef;\n      }\n      *(byte *)(puVar5 + 4) = (byte)puVar5[4] | 1;\n      if ((param_4 & 0x100) != 0) {\n        *__ptr = *__ptr | 0x400;\n      }\n      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n      uStack_c0 = FUN_00025ab0();\n      cVar2 = (char)param_3[1];\n      if (cVar2 != '\x02') {\n        bVar1 = true;\n        goto code_r0x000312a6;\n      }\n    }" ({ "{") (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" (identifier "bVar1") (= "=") (false "false")) (; ";")) (if_statement "if (cVar2 != '\x19') {\ncode_r0x000312a6:\n        if (cVar2 == '\x15') {\n          *(char *)(param_3 + 1) = '\x01';\n        }\n        uStack_90 = 0;\n        uVar6 = 1;\ncode_r0x000312e4:\n        iVar16 = FUN_0002fec0(uStack_c0,param_4,uVar6);\n        if (iVar16 == 0) {\n          iVar16 = FUN_00025ab0();\n          if ((char)param_3[1] == '\x02') {\ncode_r0x00031615:\n            *param_6 = 7;\n          }\n          else {\n            if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    \n                    \n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }\n            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n            uVar6 = FUN_00025ab0();\n            if (cStack_64 == '\x02') goto code_r0x00031615;\n            if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }\n            pcStack_6c = acStack_40;\n            puStack_70 = (uint *)0x3;\n            uVar14 = 1;\n            iVar16 = FUN_0002fec0(uVar6,param_4,1);\n            if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }\n          }\n        }\n        else {\n          *param_6 = iVar16;\n        }\n        goto code_r0x000314ef;\n      }" (if "if") (parenthesized_expression "(cVar2 != '\x19')" (( "(") (binary_expression "cVar2 != '\x19'" (identifier "cVar2") (!= "!=") (char_literal "'\x19'" (' "'") (escape_sequence "\x19") (' "'"))) () ")")) (compound_statement "{\ncode_r0x000312a6:\n        if (cVar2 == '\x15') {\n          *(char *)(param_3 + 1) = '\x01';\n        }\n        uStack_90 = 0;\n        uVar6 = 1;\ncode_r0x000312e4:\n        iVar16 = FUN_0002fec0(uStack_c0,param_4,uVar6);\n        if (iVar16 == 0) {\n          iVar16 = FUN_00025ab0();\n          if ((char)param_3[1] == '\x02') {\ncode_r0x00031615:\n            *param_6 = 7;\n          }\n          else {\n            if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    \n                    \n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }\n            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n            uVar6 = FUN_00025ab0();\n            if (cStack_64 == '\x02') goto code_r0x00031615;\n            if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }\n            pcStack_6c = acStack_40;\n            puStack_70 = (uint *)0x3;\n            uVar14 = 1;\n            iVar16 = FUN_0002fec0(uVar6,param_4,1);\n            if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }\n          }\n        }\n        else {\n          *param_6 = iVar16;\n        }\n        goto code_r0x000314ef;\n      }" ({ "{") (labeled_statement "code_r0x000312a6:\n        if (cVar2 == '\x15') {\n          *(char *)(param_3 + 1) = '\x01';\n        }" (statement_identifier "code_r0x000312a6") (: ":") (if_statement "if (cVar2 == '\x15') {\n          *(char *)(param_3 + 1) = '\x01';\n        }" (if "if") (parenthesized_expression "(cVar2 == '\x15')" (( "(") (binary_expression "cVar2 == '\x15'" (identifier "cVar2") (== "==") (char_literal "'\x15'" (' "'") (escape_sequence "\x15") (' "'"))) () ")")) (compound_statement "{\n          *(char *)(param_3 + 1) = '\x01';\n        }" ({ "{") (expression_statement "*(char *)(param_3 + 1) = '\x01';" (assignment_expression "*(char *)(param_3 + 1) = '\x01'" (pointer_expression "*(char *)(param_3 + 1)" (* "*") (cast_expression "(char *)(param_3 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 1)" (( "(") (binary_expression "param_3 + 1" (identifier "param_3") (+ "+") (number_literal "1")) () ")")))) (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (} "}")))) (expression_statement "uStack_90 = 0;" (assignment_expression "uStack_90 = 0" (identifier "uStack_90") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar6 = 1;" (assignment_expression "uVar6 = 1" (identifier "uVar6") (= "=") (number_literal "1")) (; ";")) (labeled_statement "code_r0x000312e4:\n        iVar16 = FUN_0002fec0(uStack_c0,param_4,uVar6);" (statement_identifier "code_r0x000312e4") (: ":") (expression_statement "iVar16 = FUN_0002fec0(uStack_c0,param_4,uVar6);" (assignment_expression "iVar16 = FUN_0002fec0(uStack_c0,param_4,uVar6)" (identifier "iVar16") (= "=") (call_expression "FUN_0002fec0(uStack_c0,param_4,uVar6)" (identifier "FUN_0002fec0") (argument_list "(uStack_c0,param_4,uVar6)" (( "(") (identifier "uStack_c0") (, ",") (identifier "param_4") (, ",") (identifier "uVar6") () ")")))) (; ";"))) (if_statement "if (iVar16 == 0) {\n          iVar16 = FUN_00025ab0();\n          if ((char)param_3[1] == '\x02') {\ncode_r0x00031615:\n            *param_6 = 7;\n          }\n          else {\n            if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    \n                    \n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }\n            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n            uVar6 = FUN_00025ab0();\n            if (cStack_64 == '\x02') goto code_r0x00031615;\n            if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }\n            pcStack_6c = acStack_40;\n            puStack_70 = (uint *)0x3;\n            uVar14 = 1;\n            iVar16 = FUN_0002fec0(uVar6,param_4,1);\n            if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }\n          }\n        }\n        else {\n          *param_6 = iVar16;\n        }" (if "if") (parenthesized_expression "(iVar16 == 0)" (( "(") (binary_expression "iVar16 == 0" (identifier "iVar16") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar16 = FUN_00025ab0();\n          if ((char)param_3[1] == '\x02') {\ncode_r0x00031615:\n            *param_6 = 7;\n          }\n          else {\n            if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    \n                    \n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }\n            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n            uVar6 = FUN_00025ab0();\n            if (cStack_64 == '\x02') goto code_r0x00031615;\n            if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }\n            pcStack_6c = acStack_40;\n            puStack_70 = (uint *)0x3;\n            uVar14 = 1;\n            iVar16 = FUN_0002fec0(uVar6,param_4,1);\n            if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }\n          }\n        }" ({ "{") (expression_statement "iVar16 = FUN_00025ab0();" (assignment_expression "iVar16 = FUN_00025ab0()" (identifier "iVar16") (= "=") (call_expression "FUN_00025ab0()" (identifier "FUN_00025ab0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((char)param_3[1] == '\x02') {\ncode_r0x00031615:\n            *param_6 = 7;\n          }\n          else {\n            if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    \n                    \n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }\n            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n            uVar6 = FUN_00025ab0();\n            if (cStack_64 == '\x02') goto code_r0x00031615;\n            if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }\n            pcStack_6c = acStack_40;\n            puStack_70 = (uint *)0x3;\n            uVar14 = 1;\n            iVar16 = FUN_0002fec0(uVar6,param_4,1);\n            if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }\n          }" (if "if") (parenthesized_expression "((char)param_3[1] == '\x02')" (( "(") (binary_expression "(char)param_3[1] == '\x02'" (cast_expression "(char)param_3[1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) (== "==") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (compound_statement "{\ncode_r0x00031615:\n            *param_6 = 7;\n          }" ({ "{") (labeled_statement "code_r0x00031615:\n            *param_6 = 7;" (statement_identifier "code_r0x00031615") (: ":") (expression_statement "*param_6 = 7;" (assignment_expression "*param_6 = 7" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (number_literal "7")) (; ";"))) (} "}")) (else_clause "else {\n            if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    \n                    \n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }\n            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n            uVar6 = FUN_00025ab0();\n            if (cStack_64 == '\x02') goto code_r0x00031615;\n            if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }\n            pcStack_6c = acStack_40;\n            puStack_70 = (uint *)0x3;\n            uVar14 = 1;\n            iVar16 = FUN_0002fec0(uVar6,param_4,1);\n            if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }\n          }" (else "else") (compound_statement "{\n            if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    \n                    \n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }\n            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;\n            uVar6 = FUN_00025ab0();\n            if (cStack_64 == '\x02') goto code_r0x00031615;\n            if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }\n            pcStack_6c = acStack_40;\n            puStack_70 = (uint *)0x3;\n            uVar14 = 1;\n            iVar16 = FUN_0002fec0(uVar6,param_4,1);\n            if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }\n          }" ({ "{") (if_statement "if ((char)param_3[1] != '\x16') {\ncode_r0x0003135b:\n                    \n                    \n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }" (if "if") (parenthesized_expression "((char)param_3[1] != '\x16')" (( "(") (binary_expression "(char)param_3[1] != '\x16'" (cast_expression "(char)param_3[1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) (!= "!=") (char_literal "'\x16'" (' "'") (escape_sequence "\x16") (' "'"))) () ")")) (compound_statement "{\ncode_r0x0003135b:\n                    \n                    \n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();\n              return iVar3;\n            }" ({ "{") (labeled_statement "code_r0x0003135b:\n                    \n                    \n              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();" (statement_identifier "code_r0x0003135b") (: ":") (expression_statement "iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();" (assignment_expression "iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))()" (identifier "iVar3") (= "=") (call_expression "(*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))()" (parenthesized_expression "(*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))" (( "(") (pointer_expression "*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44)" (* "*") (cast_expression "(code *)((int)&__DT_PLTGOT + _UNK_0003ad44)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&__DT_PLTGOT + _UNK_0003ad44)" (( "(") (binary_expression "(int)&__DT_PLTGOT + _UNK_0003ad44" (cast_expression "(int)&__DT_PLTGOT" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (+ "+") (identifier "_UNK_0003ad44")) () ")")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";"))) (return_statement "return iVar3;" (return "return") (identifier "iVar3") (; ";")) (} "}"))) (expression_statement "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;" (assignment_expression "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16" (pointer_expression "*(int *)(param_1 + 0x28)" (* "*") (cast_expression "(int *)(param_1 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (binary_expression "*(int *)(param_1 + 0x28) + iVar16" (pointer_expression "*(int *)(param_1 + 0x28)" (* "*") (cast_expression "(int *)(param_1 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (+ "+") (identifier "iVar16"))) (; ";")) (expression_statement "uVar6 = FUN_00025ab0();" (assignment_expression "uVar6 = FUN_00025ab0()" (identifier "uVar6") (= "=") (call_expression "FUN_00025ab0()" (identifier "FUN_00025ab0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (cStack_64 == '\x02') goto code_r0x00031615;" (if "if") (parenthesized_expression "(cStack_64 == '\x02')" (( "(") (binary_expression "cStack_64 == '\x02'" (identifier "cStack_64") (== "==") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (goto_statement "goto code_r0x00031615;" (goto "goto") (statement_identifier "code_r0x00031615") (; ";"))) (if_statement "if (cStack_64 == '\x15') {\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }" (if "if") (parenthesized_expression "(cStack_64 == '\x15')" (( "(") (binary_expression "cStack_64 == '\x15'" (identifier "cStack_64") (== "==") (char_literal "'\x15'" (' "'") (escape_sequence "\x15") (' "'"))) () ")")) (compound_statement "{\n              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;\n              *(char *)(param_3 + 1) = '\x01';\n              goto code_r0x0003135b;\n            }" ({ "{") (expression_statement "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;" (assignment_expression "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16" (pointer_expression "*(int *)(param_1 + 0x28)" (* "*") (cast_expression "(int *)(param_1 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (binary_expression "*(int *)(param_1 + 0x28) - iVar16" (pointer_expression "*(int *)(param_1 + 0x28)" (* "*") (cast_expression "(int *)(param_1 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (- "-") (identifier "iVar16"))) (; ";")) (expression_statement "*(char *)(param_3 + 1) = '\x01';" (assignment_expression "*(char *)(param_3 + 1) = '\x01'" (pointer_expression "*(char *)(param_3 + 1)" (* "*") (cast_expression "(char *)(param_3 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 1)" (( "(") (binary_expression "param_3 + 1" (identifier "param_3") (+ "+") (number_literal "1")) () ")")))) (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (goto_statement "goto code_r0x0003135b;" (goto "goto") (statement_identifier "code_r0x0003135b") (; ";")) (} "}"))) (expression_statement "pcStack_6c = acStack_40;" (assignment_expression "pcStack_6c = acStack_40" (identifier "pcStack_6c") (= "=") (identifier "acStack_40")) (; ";")) (expression_statement "puStack_70 = (uint *)0x3;" (assignment_expression "puStack_70 = (uint *)0x3" (identifier "puStack_70") (= "=") (cast_expression "(uint *)0x3" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x3"))) (; ";")) (expression_statement "uVar14 = 1;" (assignment_expression "uVar14 = 1" (identifier "uVar14") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar16 = FUN_0002fec0(uVar6,param_4,1);" (assignment_expression "iVar16 = FUN_0002fec0(uVar6,param_4,1)" (identifier "iVar16") (= "=") (call_expression "FUN_0002fec0(uVar6,param_4,1)" (identifier "FUN_0002fec0") (argument_list "(uVar6,param_4,1)" (( "(") (identifier "uVar6") (, ",") (identifier "param_4") (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if (iVar16 == 0) {\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }\n            else {\n              *param_6 = iVar16;\n            }" (if "if") (parenthesized_expression "(iVar16 == 0)" (( "(") (binary_expression "iVar16 == 0" (identifier "iVar16") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              uStack_c0 = FUN_00025ab0();\n              puVar7 = puVar5;\n              if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }\n              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }\n            }" ({ "{") (expression_statement "uStack_c0 = FUN_00025ab0();" (assignment_expression "uStack_c0 = FUN_00025ab0()" (identifier "uStack_c0") (= "=") (call_expression "FUN_00025ab0()" (identifier "FUN_00025ab0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "puVar7 = puVar5;" (assignment_expression "puVar7 = puVar5" (identifier "puVar7") (= "=") (identifier "puVar5")) (; ";")) (if_statement "if (*(int *)(iVar3 + 0x5c) < 2) {\n                puVar7 = (uint *)0x0;\n              }" (if "if") (parenthesized_expression "(*(int *)(iVar3 + 0x5c) < 2)" (( "(") (binary_expression "*(int *)(iVar3 + 0x5c) < 2" (pointer_expression "*(int *)(iVar3 + 0x5c)" (* "*") (cast_expression "(int *)(iVar3 + 0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x5c)" (( "(") (binary_expression "iVar3 + 0x5c" (identifier "iVar3") (+ "+") (number_literal "0x5c")) () ")")))) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n                puVar7 = (uint *)0x0;\n              }" ({ "{") (expression_statement "puVar7 = (uint *)0x0;" (assignment_expression "puVar7 = (uint *)0x0" (identifier "puVar7") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (if_statement "if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }\n              else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }" (if "if") (parenthesized_expression "(((int)puStack_70 - 2U & 0xfffffffd) == 0)" (( "(") (binary_expression "((int)puStack_70 - 2U & 0xfffffffd) == 0" (parenthesized_expression "((int)puStack_70 - 2U & 0xfffffffd)" (( "(") (binary_expression "(int)puStack_70 - 2U & 0xfffffffd" (binary_expression "(int)puStack_70 - 2U" (cast_expression "(int)puStack_70" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puStack_70")) (- "-") (number_literal "2U")) (& "&") (number_literal "0xfffffffd")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\ncode_r0x00031b91:\n                *param_6 = 0xb;\n              }" ({ "{") (labeled_statement "code_r0x00031b91:\n                *param_6 = 0xb;" (statement_identifier "code_r0x00031b91") (: ":") (expression_statement "*param_6 = 0xb;" (assignment_expression "*param_6 = 0xb" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (number_literal "0xb")) (; ";"))) (} "}")) (else_clause "else {\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }" (else "else") (compound_statement "{\n                uVar13 = 0xffffffff;\n                pcVar10 = acStack_60;\n                do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');\n                if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }\ncode_r0x00031b44:\n                *param_6 = 3;\n              }" ({ "{") (expression_statement "uVar13 = 0xffffffff;" (assignment_expression "uVar13 = 0xffffffff" (identifier "uVar13") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "pcVar10 = acStack_60;" (assignment_expression "pcVar10 = acStack_60" (identifier "pcVar10") (= "=") (identifier "acStack_60")) (; ";")) (do_statement "do {\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                } while (cVar2 != '\0');" (do "do") (compound_statement "{\n                  if (uVar13 == 0) break;\n                  uVar13 = uVar13 - 1;\n                  cVar2 = *pcVar10;\n                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                }" ({ "{") (if_statement "if (uVar13 == 0) break;" (if "if") (parenthesized_expression "(uVar13 == 0)" (( "(") (binary_expression "uVar13 == 0" (identifier "uVar13") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" (identifier "uVar13") (= "=") (binary_expression "uVar13 - 1" (identifier "uVar13") (- "-") (number_literal "1"))) (; ";")) (expression_statement "cVar2 = *pcVar10;" (assignment_expression "cVar2 = *pcVar10" (identifier "cVar2") (= "=") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10"))) (; ";")) (expression_statement "pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;" (assignment_expression "pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1" (identifier "pcVar10") (= "=") (binary_expression "pcVar10 + (uint)bVar17 * -2 + 1" (binary_expression "pcVar10 + (uint)bVar17 * -2" (identifier "pcVar10") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar2 != '\0')" (( "(") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (if_statement "if (~uVar13 - 1 < 2) {\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }" (if "if") (parenthesized_expression "(~uVar13 - 1 < 2)" (( "(") (binary_expression "~uVar13 - 1 < 2" (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" (~ "~") (identifier "uVar13")) (- "-") (number_literal "1")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n                  if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }\n                  pcVar10 = (char *)FUN_00026170();\n                  if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }\n                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;\n                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;\n                  if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }\n                  pcVar11 = (char *)0x0;\n                  do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);\n                  *param_6 = 0;\n                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;\n                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;\n                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;\n                  if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }\n                  iVar16 = *(int *)(iVar3 + 0x5c);\n                  if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }\n                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }\n                  FUN_00026c30();\n                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                  ppuVar18 = &puStack_70;\n                  local_b0 = 0;\n                  uVar14 = 0;\n                  puStack_70 = __ptr;\ncode_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);\n                  if (local_b0 == 0) goto code_r0x000319be;\n                  goto code_r0x0003093e;\n                }" ({ "{") (if_statement "if (puStack_70 == (uint *)0x3) {\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }" (if "if") (parenthesized_expression "(puStack_70 == (uint *)0x3)" (( "(") (binary_expression "puStack_70 == (uint *)0x3" (identifier "puStack_70") (== "==") (cast_expression "(uint *)0x3" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x3"))) () ")")) (compound_statement "{\n                    uVar13 = 0xffffffff;\n                    pcVar10 = pcStack_6c;\n                    do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');\n                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;\n                  }" ({ "{") (expression_statement "uVar13 = 0xffffffff;" (assignment_expression "uVar13 = 0xffffffff" (identifier "uVar13") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "pcVar10 = pcStack_6c;" (assignment_expression "pcVar10 = pcStack_6c" (identifier "pcVar10") (= "=") (identifier "pcStack_6c")) (; ";")) (do_statement "do {\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    } while (cVar2 != '\0');" (do "do") (compound_statement "{\n                      if (uVar13 == 0) break;\n                      uVar13 = uVar13 - 1;\n                      cVar2 = *pcVar10;\n                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;\n                    }" ({ "{") (if_statement "if (uVar13 == 0) break;" (if "if") (parenthesized_expression "(uVar13 == 0)" (( "(") (binary_expression "uVar13 == 0" (identifier "uVar13") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" (identifier "uVar13") (= "=") (binary_expression "uVar13 - 1" (identifier "uVar13") (- "-") (number_literal "1"))) (; ";")) (expression_statement "cVar2 = *pcVar10;" (assignment_expression "cVar2 = *pcVar10" (identifier "cVar2") (= "=") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10"))) (; ";")) (expression_statement "pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;" (assignment_expression "pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1" (identifier "pcVar10") (= "=") (binary_expression "pcVar10 + (uint)bVar17 * -2 + 1" (binary_expression "pcVar10 + (uint)bVar17 * -2" (identifier "pcVar10") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar2 != '\0')" (( "(") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (if_statement "if (1 < ~uVar13 - 1) goto code_r0x00031b44;" (if "if") (parenthesized_expression "(1 < ~uVar13 - 1)" (( "(") (binary_expression "1 < ~uVar13 - 1" (number_literal "1") (< "<") (binary_expression "~uVar13 - 1" (unary_expression "~uVar13" (~ "~") (identifier "uVar13")) (- "-") (number_literal "1"))) () ")")) (goto_statement "goto code_r0x00031b44;" (goto "goto") (statement_identifier "code_r0x00031b44") (; ";"))) (} "}"))) (expression_statement "pcVar10 = (char *)FUN_00026170();" (assignment_expression "pcVar10 = (char *)FUN_00026170()" (identifier "pcVar10") (= "=") (cast_expression "(char *)FUN_00026170()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00026170()" (identifier "FUN_00026170") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if ((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {\n                    pcStack_8c = (char *)FUN_00026170();\n                  }" (if "if") (parenthesized_expression "((puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3))" (( "(") (binary_expression "(puStack_70 == (uint *)0x0) ||\n                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)" (parenthesized_expression "(puStack_70 == (uint *)0x0)" (( "(") (binary_expression "puStack_70 == (uint *)0x0" (identifier "puStack_70") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)" (( "(") (comma_expression "pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3" (assignment_expression "pcStack_8c = pcStack_6c" (identifier "pcStack_8c") (= "=") (identifier "pcStack_6c")) (, ",") (binary_expression "puStack_70 == (uint *)0x3" (identifier "puStack_70") (== "==") (cast_expression "(uint *)0x3" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x3")))) () ")"))) () ")")) (compound_statement "{\n                    pcStack_8c = (char *)FUN_00026170();\n                  }" ({ "{") (expression_statement "pcStack_8c = (char *)FUN_00026170();" (assignment_expression "pcStack_8c = (char *)FUN_00026170()" (identifier "pcStack_8c") (= "=") (cast_expression "(char *)FUN_00026170()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00026170()" (identifier "FUN_00026170") (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}"))) (if_statement "if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))\n                  goto code_r0x00031b44;" (if "if") (parenthesized_expression "((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))" (( "(") (binary_expression "(pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff)" (parenthesized_expression "(pcVar10 == (char *)0xffffffff)" (( "(") (binary_expression "pcVar10 == (char *)0xffffffff" (identifier "pcVar10") (== "==") (cast_expression "(char *)0xffffffff" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) () ")")) (|| "||") (parenthesized_expression "(pcStack_8c == (char *)0xffffffff)" (( "(") (binary_expression "pcStack_8c == (char *)0xffffffff" (identifier "pcStack_8c") (== "==") (cast_expression "(char *)0xffffffff" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) () ")"))) () ")")) (goto_statement "goto code_r0x00031b44;" (goto "goto") (statement_identifier "code_r0x00031b44") (; ";"))) (if_statement "if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;" (if "if") (parenthesized_expression "(((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10))" (( "(") (binary_expression "((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)" (parenthesized_expression "((param_4 & 0x10000) != 0)" (( "(") (binary_expression "(param_4 & 0x10000) != 0" (parenthesized_expression "(param_4 & 0x10000)" (( "(") (binary_expression "param_4 & 0x10000" (identifier "param_4") (& "&") (number_literal "0x10000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(pcStack_8c < pcVar10)" (( "(") (binary_expression "pcStack_8c < pcVar10" (identifier "pcStack_8c") (< "<") (identifier "pcVar10")) () ")"))) () ")")) (goto_statement "goto code_r0x00031b91;" (goto "goto") (statement_identifier "code_r0x00031b91") (; ";"))) (if_statement "if (puVar7 != (uint *)0x0) {\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }" (if "if") (parenthesized_expression "(puVar7 != (uint *)0x0)" (( "(") (binary_expression "puVar7 != (uint *)0x0" (identifier "puVar7") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    uVar13 = puVar7[8];\n                    __ptr_00 = (void *)puVar7[1];\n                    if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }\n                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;\n                    puVar7[8] = uVar13 + 1;\n                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;\n                  }" ({ "{") (expression_statement "uVar13 = puVar7[8];" (assignment_expression "uVar13 = puVar7[8]" (identifier "uVar13") (= "=") (subscript_expression "puVar7[8]" (identifier "puVar7") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "__ptr_00 = (void *)puVar7[1];" (assignment_expression "__ptr_00 = (void *)puVar7[1]" (identifier "__ptr_00") (= "=") (cast_expression "(void *)puVar7[1]" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")))) (; ";")) (if_statement "if (uVar13 == uStack_90) {\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }" (if "if") (parenthesized_expression "(uVar13 == uStack_90)" (( "(") (binary_expression "uVar13 == uStack_90" (identifier "uVar13") (== "==") (identifier "uStack_90")) () ")")) (compound_statement "{\n                      uStack_90 = uStack_90 * 2 + 1;\n                      uVar14 = uStack_90;\n                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);\n                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);\n                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }\n                      puVar7[2] = (uint)__ptr_01;\n                      uVar13 = puVar7[8];\n                      puVar7[1] = (uint)__ptr_00;\n                    }" ({ "{") (expression_statement "uStack_90 = uStack_90 * 2 + 1;" (assignment_expression "uStack_90 = uStack_90 * 2 + 1" (identifier "uStack_90") (= "=") (binary_expression "uStack_90 * 2 + 1" (binary_expression "uStack_90 * 2" (identifier "uStack_90") (* "*") (number_literal "2")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar14 = uStack_90;" (assignment_expression "uVar14 = uStack_90" (identifier "uVar14") (= "=") (identifier "uStack_90")) (; ";")) (expression_statement "__ptr_00 = realloc(__ptr_00,uStack_90 * 4);" (assignment_expression "__ptr_00 = realloc(__ptr_00,uStack_90 * 4)" (identifier "__ptr_00") (= "=") (call_expression "realloc(__ptr_00,uStack_90 * 4)" (identifier "realloc") (argument_list "(__ptr_00,uStack_90 * 4)" (( "(") (identifier "__ptr_00") (, ",") (binary_expression "uStack_90 * 4" (identifier "uStack_90") (* "*") (number_literal "4")) () ")")))) (; ";")) (expression_statement "__ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);" (assignment_expression "__ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4)" (identifier "__ptr_01") (= "=") (call_expression "realloc((void *)puVar7[2],uStack_90 * 4)" (identifier "realloc") (argument_list "((void *)puVar7[2],uStack_90 * 4)" (( "(") (cast_expression "(void *)puVar7[2]" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]"))) (, ",") (binary_expression "uStack_90 * 4" (identifier "uStack_90") (* "*") (number_literal "4")) () ")")))) (; ";")) (if_statement "if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }" (if "if") (parenthesized_expression "((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0))" (( "(") (binary_expression "(__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)" (parenthesized_expression "(__ptr_00 == (void *)0x0)" (( "(") (binary_expression "__ptr_00 == (void *)0x0" (identifier "__ptr_00") (== "==") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(__ptr_01 == (void *)0x0)" (( "(") (binary_expression "__ptr_01 == (void *)0x0" (identifier "__ptr_01") (== "==") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n                        free(__ptr_00);\n                        free(__ptr_01);\n                        *param_6 = 0xc;\n                        goto code_r0x000314ef;\n                      }" ({ "{") (expression_statement "free(__ptr_00);" (call_expression "free(__ptr_00)" (identifier "free") (argument_list "(__ptr_00)" (( "(") (identifier "__ptr_00") () ")"))) (; ";")) (expression_statement "free(__ptr_01);" (call_expression "free(__ptr_01)" (identifier "free") (argument_list "(__ptr_01)" (( "(") (identifier "__ptr_01") () ")"))) (; ";")) (expression_statement "*param_6 = 0xc;" (assignment_expression "*param_6 = 0xc" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (number_literal "0xc")) (; ";")) (goto_statement "goto code_r0x000314ef;" (goto "goto") (statement_identifier "code_r0x000314ef") (; ";")) (} "}"))) (expression_statement "puVar7[2] = (uint)__ptr_01;" (assignment_expression "puVar7[2] = (uint)__ptr_01" (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(uint)__ptr_01" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "__ptr_01"))) (; ";")) (expression_statement "uVar13 = puVar7[8];" (assignment_expression "uVar13 = puVar7[8]" (identifier "uVar13") (= "=") (subscript_expression "puVar7[8]" (identifier "puVar7") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "puVar7[1] = (uint)__ptr_00;" (assignment_expression "puVar7[1] = (uint)__ptr_00" (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(uint)__ptr_00" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "__ptr_00"))) (; ";")) (} "}"))) (expression_statement "*(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;" (assignment_expression "*(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10" (pointer_expression "*(char **)((int)__ptr_00 + uVar13 * 4)" (* "*") (cast_expression "(char **)((int)__ptr_00 + uVar13 * 4)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)__ptr_00 + uVar13 * 4)" (( "(") (binary_expression "(int)__ptr_00 + uVar13 * 4" (cast_expression "(int)__ptr_00" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__ptr_00")) (+ "+") (binary_expression "uVar13 * 4" (identifier "uVar13") (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "pcVar10")) (; ";")) (expression_statement "puVar7[8] = uVar13 + 1;" (assignment_expression "puVar7[8] = uVar13 + 1" (subscript_expression "puVar7[8]" (identifier "puVar7") ([ "[") (number_literal "8") (] "]")) (= "=") (binary_expression "uVar13 + 1" (identifier "uVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;" (assignment_expression "*(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c" (pointer_expression "*(char **)(puVar7[2] + uVar13 * 4)" (* "*") (cast_expression "(char **)(puVar7[2] + uVar13 * 4)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar7[2] + uVar13 * 4)" (( "(") (binary_expression "puVar7[2] + uVar13 * 4" (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) (+ "+") (binary_expression "uVar13 * 4" (identifier "uVar13") (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "pcStack_8c")) (; ";")) (} "}"))) (expression_statement "pcVar11 = (char *)0x0;" (assignment_expression "pcVar11 = (char *)0x0" (identifier "pcVar11") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (do_statement "do {\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  } while (pcVar11 != (char *)0x100);" (do "do") (compound_statement "{\n                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }\n                    pcVar11 = pcVar11 + 1;\n                  }" ({ "{") (if_statement "if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }" (if "if") (parenthesized_expression "((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c))" (( "(") (binary_expression "(pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)" (parenthesized_expression "(pcVar10 <= pcVar11)" (( "(") (binary_expression "pcVar10 <= pcVar11" (identifier "pcVar10") (<= "<=") (identifier "pcVar11")) () ")")) (&& "&&") (parenthesized_expression "(pcVar11 <= pcStack_8c)" (( "(") (binary_expression "pcVar11 <= pcStack_8c" (identifier "pcVar11") (<= "<=") (identifier "pcStack_8c")) () ")"))) () ")")) (compound_statement "{\n                      __ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);\n                    }" ({ "{") (expression_statement "__ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);" (assignment_expression "__ptr[(int)pcVar11 >> 5] =\n                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f)" (subscript_expression "__ptr[(int)pcVar11 >> 5]" (identifier "__ptr") ([ "[") (binary_expression "(int)pcVar11 >> 5" (cast_expression "(int)pcVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar11")) (>> ">>") (number_literal "5")) (] "]")) (= "=") (binary_expression "__ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f)" (subscript_expression "__ptr[(int)pcVar11 >> 5]" (identifier "__ptr") ([ "[") (binary_expression "(int)pcVar11 >> 5" (cast_expression "(int)pcVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar11")) (>> ">>") (number_literal "5")) (] "]")) (| "|") (binary_expression "1 << ((byte)pcVar11 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "((byte)pcVar11 & 0x1f)" (( "(") (binary_expression "(byte)pcVar11 & 0x1f" (cast_expression "(byte)pcVar11" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "pcVar11")) (& "&") (number_literal "0x1f")) () ")"))))) (; ";")) (} "}"))) (expression_statement "pcVar11 = pcVar11 + 1;" (assignment_expression "pcVar11 = pcVar11 + 1" (identifier "pcVar11") (= "=") (binary_expression "pcVar11 + 1" (identifier "pcVar11") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pcVar11 != (char *)0x100)" (( "(") (binary_expression "pcVar11 != (char *)0x100" (identifier "pcVar11") (!= "!=") (cast_expression "(char *)0x100" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x100"))) () ")")) (; ";")) (expression_statement "*param_6 = 0;" (assignment_expression "*param_6 = 0" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (number_literal "0")) (; ";")) (if_statement "if ((char)param_3[1] == '\x02') goto code_r0x00031615;" (if "if") (parenthesized_expression "((char)param_3[1] == '\x02')" (( "(") (binary_expression "(char)param_3[1] == '\x02'" (cast_expression "(char)param_3[1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) (== "==") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (goto_statement "goto code_r0x00031615;" (goto "goto") (statement_identifier "code_r0x00031615") (; ";"))) (if_statement "if ((char)param_3[1] != '\x15') goto code_r0x000314d1;" (if "if") (parenthesized_expression "((char)param_3[1] != '\x15')" (( "(") (binary_expression "(char)param_3[1] != '\x15'" (cast_expression "(char)param_3[1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) (!= "!=") (char_literal "'\x15'" (' "'") (escape_sequence "\x15") (' "'"))) () ")")) (goto_statement "goto code_r0x000314d1;" (goto "goto") (statement_identifier "code_r0x000314d1") (; ";"))) (expression_statement "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;" (assignment_expression "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0" (pointer_expression "*(int *)(param_1 + 0x28)" (* "*") (cast_expression "(int *)(param_1 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (binary_expression "*(int *)(param_1 + 0x28) + uStack_c0" (pointer_expression "*(int *)(param_1 + 0x28)" (* "*") (cast_expression "(int *)(param_1 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (+ "+") (identifier "uStack_c0"))) (; ";")) (if_statement "if (bVar1) {\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n                    puVar7 = __ptr;\n                    do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);\n                  }" ({ "{") (expression_statement "puVar7 = __ptr;" (assignment_expression "puVar7 = __ptr" (identifier "puVar7") (= "=") (identifier "__ptr")) (; ";")) (do_statement "do {\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    } while (__ptr + 8 != puVar7);" (do "do") (compound_statement "{\n                      *puVar7 = ~*puVar7;\n                      puVar7 = puVar7 + 1;\n                    }" ({ "{") (expression_statement "*puVar7 = ~*puVar7;" (assignment_expression "*puVar7 = ~*puVar7" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (unary_expression "~*puVar7" (~ "~") (pointer_expression "*puVar7" (* "*") (identifier "puVar7")))) (; ";")) (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" (identifier "puVar7") (= "=") (binary_expression "puVar7 + 1" (identifier "puVar7") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(__ptr + 8 != puVar7)" (( "(") (binary_expression "__ptr + 8 != puVar7" (binary_expression "__ptr + 8" (identifier "__ptr") (+ "+") (number_literal "8")) (!= "!=") (identifier "puVar7")) () ")")) (; ";")) (} "}"))) (expression_statement "iVar16 = *(int *)(iVar3 + 0x5c);" (assignment_expression "iVar16 = *(int *)(iVar3 + 0x5c)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(iVar3 + 0x5c)" (* "*") (cast_expression "(int *)(iVar3 + 0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x5c)" (( "(") (binary_expression "iVar3 + 0x5c" (identifier "iVar3") (+ "+") (number_literal "0x5c")) () ")"))))) (; ";")) (if_statement "if (1 < iVar16) {\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }" (if "if") (parenthesized_expression "(1 < iVar16)" (( "(") (binary_expression "1 < iVar16" (number_literal "1") (< "<") (identifier "iVar16")) () ")")) (compound_statement "{\n                    iVar4 = *(int *)(iVar3 + 0x3c);\n                    iVar12 = 0;\n                    do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);\n                  }" ({ "{") (expression_statement "iVar4 = *(int *)(iVar3 + 0x3c);" (assignment_expression "iVar4 = *(int *)(iVar3 + 0x3c)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(iVar3 + 0x3c)" (* "*") (cast_expression "(int *)(iVar3 + 0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x3c)" (( "(") (binary_expression "iVar3 + 0x3c" (identifier "iVar3") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    } while (iVar12 != 8);" (do "do") (compound_statement "{\n                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);\n                      iVar12 = iVar12 + 1;\n                    }" ({ "{") (expression_statement "__ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);" (assignment_expression "__ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4)" (subscript_expression "__ptr[iVar12]" (identifier "__ptr") ([ "[") (identifier "iVar12") (] "]")) (= "=") (binary_expression "__ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4)" (subscript_expression "__ptr[iVar12]" (identifier "__ptr") ([ "[") (identifier "iVar12") (] "]")) (& "&") (pointer_expression "*(uint *)(iVar4 + iVar12 * 4)" (* "*") (cast_expression "(uint *)(iVar4 + iVar12 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + iVar12 * 4)" (( "(") (binary_expression "iVar4 + iVar12 * 4" (identifier "iVar4") (+ "+") (binary_expression "iVar12 * 4" (identifier "iVar12") (* "*") (number_literal "4"))) () ")")))))) (; ";")) (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + 1" (identifier "iVar12") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar12 != 8)" (( "(") (binary_expression "iVar12 != 8" (identifier "iVar12") (!= "!=") (number_literal "8")) () ")")) (; ";")) (} "}"))) (if_statement "if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }" (if "if") (parenthesized_expression "(((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0))))))" (( "(") (binary_expression "((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)) ||\n                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))" (parenthesized_expression "((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0))" (( "(") (binary_expression "(((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||\n                      (puVar5[8] != 0)" (parenthesized_expression "(((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0))" (( "(") (binary_expression "((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)" (parenthesized_expression "((puVar5[5] != 0) || (puVar5[6] != 0))" (( "(") (binary_expression "(puVar5[5] != 0) || (puVar5[6] != 0)" (parenthesized_expression "(puVar5[5] != 0)" (( "(") (binary_expression "puVar5[5] != 0" (subscript_expression "puVar5[5]" (identifier "puVar5") ([ "[") (number_literal "5") (] "]")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(puVar5[6] != 0)" (( "(") (binary_expression "puVar5[6] != 0" (subscript_expression "puVar5[6]" (identifier "puVar5") ([ "[") (number_literal "6") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(puVar5[7] != 0)" (( "(") (binary_expression "puVar5[7] != 0" (subscript_expression "puVar5[7]" (identifier "puVar5") ([ "[") (number_literal "7") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(puVar5[8] != 0)" (( "(") (binary_expression "puVar5[8] != 0" (subscript_expression "puVar5[8]" (identifier "puVar5") ([ "[") (number_literal "8") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))" (( "(") (parenthesized_expression "(1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0))))" (( "(") (binary_expression "1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))" (binary_expression "1 < iVar16" (number_literal "1") (< "<") (identifier "iVar16")) (&& "&&") (parenthesized_expression "((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))" (( "(") (parenthesized_expression "(puVar5[9] != 0 || ((puVar5[4] & 1) != 0))" (( "(") (binary_expression "puVar5[9] != 0 || ((puVar5[4] & 1) != 0)" (binary_expression "puVar5[9] != 0" (subscript_expression "puVar5[9]" (identifier "puVar5") ([ "[") (number_literal "9") (] "]")) (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "((puVar5[4] & 1) != 0)" (( "(") (binary_expression "(puVar5[4] & 1) != 0" (parenthesized_expression "(puVar5[4] & 1)" (( "(") (binary_expression "puVar5[4] & 1" (subscript_expression "puVar5[4]" (identifier "puVar5") ([ "[") (number_literal "4") (] "]")) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;\n                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);\n                    puStack_70 = puVar5;\n                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);\n                    puVar5 = __ptr;\n                    if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }\ncode_r0x000319be:\n                    *param_6 = 0xc;\n                    goto code_r0x000314ef;\n                  }" ({ "{") (expression_statement "*(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;" (assignment_expression "*(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2" (pointer_expression "*(byte *)(iVar3 + 0x58)" (* "*") (cast_expression "(byte *)(iVar3 + 0x58)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x58)" (( "(") (binary_expression "iVar3 + 0x58" (identifier "iVar3") (+ "+") (number_literal "0x58")) () ")")))) (= "=") (binary_expression "*(byte *)(iVar3 + 0x58) | 2" (pointer_expression "*(byte *)(iVar3 + 0x58)" (* "*") (cast_expression "(byte *)(iVar3 + 0x58)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x58)" (( "(") (binary_expression "iVar3 + 0x58" (identifier "iVar3") (+ "+") (number_literal "0x58")) () ")")))) (| "|") (number_literal "2"))) (; ";")) (expression_statement "pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);" (assignment_expression "pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6)" (identifier "pcStack_6c") (= "=") (cast_expression "(char *)CONCAT31(pcStack_6c._1_3_,6)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "CONCAT31(pcStack_6c._1_3_,6)" (identifier "CONCAT31") (argument_list "(pcStack_6c._1_3_,6)" (( "(") (field_expression "pcStack_6c._1_3_" (identifier "pcStack_6c") (. ".") (field_identifier "_1_3_")) (, ",") (number_literal "6") () ")"))))) (; ";")) (expression_statement "puStack_70 = puVar5;" (assignment_expression "puStack_70 = puVar5" (identifier "puStack_70") (= "=") (identifier "puVar5")) (; ";")) (expression_statement "local_b0 = FUN_00028330(0,&puStack_70,uVar14);" (assignment_expression "local_b0 = FUN_00028330(0,&puStack_70,uVar14)" (identifier "local_b0") (= "=") (call_expression "FUN_00028330(0,&puStack_70,uVar14)" (identifier "FUN_00028330") (argument_list "(0,&puStack_70,uVar14)" (( "(") (number_literal "0") (, ",") (pointer_expression "&puStack_70" (& "&") (identifier "puStack_70")) (, ",") (identifier "uVar14") () ")")))) (; ";")) (expression_statement "puVar5 = __ptr;" (assignment_expression "puVar5 = __ptr" (identifier "puVar5") (= "=") (identifier "__ptr")) (; ";")) (if_statement "if (local_b0 != 0) {\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }" (if "if") (parenthesized_expression "(local_b0 != 0)" (( "(") (binary_expression "local_b0 != 0" (identifier "local_b0") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                      while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }\n                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);\n                      puStack_70 = __ptr;\n                      iVar3 = FUN_00028330(0,&puStack_70);\n                      if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }\n                    }" ({ "{") (while_statement "while (*puVar5 == 0) {\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }" (while "while") (parenthesized_expression "(*puVar5 == 0)" (( "(") (binary_expression "*puVar5 == 0" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                        puVar5 = puVar5 + 1;\n                        if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }\n                      }" ({ "{") (expression_statement "puVar5 = puVar5 + 1;" (assignment_expression "puVar5 = puVar5 + 1" (identifier "puVar5") (= "=") (binary_expression "puVar5 + 1" (identifier "puVar5") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (__ptr + 8 == puVar5) {\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }" (if "if") (parenthesized_expression "(__ptr + 8 == puVar5)" (( "(") (binary_expression "__ptr + 8 == puVar5" (binary_expression "__ptr + 8" (identifier "__ptr") (+ "+") (number_literal "8")) (== "==") (identifier "puVar5")) () ")")) (compound_statement "{\n                          free(__ptr);\n                          goto code_r0x0003093e;\n                        }" ({ "{") (expression_statement "free(__ptr);" (call_expression "free(__ptr)" (identifier "free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";")) (goto_statement "goto code_r0x0003093e;" (goto "goto") (statement_identifier "code_r0x0003093e") (; ";")) (} "}"))) (} "}"))) (expression_statement "pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);" (assignment_expression "pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3)" (identifier "pcStack_6c") (= "=") (cast_expression "(char *)CONCAT31(pcStack_6c._1_3_,3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "CONCAT31(pcStack_6c._1_3_,3)" (identifier "CONCAT31") (argument_list "(pcStack_6c._1_3_,3)" (( "(") (field_expression "pcStack_6c._1_3_" (identifier "pcStack_6c") (. ".") (field_identifier "_1_3_")) (, ",") (number_literal "3") () ")"))))) (; ";")) (expression_statement "puStack_70 = __ptr;" (assignment_expression "puStack_70 = __ptr" (identifier "puStack_70") (= "=") (identifier "__ptr")) (; ";")) (expression_statement "iVar3 = FUN_00028330(0,&puStack_70);" (assignment_expression "iVar3 = FUN_00028330(0,&puStack_70)" (identifier "iVar3") (= "=") (call_expression "FUN_00028330(0,&puStack_70)" (identifier "FUN_00028330") (argument_list "(0,&puStack_70)" (( "(") (number_literal "0") (, ",") (pointer_expression "&puStack_70" (& "&") (identifier "puStack_70")) () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                        cStack_64 = '\n';\n                        ppuVar18 = &puStack_68;\n                        goto code_r0x000319aa;\n                      }" ({ "{") (expression_statement "cStack_64 = '\n';" (assignment_expression "cStack_64 = '\n'" (identifier "cStack_64") (= "=") (char_literal "'\n'" (' "'") (escape_sequence "\n") (' "'"))) (; ";")) (expression_statement "ppuVar18 = &puStack_68;" (assignment_expression "ppuVar18 = &puStack_68" (identifier "ppuVar18") (= "=") (pointer_expression "&puStack_68" (& "&") (identifier "puStack_68"))) (; ";")) (goto_statement "goto code_r0x000319aa;" (goto "goto") (statement_identifier "code_r0x000319aa") (; ";")) (} "}"))) (} "}"))) (labeled_statement "code_r0x000319be:\n                    *param_6 = 0xc;" (statement_identifier "code_r0x000319be") (: ":") (expression_statement "*param_6 = 0xc;" (assignment_expression "*param_6 = 0xc" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (number_literal "0xc")) (; ";"))) (goto_statement "goto code_r0x000314ef;" (goto "goto") (statement_identifier "code_r0x000314ef") (; ";")) (} "}"))) (expression_statement "FUN_00026c30();" (call_expression "FUN_00026c30()" (identifier "FUN_00026c30") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);" (assignment_expression "pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3)" (identifier "pcStack_6c") (= "=") (cast_expression "(char *)CONCAT31(pcStack_6c._1_3_,3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "CONCAT31(pcStack_6c._1_3_,3)" (identifier "CONCAT31") (argument_list "(pcStack_6c._1_3_,3)" (( "(") (field_expression "pcStack_6c._1_3_" (identifier "pcStack_6c") (. ".") (field_identifier "_1_3_")) (, ",") (number_literal "3") () ")"))))) (; ";")) (expression_statement "ppuVar18 = &puStack_70;" (assignment_expression "ppuVar18 = &puStack_70" (identifier "ppuVar18") (= "=") (pointer_expression "&puStack_70" (& "&") (identifier "puStack_70"))) (; ";")) (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" (identifier "local_b0") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";")) (expression_statement "puStack_70 = __ptr;" (assignment_expression "puStack_70 = __ptr" (identifier "puStack_70") (= "=") (identifier "__ptr")) (; ";")) (labeled_statement "code_r0x000319aa:\n                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);" (statement_identifier "code_r0x000319aa") (: ":") (expression_statement "local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);" (assignment_expression "local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14)" (identifier "local_b0") (= "=") (call_expression "FUN_00028330(local_b0,ppuVar18,uVar14)" (identifier "FUN_00028330") (argument_list "(local_b0,ppuVar18,uVar14)" (( "(") (identifier "local_b0") (, ",") (identifier "ppuVar18") (, ",") (identifier "uVar14") () ")")))) (; ";"))) (if_statement "if (local_b0 == 0) goto code_r0x000319be;" (if "if") (parenthesized_expression "(local_b0 == 0)" (( "(") (binary_expression "local_b0 == 0" (identifier "local_b0") (== "==") (number_literal "0")) () ")")) (goto_statement "goto code_r0x000319be;" (goto "goto") (statement_identifier "code_r0x000319be") (; ";"))) (goto_statement "goto code_r0x0003093e;" (goto "goto") (statement_identifier "code_r0x0003093e") (; ";")) (} "}"))) (labeled_statement "code_r0x00031b44:\n                *param_6 = 3;" (statement_identifier "code_r0x00031b44") (: ":") (expression_statement "*param_6 = 3;" (assignment_expression "*param_6 = 3" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (number_literal "3")) (; ";"))) (} "}")))) (} "}")) (else_clause "else {\n              *param_6 = iVar16;\n            }" (else "else") (compound_statement "{\n              *param_6 = iVar16;\n            }" ({ "{") (expression_statement "*param_6 = iVar16;" (assignment_expression "*param_6 = iVar16" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "iVar16")) (; ";")) (} "}")))) (} "}")))) (} "}")) (else_clause "else {\n          *param_6 = iVar16;\n        }" (else "else") (compound_statement "{\n          *param_6 = iVar16;\n        }" ({ "{") (expression_statement "*param_6 = iVar16;" (assignment_expression "*param_6 = iVar16" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "iVar16")) (; ";")) (} "}")))) (goto_statement "goto code_r0x000314ef;" (goto "goto") (statement_identifier "code_r0x000314ef") (; ";")) (} "}"))) (expression_statement "*(byte *)(puVar5 + 4) = (byte)puVar5[4] | 1;" (assignment_expression "*(byte *)(puVar5 + 4) = (byte)puVar5[4] | 1" (pointer_expression "*(byte *)(puVar5 + 4)" (* "*") (cast_expression "(byte *)(puVar5 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 4)" (( "(") (binary_expression "puVar5 + 4" (identifier "puVar5") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "(byte)puVar5[4] | 1" (cast_expression "(byte)puVar5[4]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "puVar5[4]" (identifier "puVar5") ([ "[") (number_literal "4") (] "]"))) (| "|") (number_literal "1"))) (; ";")) (if_statement "if ((param_4 & 0x100) != 0) {\n        *__ptr = *__ptr | 0x400;\n      }" (if "if") (parenthesized_expression "((param_4 & 0x100) != 0)" (( "(") (binary_expression "(param_4 & 0x100) != 0" (parenthesized_expression "(param_4 & 0x100)" (( "(") (binary_expression "param_4 & 0x100" (identifier "param_4") (& "&") (number_literal "0x100")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        *__ptr = *__ptr | 0x400;\n      }" ({ "{") (expression_statement "*__ptr = *__ptr | 0x400;" (assignment_expression "*__ptr = *__ptr | 0x400" (pointer_expression "*__ptr" (* "*") (identifier "__ptr")) (= "=") (binary_expression "*__ptr | 0x400" (pointer_expression "*__ptr" (* "*") (identifier "__ptr")) (| "|") (number_literal "0x400"))) (; ";")) (} "}"))) (expression_statement "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;" (assignment_expression "*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0" (pointer_expression "*(int *)(param_1 + 0x28)" (* "*") (cast_expression "(int *)(param_1 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (binary_expression "*(int *)(param_1 + 0x28) + uStack_c0" (pointer_expression "*(int *)(param_1 + 0x28)" (* "*") (cast_expression "(int *)(param_1 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (+ "+") (identifier "uStack_c0"))) (; ";")) (expression_statement "uStack_c0 = FUN_00025ab0();" (assignment_expression "uStack_c0 = FUN_00025ab0()" (identifier "uStack_c0") (= "=") (call_expression "FUN_00025ab0()" (identifier "FUN_00025ab0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "cVar2 = (char)param_3[1];" (assignment_expression "cVar2 = (char)param_3[1]" (identifier "cVar2") (= "=") (cast_expression "(char)param_3[1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")))) (; ";")) (if_statement "if (cVar2 != '\x02') {\n        bVar1 = true;\n        goto code_r0x000312a6;\n      }" (if "if") (parenthesized_expression "(cVar2 != '\x02')" (( "(") (binary_expression "cVar2 != '\x02'" (identifier "cVar2") (!= "!=") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (compound_statement "{\n        bVar1 = true;\n        goto code_r0x000312a6;\n      }" ({ "{") (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" (identifier "bVar1") (= "=") (true "true")) (; ";")) (goto_statement "goto code_r0x000312a6;" (goto "goto") (statement_identifier "code_r0x000312a6") (; ";")) (} "}"))) (} "}"))) (expression_statement "*param_6 = 2;" (assignment_expression "*param_6 = 2" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (number_literal "2")) (; ";")) (labeled_statement "code_r0x000314ef:\n    free(__ptr);" (statement_identifier "code_r0x000314ef") (: ":") (expression_statement "free(__ptr);" (call_expression "free(__ptr)" (identifier "free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";"))) (expression_statement "FUN_00026c30();" (call_expression "FUN_00026c30()" (identifier "FUN_00026c30") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (*param_6 == 0) {\n      local_b0 = 0;\n      goto code_r0x0003093e;\n    }" (if "if") (parenthesized_expression "(*param_6 == 0)" (( "(") (binary_expression "*param_6 == 0" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      local_b0 = 0;\n      goto code_r0x0003093e;\n    }" ({ "{") (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" (identifier "local_b0") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto code_r0x0003093e;" (goto "goto") (statement_identifier "code_r0x0003093e") (; ";")) (} "}"))) (labeled_statement "LAB_00030e58:\n    local_b0 = 0;" (statement_identifier "LAB_00030e58") (: ":") (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" (identifier "local_b0") (= "=") (number_literal "0")) (; ";"))) (goto_statement "goto LAB_00030965;" (goto "goto") (statement_identifier "LAB_00030965") (; ";"))) (case_statement "case '\x17':\n    if ((param_4 & 0x1000000) == 0) goto code_r0x000308ec;\ncode_r0x00030b48:\n    local_b0 = 0;\n    *param_6 = 0xd;\n    goto LAB_00030965;" (case "case") (char_literal "'\x17'" (' "'") (escape_sequence "\x17") (' "'")) (: ":") (if_statement "if ((param_4 & 0x1000000) == 0) goto code_r0x000308ec;" (if "if") (parenthesized_expression "((param_4 & 0x1000000) == 0)" (( "(") (binary_expression "(param_4 & 0x1000000) == 0" (parenthesized_expression "(param_4 & 0x1000000)" (( "(") (binary_expression "param_4 & 0x1000000" (identifier "param_4") (& "&") (number_literal "0x1000000")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto code_r0x000308ec;" (goto "goto") (statement_identifier "code_r0x000308ec") (; ";"))) (labeled_statement "code_r0x00030b48:\n    local_b0 = 0;" (statement_identifier "code_r0x00030b48") (: ":") (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" (identifier "local_b0") (= "=") (number_literal "0")) (; ";"))) (expression_statement "*param_6 = 0xd;" (assignment_expression "*param_6 = 0xd" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (number_literal "0xd")) (; ";")) (goto_statement "goto LAB_00030965;" (goto "goto") (statement_identifier "LAB_00030965") (; ";"))) (case_statement "case ' ':" (case "case") (char_literal "' '" (' "'") (character " ") (' "'")) (: ":")) (case_statement "case '!':\n    local_b0 = FUN_0002b9b0(&UNK_000370bb,cVar2 == '!',param_6);\n    iVar3 = *param_6;\n    goto joined_r0x00030f59;" (case "case") (char_literal "'!'" (' "'") (character "!") (' "'")) (: ":") (expression_statement "local_b0 = FUN_0002b9b0(&UNK_000370bb,cVar2 == '!',param_6);" (assignment_expression "local_b0 = FUN_0002b9b0(&UNK_000370bb,cVar2 == '!',param_6)" (identifier "local_b0") (= "=") (call_expression "FUN_0002b9b0(&UNK_000370bb,cVar2 == '!',param_6)" (identifier "FUN_0002b9b0") (argument_list "(&UNK_000370bb,cVar2 == '!',param_6)" (( "(") (pointer_expression "&UNK_000370bb" (& "&") (identifier "UNK_000370bb")) (, ",") (binary_expression "cVar2 == '!'" (identifier "cVar2") (== "==") (char_literal "'!'" (' "'") (character "!") (' "'"))) (, ",") (identifier "param_6") () ")")))) (; ";")) (expression_statement "iVar3 = *param_6;" (assignment_expression "iVar3 = *param_6" (identifier "iVar3") (= "=") (pointer_expression "*param_6" (* "*") (identifier "param_6"))) (; ";")) (goto_statement "goto joined_r0x00030f59;" (goto "goto") (statement_identifier "joined_r0x00030f59") (; ";"))) (case_statement "case '\"':" (case "case") (char_literal "'\"'" (' "'") (escape_sequence "\"") (' "'")) (: ":")) (case_statement "case '#':\n    local_b0 = FUN_0002b9b0("",cVar2 == '#',param_6);\n    iVar3 = *param_6;\njoined_r0x00030f59:\n    if ((iVar3 != 0) && (local_b0 == 0)) goto LAB_00030e58;\n    goto code_r0x0003093e;" (case "case") (char_literal "'#'" (' "'") (character "#") (' "'")) (: ":") (expression_statement "local_b0 = FUN_0002b9b0("",cVar2 == '#',param_6);" (assignment_expression "local_b0 = FUN_0002b9b0("",cVar2 == '#',param_6)" (identifier "local_b0") (= "=") (call_expression "FUN_0002b9b0("",cVar2 == '#',param_6)" (identifier "FUN_0002b9b0") (argument_list "("",cVar2 == '#',param_6)" (( "(") (string_literal """" (" """) (" """)) (, ",") (binary_expression "cVar2 == '#'" (identifier "cVar2") (== "==") (char_literal "'#'" (' "'") (character "#") (' "'"))) (, ",") (identifier "param_6") () ")")))) (; ";")) (expression_statement "iVar3 = *param_6;" (assignment_expression "iVar3 = *param_6" (identifier "iVar3") (= "=") (pointer_expression "*param_6" (* "*") (identifier "param_6"))) (; ";")) (labeled_statement "joined_r0x00030f59:\n    if ((iVar3 != 0) && (local_b0 == 0)) goto LAB_00030e58;" (statement_identifier "joined_r0x00030f59") (: ":") (if_statement "if ((iVar3 != 0) && (local_b0 == 0)) goto LAB_00030e58;" (if "if") (parenthesized_expression "((iVar3 != 0) && (local_b0 == 0))" (( "(") (binary_expression "(iVar3 != 0) && (local_b0 == 0)" (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(local_b0 == 0)" (( "(") (binary_expression "local_b0 == 0" (identifier "local_b0") (== "==") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_00030e58;" (goto "goto") (statement_identifier "LAB_00030e58") (; ";")))) (goto_statement "goto code_r0x0003093e;" (goto "goto") (statement_identifier "code_r0x0003093e") (; ";"))) (case_statement "case '$':\n    local_b0 = 0;\n    *param_6 = 5;\n    goto LAB_00030965;" (case "case") (char_literal "'$'" (' "'") (character "$") (' "'")) (: ":") (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" (identifier "local_b0") (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_6 = 5;" (assignment_expression "*param_6 = 5" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (number_literal "5")) (; ";")) (goto_statement "goto LAB_00030965;" (goto "goto") (statement_identifier "LAB_00030965") (; ";"))) (} "}"))) (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" (identifier "local_b0") (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_6 = 0xc;" (assignment_expression "*param_6 = 0xc" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (number_literal "0xc")) (; ";")) (labeled_statement "LAB_00030965:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00036030();\n  }" (statement_identifier "LAB_00030965") (: ":") (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00036030();\n  }" (if "if") (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (!= "!=") (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                    \n    FUN_00036030();\n  }" ({ "{") (expression_statement "FUN_00036030();" (call_expression "FUN_00036030()" (identifier "FUN_00036030") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (return_statement "return local_b0;" (return "return") (identifier "local_b0") (; ";")) (labeled_statement "code_r0x000314d1:\n  uVar6 = 0;" (statement_identifier "code_r0x000314d1") (: ":") (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" (identifier "uVar6") (= "=") (number_literal "0")) (; ";"))) (goto_statement "goto code_r0x000312e4;" (goto "goto") (statement_identifier "code_r0x000312e4") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */

type_8 * __regparm3
var_21(re_string_t *regexp,type_21 *preg,type_20 *token,type_10 var_9,type_18 var_12,
                type_11 *err)

{
  type_1 **ppbVar1;
  int *piVar2;
  int var_51;
  type_2 *dfa;
  type_3 uVar4;
  type_4 var_8;
  type_5 pbVar6;
  bool bVar7;
  type_6 uVar8;
  char var_22;
  type_7 b;
  int var_4;
  type_8 *var_20;
  type_8 *var_6;
  type_9 aVar13;
  type_9 cset;
  type_10 syntax_00;
  type_11 var_33;
  int var_24;
  type_9 aVar16;
  type_12 **ppuVar17;
  type_12 *var_26;
  type_13 aVar19;
  type_14 *var_45;
  type_14 *var_46;
  type_6 *var_47;
  type_15 *var_25;
  type_6 var_49;
  type_16 var_7;
  char *var_39;
  int var_1;
  type_17 var_15;
  type_2 *dfa_1;
  type_7 accept_hyphen;
  type_18 IVar26;
  type_11 *in_stack_ffffff34;
  type_8 *var_17;
  type_8 *var_3;
  type_8 *var_19;
  int var_43;
  type_6 *var_42;
  type_18 char_class_alloc;
  type_19 start_elem;
  type_20 br_token;
  type_20 t;
  type_6 start_name_buf [32];
  type_6 end_name_buf [32];
  
  var_15 = 0;
  var_51 = *(int *)(var_1 + 0x14);
  dfa = preg->buffer;
  var_22 = token->field_0x4;
  switch(var_22) {
  default:
    goto _L3134;
  case '\x01':
    piVar2 = &dfa->str_tree_storage_idx;
    ppbVar1 = &dfa->str_tree_storage;
    var_3 = var_2((type_2 *)ppbVar1,(type_8 *)piVar2,(type_8 *)0x0,
                                 (type_20 *)0x0,(type_2 *)token);
    if (var_3 != (type_8 *)0x0) {
      if (dfa->mb_cur_max < 2) goto LAB_0003093e;
      do {
        var_4 = regexp->cur_idx;
        if (((regexp->stop <= var_4) || (var_4 == regexp->valid_len)) ||
           (regexp->wcs[var_4] != 0xffffffff)) goto LAB_0003093e;
        var_4 = var_5(token,regexp,var_9);
        regexp->cur_idx = regexp->cur_idx + var_4;
        var_6 = var_2((type_2 *)ppbVar1,(type_8 *)piVar2,(type_8 *)0x0,
                                    (type_20 *)0x0,(type_2 *)token);
        t._4_1_ = 0x10;
        var_3 = var_2((type_2 *)ppbVar1,(type_8 *)piVar2,var_3,
                                     (type_20 *)var_6,(type_2 *)&t);
      } while (var_6 != (type_8 *)0x0 && var_3 != (type_8 *)0x0);
    }
    break;
  case '\x04':
    var_7 = 1 << ((token->opr).c & 0x1f);
    if ((dfa->completed_bkref_map & var_7) == 0) {
      var_3 = (type_8 *)0x0;
      *err = _REG_ESUBREG;
      goto LAB_00030965;
    }
    dfa->used_bkref_map = dfa->used_bkref_map | var_7;
    var_3 = var_2((type_2 *)&dfa->str_tree_storage,
                                 (type_8 *)&dfa->str_tree_storage_idx,(type_8 *)0x0,
                                 (type_20 *)0x0,(type_2 *)token);
    if (var_3 != (type_8 *)0x0) {
      dfa->nbackref = dfa->nbackref + 1;
      dfa->field_0x58 = dfa->field_0x58 | 2;
      goto LAB_0003093e;
    }
    break;
  case '\x05':
    var_3 = var_2((type_2 *)&dfa->str_tree_storage,
                                 (type_8 *)&dfa->str_tree_storage_idx,(type_8 *)0x0,
                                 (type_20 *)0x0,(type_2 *)token);
    if (var_3 == (type_8 *)0x0) break;
    if (1 < dfa->mb_cur_max) {
      dfa->field_0x58 = dfa->field_0x58 | 2;
    }
    goto LAB_0003093e;
  case '\b':
    var_8 = preg->re_nsub;
    var_6 = (type_8 *)0x0;
    preg->re_nsub = var_8 + 1;
    IVar26 = 0x30fbf;
    var_4 = var_5(token,regexp,var_9 | 0x800000);
    regexp->cur_idx = regexp->cur_idx + var_4;
    if (token->field_0x4 == '\t') {
LAB_00030fd0:
      if (var_8 < var_10) {
        dfa->completed_bkref_map = dfa->completed_bkref_map | 1 << ((type_17)var_8 & 0x1f);
      }
      t._4_1_ = 0x11;
      var_3 = var_2((type_2 *)&dfa->str_tree_storage,
                                   (type_8 *)&dfa->str_tree_storage_idx,var_6,
                                   (type_20 *)0x0,(type_2 *)&t);
      if (var_3 != (type_8 *)0x0) {
        (var_3->token).opr.ctx_type = var_8;
        goto LAB_0003093e;
      }
      break;
    }
    var_6 = var_11(regexp,(type_21 *)var_9,(type_20 *)(var_12 + 1),(type_10)err,
                            IVar26,in_stack_ffffff34);
    if (*err == var_13) {
      if (token->field_0x4 == '\t') goto LAB_00030fd0;
      if (var_6 != (type_8 *)0x0) {
        var_14(var_6,free_tree,(void *)0x0);
      }
      *err = _REG_EPAREN;
    }
    goto _L3134;
  case '\t':
_L3123:
    if ((var_9 & 0x20000) == 0) {
      var_3 = (type_8 *)0x0;
      *err = _REG_ERPAREN;
      goto LAB_00030965;
    }
  case '\x18':
_L3118:
    token->field_0x4 = 1;
    var_3 = var_2((type_2 *)&dfa->str_tree_storage,
                                 (type_8 *)&dfa->str_tree_storage_idx,(type_8 *)0x0,
                                 (type_20 *)0x0,(type_2 *)token);
    if (var_3 != (type_8 *)0x0) {
LAB_0003093e:
      var_4 = var_5(token,regexp,var_9);
      regexp->cur_idx = regexp->cur_idx + var_4;
      var_7 = (type_16)(type_17)token->field_0x4;
      do {
        var_15 = (type_17)var_7;
        if ((0x17 < var_15) || ((0x8c0800U >> (var_7 & 0x1f) & 1) == 0)) goto LAB_00030965;
        IVar26 = regexp->cur_idx;
        aVar13 = token->opr;
        uVar4 = *(type_3 *)&token->field_0x4;
        var_19 = var_3;
        var_6 = var_3;
        if (var_15 == 0x17) {
          var_7 = var_16(regexp,token,var_9);
          if (var_7 == 0xffffffff) {
            if ((token->field_0x4 == '\x01') && ((token->opr).c == ',')) {
              var_7 = 0;
LAB_00030d4d:
              var_17 = (type_8 *)var_16(regexp,token,var_9);
              if (var_17 == (type_8 *)0xfffffffe) goto LAB_00030cd8;
              if (((var_17 == (type_8 *)0xffffffff) || ((int)var_7 <= (int)var_17)) &&
                 (token->field_0x4 == '\x18')) {
                var_20 = (type_8 *)var_7;
                if (var_17 != (type_8 *)0xffffffff) goto LAB_00030dfc;
                goto joined_r0x00030e0b;
              }
            }
LAB_00030e40:
            *err = _REG_BADBR;
          }
          else {
            if (var_7 != 0xfffffffe) {
              var_17 = (type_8 *)var_7;
              if (token->field_0x4 != '\x18') {
                if (token->field_0x4 != '\x01') goto LAB_00030cd8;
                if ((token->opr).c == ',') goto LAB_00030d4d;
                if ((var_9 & 0x200000) == 0) goto LAB_00030e40;
                goto LAB_00030ce9;
              }
LAB_00030dfc:
              var_20 = var_17;
joined_r0x00030e0b:
              if (0x7fff < (int)var_20) {
                *err = _REG_ESIZE;
                goto LAB_00030e4a;
              }
              var_4 = var_5(token,regexp,var_9);
              regexp->cur_idx = regexp->cur_idx + var_4;
              if (var_3 == (type_8 *)0x0) goto LAB_00030d10;
              if (var_17 != (type_8 *)0x0 || var_7 != 0) {
                if ((int)var_7 < 1) {
                  var_19 = (type_8 *)0x0;
                  goto LAB_00030eb9;
                }
                if (var_7 != 1) {
                  var_4 = 2;
                  do {
                    var_6 = var_18(var_6,dfa);
                    t._4_1_ = 0x10;
                    var_19 = var_2((type_2 *)&dfa->str_tree_storage,
                                                 (type_8 *)&dfa->str_tree_storage_idx,var_19,
                                                 (type_20 *)var_6,(type_2 *)&t);
                    if ((var_6 == (type_8 *)0x0) || (var_19 == (type_8 *)0x0))
                    goto LAB_00030be0;
                    var_4 = var_4 + 1;
                  } while (var_4 <= (int)var_7);
                }
                var_20 = var_19;
                if (var_17 != (type_8 *)var_7) goto LAB_00030e9c;
                goto LAB_00030b08;
              }
              var_14(var_3,free_tree,(void *)0x0);
              if (*err == var_13) goto LAB_00030d1e;
              goto LAB_00030bea;
            }
LAB_00030cd8:
            if ((var_9 & 0x200000) == 0) {
              if (token->field_0x4 != '\x02') goto LAB_00030e40;
              *err = _REG_EBRACE;
              goto LAB_00030e4a;
            }
LAB_00030ce9:
            regexp->cur_idx = IVar26;
            token->opr = aVar13;
            *(type_3 *)&token->field_0x4 = uVar4;
            token->field_0x4 = 1;
            var_20 = var_3;
LAB_00030af2:
            if ((*err == var_13) || (var_20 != (type_8 *)0x0)) goto LAB_00030b08;
          }
LAB_00030e4a:
          if (var_3 == (type_8 *)0x0) goto _L3134;
LAB_00030bea:
          var_14(var_3,free_tree,(void *)0x0);
          var_3 = (type_8 *)0x0;
          goto LAB_00030965;
        }
        var_7 = (type_16)(var_15 == 0x12);
        if (var_15 == 0x13) {
          var_4 = var_5(token,regexp,var_9);
          regexp->cur_idx = regexp->cur_idx + var_4;
          if (var_3 == (type_8 *)0x0) goto LAB_00030d10;
          if ((var_3->token).field_0x4 == '\x11') {
            var_17 = (type_8 *)0x1;
            var_19 = (type_8 *)0x0;
            goto LAB_00030c76;
          }
          var_17 = (type_8 *)0x1;
          t._4_1_ = 10;
          var_19 = (type_8 *)0x0;
LAB_00030a18:
          ppbVar1 = &dfa->str_tree_storage;
          piVar2 = &dfa->str_tree_storage_idx;
          var_20 = var_2((type_2 *)ppbVar1,(type_8 *)piVar2,var_6,
                                      (type_20 *)0x0,(type_2 *)&t);
          if (var_20 == (type_8 *)0x0) {
LAB_00030be0:
            *err = _REG_ESPACE;
            goto LAB_00030bea;
          }
          for (var_4 = var_7 + 2; var_4 <= (int)var_17; var_4 = var_4 + 1) {
            var_6 = var_18(var_6,dfa);
            t._4_1_ = 0x10;
            var_20 = var_2((type_2 *)ppbVar1,(type_8 *)piVar2,var_20,
                                        (type_20 *)var_6,(type_2 *)&t);
            if ((var_6 == (type_8 *)0x0) || (var_20 == (type_8 *)0x0)) goto LAB_00030be0;
            t._4_1_ = 10;
            var_20 = var_2((type_2 *)ppbVar1,(type_8 *)piVar2,var_20,
                                        (type_20 *)0x0,(type_2 *)&t);
            if (var_20 == (type_8 *)0x0) goto LAB_00030be0;
          }
          if (var_19 != (type_8 *)0x0) {
            t._4_1_ = 0x10;
            var_20 = var_2((type_2 *)ppbVar1,(type_8 *)piVar2,var_19,
                                        (type_20 *)var_20,(type_2 *)&t);
            goto LAB_00030af2;
          }
        }
        else {
          var_4 = var_5(token,regexp,var_9);
          regexp->cur_idx = regexp->cur_idx + var_4;
          if (var_3 != (type_8 *)0x0) {
            if (var_15 != 0x12) {
              if ((var_3->token).field_0x4 == '\x11') {
                var_17 = (type_8 *)0xffffffff;
                var_7 = 0;
                var_19 = (type_8 *)0x0;
LAB_00030c76:
                var_14(var_6,mark_opt_subexp,(var_6->token).opr.sbcset);
                goto LAB_00030c8a;
              }
              var_17 = (type_8 *)0xffffffff;
              var_7 = 0;
              var_19 = (type_8 *)0x0;
LAB_00030a13:
              t._4_1_ = 0xb;
              goto LAB_00030a18;
            }
            var_17 = (type_8 *)0xffffffff;
            var_7 = 1;
LAB_00030e9c:
            var_6 = var_18(var_6,dfa);
            if (var_6 != (type_8 *)0x0) {
LAB_00030eb9:
              if ((var_6->token).field_0x4 == '\x11') goto LAB_00030c76;
LAB_00030c8a:
              if (var_17 != (type_8 *)0xffffffff) {
                t._4_1_ = 10;
                goto LAB_00030a18;
              }
              goto LAB_00030a13;
            }
            goto LAB_00030be0;
          }
LAB_00030d10:
          if (*err != var_13) goto _L3134;
LAB_00030d1e:
          var_3 = (type_8 *)0x0;
          var_20 = var_3;
        }
LAB_00030b08:
        var_3 = var_20;
        var_15 = token->field_0x4;
        var_7 = (type_16)var_15;
      } while (((var_9 & 0x1000000) == 0) || ((var_15 != 0xb && (var_15 != 0x17))));
      if (var_3 != (type_8 *)0x0) {
        var_14(var_3,free_tree,(void *)0x0);
      }
      goto LAB_00030b48;
    }
    break;
  case '\v':
  case '\x12':
  case '\x13':
_L3121:
    if ((var_9 & 0x20) == 0) {
      if ((var_9 & 0x10) != 0) {
        var_4 = var_5(token,regexp,var_9);
        regexp->cur_idx = regexp->cur_idx + var_4;
        var_3 = var_21(regexp,preg,token,var_9,var_12,err);
        goto LAB_00030965;
      }
      if (var_22 == '\t') goto _L3123;
      goto _L3118;
    }
    goto LAB_00030b48;
  case '\f':
    var_17 = (type_8 *)(token->opr).ctx_type;
    if ((((type_16)var_17 & 0x30f) != 0) && (var_15 = dfa->field_0x58, (var_15 & 0x10) == 0)) {
      dfa->field_0x58 = var_15 | 0x10;
      if ((var_15 & 8) == 0) {
        dfa->word_char[0] = 0;
        dfa->word_char[1] = 0x3ff0000;
        dfa->word_char[2] = 0x87fffffe;
        dfa->word_char[3] = 0x7fffffe;
        if ((var_15 & 4) != 0) {
          dfa->word_char[4] = 0;
          dfa->word_char[5] = 0;
          dfa->word_char[6] = 0;
          dfa->word_char[7] = 0;
          var_17 = (type_8 *)(token->opr).idx;
          goto LAB_00031089;
        }
        var_24 = 0x80;
        var_4 = 4;
      }
      else {
        var_24 = 0;
        var_4 = 0;
      }
      ppuVar17 = var_23();
      var_25 = dfa->word_char + var_4 + -0x18;
      var_26 = *ppuVar17 + var_24;
      do {
        var_4 = 0;
        do {
          if (((var_26[var_4] & 8) != 0) || (var_24 + var_4 == 0x5f)) {
            var_25[0x18] = var_25[0x18] | 1 << ((type_17)var_4 & 0x1f);
          }
          var_4 = var_4 + 1;
        } while (var_4 != 0x20);
        var_24 = var_24 + 0x20;
        var_25 = var_25 + 1;
        var_26 = var_26 + 0x20;
      } while (&dfa->state_table != (type_22 **)var_25);
    }
LAB_00031089:
    ppbVar1 = &dfa->str_tree_storage;
    piVar2 = &dfa->str_tree_storage_idx;
    if (((int)var_17 - var_27 & 0xfffffeff) == 0) {
      if (var_17 == (type_8 *)0x100) {
        (token->opr).idx = 6;
        var_17 = var_2((type_2 *)ppbVar1,(type_8 *)piVar2,(type_8 *)0x0,
                                     (type_20 *)0x0,(type_2 *)token);
        (token->opr).idx = 9;
      }
      else {
        (token->opr).idx = 5;
        var_17 = var_2((type_2 *)ppbVar1,(type_8 *)piVar2,(type_8 *)0x0,
                                     (type_20 *)0x0,(type_2 *)token);
        (token->opr).idx = 10;
      }
      var_6 = var_2((type_2 *)ppbVar1,(type_8 *)piVar2,(type_8 *)0x0,
                                  (type_20 *)0x0,(type_2 *)token);
      t._4_1_ = 10;
      var_3 = var_2((type_2 *)ppbVar1,(type_8 *)piVar2,var_17,
                                   (type_20 *)var_6,(type_2 *)&t);
      if (var_17 == (type_8 *)0x0 || var_6 == (type_8 *)0x0) break;
    }
    else {
      var_3 = var_2((type_2 *)ppbVar1,(type_8 *)piVar2,(type_8 *)0x0,
                                   (type_20 *)0x0,(type_2 *)token);
    }
    if (var_3 != (type_8 *)0x0) {
      var_4 = var_5(token,regexp,var_9);
      regexp->cur_idx = regexp->cur_idx + var_4;
      goto LAB_00030965;
    }
    break;
  case '\x14':
    aVar13.sbcset = (type_5)var_28(0x20,1);
    cset.sbcset = (type_5)var_28(0x28,1);
    if (aVar13.sbcset == (type_16 *)0x0 || (type_23 *)cset.sbcset == (type_23 *)0x0) {
      var_29(aVar13.sbcset);
      var_29(cset.sbcset);
      *err = _REG_ESPACE;
      var_3 = (type_8 *)0x0;
      goto LAB_00030965;
    }
    var_4 = 0x31289;
    var_17 = (type_8 *)var_30(token,regexp,var_9);
    var_22 = token->field_0x4;
    if (var_22 != '\x02') {
      bVar7 = false;
      if (var_22 != '\x19') {
LAB_000312a6:
        if (var_22 == '\x15') {
          token->field_0x4 = 1;
        }
        var_43 = 0;
        syntax_00 = 1;
LAB_000312e4:
        start_elem.type = var_38;
        start_elem.opr.name = start_name_buf;
        var_33 = var_31
                           (&start_elem,regexp,token,(int)var_17,(type_2 *)var_9,syntax_00,
                            var_32(var_4,0));
        if (var_33 == var_13) {
          var_4 = var_30(token,regexp,var_9);
          if ((start_elem.type - var_34 & 0xfffffffd) == 0) {
LAB_0003135b:
            if (start_elem.type < (var_35|var_36)) {
                    /* WARNING: Could not recover jumptable at 0x00031371. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              var_6 = (type_8 *)
                        (*(type_24 *)((int)&_GLOBAL_OFFSET_TABLE_ +
                                  *(int *)(&UNK_0003ad38 + start_elem.type * 4)))();
              return var_6;
            }
                    /* WARNING: Subroutine does not return */
            var_37("0","lib/regcomp.c",0xcf3,"parse_bracket_exp");
          }
          if (token->field_0x4 == '\x02') {
LAB_00031615:
            *err = _REG_EBRACK;
          }
          else {
            if (token->field_0x4 != '\x16') goto LAB_0003135b;
            regexp->cur_idx = regexp->cur_idx + var_4;
            accept_hyphen = 0xc3;
            var_24 = var_30(&t,regexp,var_9);
            if (t._4_1_ == '\x02') goto LAB_00031615;
            if (t._4_1_ == '\x15') {
              regexp->cur_idx = regexp->cur_idx - var_4;
              token->field_0x4 = 1;
              goto LAB_0003135b;
            }
            br_token._4_4_ = end_name_buf;
            br_token.opr.idx = 3;
            var_33 = var_31
                               ((type_19 *)&br_token,regexp,&t,var_24,(type_2 *)var_9,1,
                                (type_25)accept_hyphen);
            if (var_33 == var_13) {
              var_4 = 0x31728;
              var_17 = (type_8 *)var_30(token,regexp,var_9);
              aVar16.sbcset = cset.sbcset;
              if (dfa->mb_cur_max < 2) {
                aVar16.sbcset = (type_5)0x0;
              }
              if (((start_elem.type - var_34 & 0xfffffffd) == 0) ||
                 ((br_token.opr.idx - 2U & 0xfffffffd) == 0)) {
LAB_00031b91:
                *err = _REG_ERANGE;
              }
              else {
                if (start_elem.type != var_38) {
                  if (br_token.opr.sbcset == (type_5)0x3) {
                    var_7 = 0xffffffff;
                    var_39 = (char *)br_token._4_4_;
                    do {
                      if (var_7 == 0) break;
                      var_7 = var_7 - 1;
                      var_22 = *var_39;
                      var_39 = var_39 + (type_16)var_15 * -2 + 1;
                    } while (var_22 != '\0');
                    if (1 < ~var_7 - 1) goto LAB_00031b44;
                    b = '\0';
                    if (start_elem.type == var_40) goto LAB_0003178a;
LAB_000317a2:
                    var_49 = *(type_6 *)br_token._4_4_;
                  }
                  else {
                    if (start_elem.type == var_40) {
LAB_0003178a:
                      b = start_elem.opr.ch;
                      goto LAB_0003178f;
                    }
                    b = '\0';
                    var_49 = '\0';
                    uVar8 = '\0';
                    if (br_token.opr.sbcset != (type_5)0x0) goto LAB_000317a5;
LAB_00031b87:
                    b = uVar8;
                    var_49 = br_token._4_1_;
                  }
LAB_000317a5:
                  if ((start_elem.type == var_40) ||
                     (aVar19 = start_elem.opr, start_elem.type == var_38)) {
                    var_4 = 0x31b70;
                    aVar19.wch = var_41(b,aVar16.mbcset);
                  }
                  if ((br_token.opr.sbcset == (type_5)0x0) ||
                     (var_42 = (type_6 *)br_token._4_4_,
                     br_token.opr.sbcset == (type_5)0x3)) {
                    var_4 = 0x31b5e;
                    var_42 = (type_6 *)var_41(var_49,aVar16.mbcset);
                  }
                  if ((aVar19.name == (type_6 *)0xffffffff) || (var_42 == (type_6 *)0xffffffff))
                  goto LAB_00031b44;
                  if (((var_9 & 0x10000) != 0) && (var_42 < aVar19.name)) goto LAB_00031b91;
                  if ((type_23 *)aVar16.sbcset != (type_23 *)0x0) {
                    var_24 = (aVar16.mbcset)->nranges;
                    var_45 = (aVar16.mbcset)->range_starts;
                    if (var_24 == var_43) {
                      var_43 = var_43 * 2 + 1;
                      var_4 = var_43;
                      var_45 = (type_14 *)var_44(var_45,var_43 * 4);
                      var_46 = (type_14 *)var_44((aVar16.mbcset)->range_ends,var_43 * 4);
                      if ((var_45 == (type_14 *)0x0) || (var_46 == (type_14 *)0x0)) {
                        var_29(var_45);
                        var_29(var_46);
                        *err = _REG_ESPACE;
                        goto LAB_000314ef;
                      }
                      (aVar16.mbcset)->range_ends = var_46;
                      var_24 = (aVar16.mbcset)->nranges;
                      (aVar16.mbcset)->range_starts = var_45;
                    }
                    ((type_13 *)(var_45 + var_24))->name = (type_6 *)aVar19;
                    (aVar16.mbcset)->nranges = var_24 + 1;
                    (aVar16.mbcset)->range_ends[var_24] = (type_14)var_42;
                  }
                  var_47 = (type_6 *)0x0;
                  do {
                    if ((aVar19.name <= var_47) && (var_47 <= var_42)) {
                      aVar13.sbcset[(int)var_47 >> 5] =
                           aVar13.sbcset[(int)var_47 >> 5] | 1 << ((type_17)var_47 & 0x1f);
                    }
                    var_47 = var_47 + 1;
                  } while (var_47 != (type_6 *)0x100);
                  *err = var_13;
                  if (token->field_0x4 == '\x02') goto LAB_00031615;
                  if (token->field_0x4 != '\x15') goto code_r0x000314d1;
                  regexp->cur_idx = regexp->cur_idx + (int)var_17;
                  if (bVar7) {
                    aVar16.sbcset = aVar13.sbcset;
                    do {
                      *aVar16.sbcset = ~*aVar16.sbcset;
                      aVar16.sbcset = (type_5)&(aVar16.mbcset)->range_starts;
                    } while ((type_5)&(aVar13.mbcset)->nranges != aVar16.sbcset);
                  }
                  var_4 = dfa->mb_cur_max;
                  if (1 < var_4) {
                    pbVar6 = dfa->sb_char;
                    var_24 = 0;
                    do {
                      aVar13.sbcset[var_24] = aVar13.sbcset[var_24] & pbVar6[var_24];
                      var_24 = var_24 + 1;
                    } while (var_24 != 8);
                  }
                  if ((((((cset.mbcset)->nmbchars != 0) || ((cset.mbcset)->ncoll_syms != 0)) ||
                       ((cset.mbcset)->nequiv_classes != 0)) || ((cset.mbcset)->nranges != 0)) ||
                     ((1 < var_4 &&
                      (((cset.mbcset)->nchar_classes != 0 || ((*(type_17 *)(cset.idx + 0x10) & 1) != 0)
                       ))))) {
                    dfa->field_0x58 = dfa->field_0x58 | 2;
                    br_token._4_1_ = 6;
                    br_token.opr.sbcset = cset.sbcset;
                    var_3 = var_2((type_2 *)&dfa->str_tree_storage,
                                                 (type_8 *)&dfa->str_tree_storage_idx,
                                                 (type_8 *)0x0,(type_20 *)0x0,
                                                 (type_2 *)&br_token);
                    aVar16.sbcset = aVar13.sbcset;
                    if (var_3 != (type_8 *)0x0) {
                      while (*aVar16.sbcset == 0) {
                        aVar16.sbcset = (type_5)&(aVar16.mbcset)->range_starts;
                        if ((type_5)&(aVar13.mbcset)->nranges == aVar16.sbcset) {
                          var_29(aVar13.sbcset);
                          goto LAB_0003093e;
                        }
                      }
                      br_token._4_1_ = 3;
                      br_token.opr.sbcset = aVar13.sbcset;
                      var_6 = var_2((type_2 *)&dfa->str_tree_storage,
                                                  (type_8 *)&dfa->str_tree_storage_idx,
                                                  (type_8 *)0x0,(type_20 *)0x0,
                                                  (type_2 *)&br_token);
                      if (var_6 != (type_8 *)0x0) {
                        t._4_1_ = 10;
                        dfa_1 = (type_2 *)&t;
                        goto LAB_000319aa;
                      }
                    }
LAB_000319be:
                    *err = _REG_ESPACE;
                    goto LAB_000314ef;
                  }
                  var_48(cset.mbcset);
                  br_token._4_1_ = 3;
                  dfa_1 = (type_2 *)&br_token;
                  var_6 = (type_8 *)0x0;
                  var_3 = (type_8 *)0x0;
                  br_token.opr.sbcset = aVar13.sbcset;
LAB_000319aa:
                  var_3 = var_2((type_2 *)&dfa->str_tree_storage,
                                               (type_8 *)&dfa->str_tree_storage_idx,var_6,
                                               (type_20 *)var_3,dfa_1);
                  if (var_3 == (type_8 *)0x0) goto LAB_000319be;
                  goto LAB_0003093e;
                }
                var_7 = 0xffffffff;
                aVar19 = start_elem.opr;
                do {
                  if (var_7 == 0) break;
                  var_7 = var_7 - 1;
                  var_49 = *aVar19.name;
                  aVar19.name = (type_6 *)((char *)(aVar19.wch + L'\x01') + (type_16)var_15 * -2);
                } while (var_49 != '\0');
                if (~var_7 - 1 < 2) {
                  if (br_token.opr.sbcset == (type_5)0x3) {
                    var_7 = 0xffffffff;
                    var_39 = (char *)br_token._4_4_;
                    do {
                      if (var_7 == 0) break;
                      var_7 = var_7 - 1;
                      var_22 = *var_39;
                      var_39 = var_39 + (type_16)var_15 * -2 + 1;
                    } while (var_22 != '\0');
                    if (1 < ~var_7 - 1) goto LAB_00031b44;
                  }
                  b = *start_elem.opr.name;
LAB_0003178f:
                  uVar8 = b;
                  if (br_token.opr.sbcset == (type_5)0x0) goto LAB_00031b87;
                  var_49 = '\0';
                  if (br_token.opr.sbcset == (type_5)0x3) goto LAB_000317a2;
                  goto LAB_000317a5;
                }
LAB_00031b44:
                *err = _REG_ECOLLATE;
              }
            }
            else {
              *err = var_33;
            }
          }
        }
        else {
          *err = var_33;
        }
        goto LAB_000314ef;
      }
      *(type_17 *)(cset.idx + 0x10) = *(type_17 *)(cset.idx + 0x10) | 1;
      if ((var_9 & 0x100) != 0) {
        *aVar13.sbcset = *aVar13.sbcset | 0x400;
      }
      regexp->cur_idx = regexp->cur_idx + (int)var_17;
      var_4 = 0x315ee;
      var_17 = (type_8 *)var_30(token,regexp,var_9);
      var_22 = token->field_0x4;
      if (var_22 != '\x02') {
        bVar7 = true;
        goto LAB_000312a6;
      }
    }
    *err = _REG_BADPAT;
LAB_000314ef:
    var_29(aVar13.sbcset);
    var_48(cset.mbcset);
    if (*err == var_13) {
      var_3 = (type_8 *)0x0;
      goto LAB_0003093e;
    }
_L3134:
    var_3 = (type_8 *)0x0;
    goto LAB_00030965;
  case '\x17':
    if ((var_9 & 0x1000000) == 0) goto _L3121;
LAB_00030b48:
    var_3 = (type_8 *)0x0;
    *err = _REG_BADRPT;
    goto LAB_00030965;
  case ' ':
  case '!':
    var_3 = var_50(dfa,regexp->trans,"alnum","_",var_22 == '!',err);
    var_33 = *err;
    goto joined_r0x00030f59;
  case '\"':
  case '#':
    var_3 = var_50(dfa,regexp->trans,"space","",var_22 == '#',err);
    var_33 = *err;
joined_r0x00030f59:
    if ((var_33 != var_13) && (var_3 == (type_8 *)0x0)) goto _L3134;
    goto LAB_0003093e;
  case '$':
    var_3 = (type_8 *)0x0;
    *err = _REG_EESCAPE;
    goto LAB_00030965;
  }
  var_3 = (type_8 *)0x0;
  *err = _REG_ESPACE;
LAB_00030965:
  if (var_51 == *(int *)(var_1 + 0x14)) {
    return var_3;
  }
                    /* WARNING: Subroutine does not return */
  var_52();
code_r0x000314d1:
  syntax_00 = 0;
  goto LAB_000312e4;
}


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

/* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */
/* WARNING: Removing unreachable block (ram,0x00031bc6) */
/* WARNING: Removing unreachable block (ram,0x0003178a) */
/* WARNING: Removing unreachable block (ram,0x00031775) */
/* WARNING: Removing unreachable block (ram,0x00031ba0) */
/* WARNING: Removing unreachable block (ram,0x00031bab) */
/* WARNING: Removing unreachable block (ram,0x00031bad) */
/* WARNING: Removing unreachable block (ram,0x00031bb9) */
/* WARNING: Removing unreachable block (ram,0x0003177e) */
/* WARNING: Removing unreachable block (ram,0x00031b7b) */
/* WARNING: Removing unreachable block (ram,0x00031c16) */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

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

{
  bool bVar1;
  char cVar2;
  int iVar3;
  int iVar4;
  uint *__ptr;
  uint *puVar5;
  undefined4 uVar6;
  uint *puVar7;
  ushort **ppuVar8;
  ushort *puVar9;
  char *pcVar10;
  void *__ptr_00;
  void *__ptr_01;
  char *pcVar11;
  int iVar12;
  uint uVar13;
  uint uVar14;
  uint uVar15;
  int iVar16;
  int in_GS_OFFSET;
  byte bVar17;
  uint **ppuVar18;
  uint uStack_c0;
  int local_b0;
  int iStack_a4;
  uint uStack_90;
  char *pcStack_8c;
  uint *puStack_70;
  char *pcStack_6c;
  uint *puStack_68;
  char cStack_64;
  char acStack_60 [32];
  char acStack_40 [32];
  int local_20;
  
  bVar17 = 0;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  iVar3 = *param_2;
  cVar2 = (char)param_3[1];
  switch(cVar2) {
  default:
    goto LAB_00030e58;
  case '\x01':
    local_b0 = FUN_00028330(0,param_3);
    if (local_b0 != 0) {
      if (*(int *)(iVar3 + 0x5c) < 2) goto code_r0x0003093e;
      do {
        iVar3 = *(int *)(param_1 + 0x28);
        if (((*(int *)(param_1 + 0x38) <= iVar3) || (iVar3 == *(int *)(param_1 + 0x1c))) ||
           (*(int *)(*(int *)(param_1 + 8) + iVar3 * 4) != -1)) goto code_r0x0003093e;
        iVar3 = FUN_000300e0();
        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;
        iVar3 = FUN_00028330(0,param_3);
        cStack_64 = '\x10';
        local_b0 = FUN_00028330(iVar3,&puStack_68);
      } while (iVar3 != 0 && local_b0 != 0);
    }
    break;
  case '\x04':
    uVar14 = 1 << ((byte)*param_3 & 0x1f);
    if ((*(uint *)(iVar3 + 0x54) & uVar14) == 0) {
      local_b0 = 0;
      *param_6 = 6;
      goto LAB_00030965;
    }
    *(uint *)(iVar3 + 0x50) = *(uint *)(iVar3 + 0x50) | uVar14;
    local_b0 = FUN_00028330(0,param_3);
    if (local_b0 != 0) {
      *(int *)(iVar3 + 0x4c) = *(int *)(iVar3 + 0x4c) + 1;
      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;
      goto code_r0x0003093e;
    }
    break;
  case '\x05':
    local_b0 = FUN_00028330(0,param_3);
    if (local_b0 == 0) break;
    if (1 < *(int *)(iVar3 + 0x5c)) {
      *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;
    }
    goto code_r0x0003093e;
  case '\b':
    uVar14 = param_2[6];
    param_2[6] = uVar14 + 1;
    iVar16 = FUN_000300e0();
    *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;
    if ((char)param_3[1] == '\t') {
code_r0x00030fd0:
      if (uVar14 < 9) {
        *(uint *)(iVar3 + 0x54) = *(uint *)(iVar3 + 0x54) | 1 << ((byte)uVar14 & 0x1f);
      }
      cStack_64 = '\x11';
      local_b0 = FUN_00028330(0,&puStack_68);
      if (local_b0 != 0) {
        *(uint *)(local_b0 + 0x14) = uVar14;
        goto code_r0x0003093e;
      }
      break;
    }
    iVar16 = FUN_00031e70(param_4,param_5 + 1,param_6);
    if (*param_6 == 0) {
      if ((char)param_3[1] == '\t') goto code_r0x00030fd0;
      if (iVar16 != 0) {
        FUN_00025a40();
      }
      *param_6 = 8;
    }
    goto LAB_00030e58;
  case '\t':
code_r0x000313dd:
    if ((param_4 & 0x20000) == 0) {
      local_b0 = 0;
      *param_6 = 0x10;
      goto LAB_00030965;
    }
  case '\x18':
code_r0x00030910:
    *(char *)(param_3 + 1) = '\x01';
    local_b0 = FUN_00028330(0,param_3);
    if (local_b0 != 0) {
code_r0x0003093e:
      iVar3 = FUN_000300e0();
      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;
      uVar14 = (uint)(byte)param_3[1];
      do {
        bVar17 = (byte)uVar14;
        if ((0x17 < bVar17) || ((0x8c0800U >> (uVar14 & 0x1f) & 1) == 0)) goto LAB_00030965;
        uVar6 = *(undefined4 *)(param_1 + 0x28);
        uVar14 = *param_3;
        uVar13 = param_3[1];
        iStack_a4 = local_b0;
        if (bVar17 == 0x17) {
          uVar15 = FUN_000307e0();
          if (uVar15 == 0xffffffff) {
            if (((char)param_3[1] == '\x01') && ((char)*param_3 == ',')) {
              uVar15 = 0;
code_r0x00030d4d:
              uStack_c0 = FUN_000307e0();
              if (uStack_c0 == 0xfffffffe) goto code_r0x00030cd8;
              if (((uStack_c0 == 0xffffffff) || ((int)uVar15 <= (int)uStack_c0)) &&
                 ((char)param_3[1] == '\x18')) {
                uVar14 = uVar15;
                if (uStack_c0 != 0xffffffff) goto code_r0x00030dfc;
                goto joined_r0x00030e0b;
              }
            }
code_r0x00030e40:
            *param_6 = 10;
          }
          else {
            if (uVar15 != 0xfffffffe) {
              uStack_c0 = uVar15;
              if ((char)param_3[1] != '\x18') {
                if ((char)param_3[1] != '\x01') goto code_r0x00030cd8;
                if ((char)*param_3 == ',') goto code_r0x00030d4d;
                if ((param_4 & 0x200000) == 0) goto code_r0x00030e40;
                goto code_r0x00030ce9;
              }
code_r0x00030dfc:
              uVar14 = uStack_c0;
joined_r0x00030e0b:
              if (0x7fff < (int)uVar14) {
                *param_6 = 0xf;
                goto code_r0x00030e4a;
              }
              iVar3 = FUN_000300e0();
              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;
              if (local_b0 == 0) goto code_r0x00030d10;
              if (uStack_c0 != 0 || uVar15 != 0) {
                if ((int)uVar15 < 1) {
                  iStack_a4 = 0;
                  iVar3 = local_b0;
                  goto code_r0x00030eb9;
                }
                if (uVar15 != 1) {
                  iVar3 = 2;
                  do {
                    iVar16 = FUN_00028410();
                    cStack_64 = '\x10';
                    iStack_a4 = FUN_00028330(iVar16,&puStack_68);
                    if ((iVar16 == 0) || (iStack_a4 == 0)) goto code_r0x00030be0;
                    iVar3 = iVar3 + 1;
                  } while (iVar3 <= (int)uVar15);
                }
                iVar3 = iStack_a4;
                if (uStack_c0 != uVar15) goto code_r0x00030e9c;
                goto code_r0x00030b08;
              }
              FUN_00025a40();
              if (*param_6 == 0) goto code_r0x00030d1e;
              goto code_r0x00030bea;
            }
code_r0x00030cd8:
            if ((param_4 & 0x200000) == 0) {
              if ((char)param_3[1] != '\x02') goto code_r0x00030e40;
              *param_6 = 9;
              goto code_r0x00030e4a;
            }
code_r0x00030ce9:
            *(undefined4 *)(param_1 + 0x28) = uVar6;
            *param_3 = uVar14;
            param_3[1] = uVar13;
            *(char *)(param_3 + 1) = '\x01';
            iVar3 = local_b0;
code_r0x00030af2:
            if ((*param_6 == 0) || (iVar3 != 0)) goto code_r0x00030b08;
          }
code_r0x00030e4a:
          if (local_b0 == 0) goto LAB_00030e58;
code_r0x00030bea:
          FUN_00025a40();
          local_b0 = 0;
          goto LAB_00030965;
        }
        uVar15 = (uint)(bVar17 == 0x12);
        if (bVar17 == 0x13) {
          iVar3 = FUN_000300e0();
          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;
          if (local_b0 == 0) goto code_r0x00030d10;
          if (*(char *)(local_b0 + 0x18) == '\x11') {
            uStack_c0 = 1;
            iStack_a4 = 0;
            goto code_r0x00030c76;
          }
          uStack_c0 = 1;
          cStack_64 = '\n';
          iStack_a4 = 0;
code_r0x00030a18:
          iVar3 = FUN_00028330(0,&puStack_68);
          if (iVar3 == 0) {
code_r0x00030be0:
            *param_6 = 0xc;
            goto code_r0x00030bea;
          }
          for (iVar16 = uVar15 + 2; iVar16 <= (int)uStack_c0; iVar16 = iVar16 + 1) {
            iVar3 = FUN_00028410();
            cStack_64 = '\x10';
            iVar4 = FUN_00028330(iVar3,&puStack_68);
            if ((iVar3 == 0) || (iVar4 == 0)) goto code_r0x00030be0;
            cStack_64 = '\n';
            iVar3 = FUN_00028330(0,&puStack_68);
            if (iVar3 == 0) goto code_r0x00030be0;
          }
          if (iStack_a4 != 0) {
            cStack_64 = '\x10';
            iVar3 = FUN_00028330(iVar3,&puStack_68);
            goto code_r0x00030af2;
          }
        }
        else {
          iVar3 = FUN_000300e0();
          *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;
          if (local_b0 != 0) {
            if (bVar17 != 0x12) {
              if (*(char *)(local_b0 + 0x18) == '\x11') {
                uStack_c0 = 0xffffffff;
                uVar15 = 0;
                iStack_a4 = 0;
code_r0x00030c76:
                FUN_00025a40();
                goto code_r0x00030c8a;
              }
              uStack_c0 = 0xffffffff;
              uVar15 = 0;
              iStack_a4 = 0;
code_r0x00030a13:
              cStack_64 = '\v';
              goto code_r0x00030a18;
            }
            uStack_c0 = 0xffffffff;
            uVar15 = 1;
code_r0x00030e9c:
            iVar3 = FUN_00028410();
            if (iVar3 != 0) {
code_r0x00030eb9:
              if (*(char *)(iVar3 + 0x18) == '\x11') goto code_r0x00030c76;
code_r0x00030c8a:
              if (uStack_c0 != 0xffffffff) {
                cStack_64 = '\n';
                goto code_r0x00030a18;
              }
              goto code_r0x00030a13;
            }
            goto code_r0x00030be0;
          }
code_r0x00030d10:
          if (*param_6 != 0) goto LAB_00030e58;
code_r0x00030d1e:
          local_b0 = 0;
          iVar3 = local_b0;
        }
code_r0x00030b08:
        local_b0 = iVar3;
        bVar17 = (byte)param_3[1];
        uVar14 = (uint)bVar17;
      } while (((param_4 & 0x1000000) == 0) || ((bVar17 != 0xb && (bVar17 != 0x17))));
      if (local_b0 != 0) {
        FUN_00025a40();
      }
      goto code_r0x00030b48;
    }
    break;
  case '\v':
  case '\x12':
  case '\x13':
code_r0x000308ec:
    if ((param_4 & 0x20) == 0) {
      if ((param_4 & 0x10) != 0) {
        iVar3 = FUN_000300e0();
        *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;
        local_b0 = MASKED(param_4,param_5,param_6);
        goto LAB_00030965;
      }
      if (cVar2 == '\t') goto code_r0x000313dd;
      goto code_r0x00030910;
    }
    goto code_r0x00030b48;
  case '\f':
    uStack_c0 = *param_3;
    if (((uStack_c0 & 0x30f) != 0) && (bVar17 = *(byte *)(iVar3 + 0x58), (bVar17 & 0x10) == 0)) {
      *(byte *)(iVar3 + 0x58) = bVar17 | 0x10;
      if ((bVar17 & 8) == 0) {
        *(undefined4 *)(iVar3 + 0x60) = 0;
        *(undefined4 *)(iVar3 + 100) = 0x3ff0000;
        *(undefined4 *)(iVar3 + 0x68) = 0x87fffffe;
        *(undefined4 *)(iVar3 + 0x6c) = 0x7fffffe;
        if ((bVar17 & 4) != 0) {
          *(undefined4 *)(iVar3 + 0x70) = 0;
          *(undefined4 *)(iVar3 + 0x74) = 0;
          *(undefined4 *)(iVar3 + 0x78) = 0;
          *(undefined4 *)(iVar3 + 0x7c) = 0;
          uStack_c0 = *param_3;
          goto code_r0x00031089;
        }
        iVar4 = 0x80;
        iVar16 = 4;
      }
      else {
        iVar4 = 0;
        iVar16 = 0;
      }
      ppuVar8 = __ctype_b_loc();
      iVar16 = iVar3 + iVar16 * 4;
      puVar9 = *ppuVar8 + iVar4;
      do {
        iVar12 = 0;
        do {
          if (((puVar9[iVar12] & 8) != 0) || (iVar4 + iVar12 == 0x5f)) {
            *(uint *)(iVar16 + 0x60) = *(uint *)(iVar16 + 0x60) | 1 << ((byte)iVar12 & 0x1f);
          }
          iVar12 = iVar12 + 1;
        } while (iVar12 != 0x20);
        iVar4 = iVar4 + 0x20;
        iVar16 = iVar16 + 4;
        puVar9 = puVar9 + 0x20;
      } while (iVar3 + 0x20 != iVar16);
    }
code_r0x00031089:
    if ((uStack_c0 - 0x100 & 0xfffffeff) == 0) {
      if (uStack_c0 == 0x100) {
        *param_3 = 6;
        uStack_c0 = FUN_00028330(0,param_3);
        *param_3 = 9;
      }
      else {
        *param_3 = 5;
        uStack_c0 = FUN_00028330(0,param_3);
        *param_3 = 10;
      }
      iVar3 = FUN_00028330(0,param_3);
      cStack_64 = '\n';
      local_b0 = FUN_00028330(iVar3,&puStack_68);
      if (uStack_c0 == 0 || iVar3 == 0) break;
    }
    else {
      local_b0 = FUN_00028330(0,param_3);
    }
    if (local_b0 != 0) {
      iVar3 = FUN_000300e0();
      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar3;
      goto LAB_00030965;
    }
    break;
  case '\x14':
    __ptr = (uint *)calloc(0x20,1);
    puVar5 = (uint *)calloc(0x28,1);
    if (__ptr == (uint *)0x0 || puVar5 == (uint *)0x0) {
      free(__ptr);
      free(puVar5);
      *param_6 = 0xc;
      local_b0 = 0;
      goto LAB_00030965;
    }
    uStack_c0 = FUN_00025ab0();
    cVar2 = (char)param_3[1];
    if (cVar2 != '\x02') {
      bVar1 = false;
      if (cVar2 != '\x19') {
code_r0x000312a6:
        if (cVar2 == '\x15') {
          *(char *)(param_3 + 1) = '\x01';
        }
        uStack_90 = 0;
        uVar6 = 1;
code_r0x000312e4:
        iVar16 = FUN_0002fec0(uStack_c0,param_4,uVar6);
        if (iVar16 == 0) {
          iVar16 = FUN_00025ab0();
          if ((char)param_3[1] == '\x02') {
code_r0x00031615:
            *param_6 = 7;
          }
          else {
            if ((char)param_3[1] != '\x16') {
code_r0x0003135b:
                    /* WARNING: Could not recover jumptable at 0x00031371. Too many branches */
                    /* WARNING: Treating indirect jump as call */
              iVar3 = (*(code *)((int)&__DT_PLTGOT + _UNK_0003ad44))();
              return iVar3;
            }
            *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + iVar16;
            uVar6 = FUN_00025ab0();
            if (cStack_64 == '\x02') goto code_r0x00031615;
            if (cStack_64 == '\x15') {
              *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) - iVar16;
              *(char *)(param_3 + 1) = '\x01';
              goto code_r0x0003135b;
            }
            pcStack_6c = acStack_40;
            puStack_70 = (uint *)0x3;
            uVar14 = 1;
            iVar16 = FUN_0002fec0(uVar6,param_4,1);
            if (iVar16 == 0) {
              uStack_c0 = FUN_00025ab0();
              puVar7 = puVar5;
              if (*(int *)(iVar3 + 0x5c) < 2) {
                puVar7 = (uint *)0x0;
              }
              if (((int)puStack_70 - 2U & 0xfffffffd) == 0) {
code_r0x00031b91:
                *param_6 = 0xb;
              }
              else {
                uVar13 = 0xffffffff;
                pcVar10 = acStack_60;
                do {
                  if (uVar13 == 0) break;
                  uVar13 = uVar13 - 1;
                  cVar2 = *pcVar10;
                  pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;
                } while (cVar2 != '\0');
                if (~uVar13 - 1 < 2) {
                  if (puStack_70 == (uint *)0x3) {
                    uVar13 = 0xffffffff;
                    pcVar10 = pcStack_6c;
                    do {
                      if (uVar13 == 0) break;
                      uVar13 = uVar13 - 1;
                      cVar2 = *pcVar10;
                      pcVar10 = pcVar10 + (uint)bVar17 * -2 + 1;
                    } while (cVar2 != '\0');
                    if (1 < ~uVar13 - 1) goto code_r0x00031b44;
                  }
                  pcVar10 = (char *)FUN_00026170();
                  if ((puStack_70 == (uint *)0x0) ||
                     (pcStack_8c = pcStack_6c, puStack_70 == (uint *)0x3)) {
                    pcStack_8c = (char *)FUN_00026170();
                  }
                  if ((pcVar10 == (char *)0xffffffff) || (pcStack_8c == (char *)0xffffffff))
                  goto code_r0x00031b44;
                  if (((param_4 & 0x10000) != 0) && (pcStack_8c < pcVar10)) goto code_r0x00031b91;
                  if (puVar7 != (uint *)0x0) {
                    uVar13 = puVar7[8];
                    __ptr_00 = (void *)puVar7[1];
                    if (uVar13 == uStack_90) {
                      uStack_90 = uStack_90 * 2 + 1;
                      uVar14 = uStack_90;
                      __ptr_00 = realloc(__ptr_00,uStack_90 * 4);
                      __ptr_01 = realloc((void *)puVar7[2],uStack_90 * 4);
                      if ((__ptr_00 == (void *)0x0) || (__ptr_01 == (void *)0x0)) {
                        free(__ptr_00);
                        free(__ptr_01);
                        *param_6 = 0xc;
                        goto code_r0x000314ef;
                      }
                      puVar7[2] = (uint)__ptr_01;
                      uVar13 = puVar7[8];
                      puVar7[1] = (uint)__ptr_00;
                    }
                    *(char **)((int)__ptr_00 + uVar13 * 4) = pcVar10;
                    puVar7[8] = uVar13 + 1;
                    *(char **)(puVar7[2] + uVar13 * 4) = pcStack_8c;
                  }
                  pcVar11 = (char *)0x0;
                  do {
                    if ((pcVar10 <= pcVar11) && (pcVar11 <= pcStack_8c)) {
                      __ptr[(int)pcVar11 >> 5] =
                           __ptr[(int)pcVar11 >> 5] | 1 << ((byte)pcVar11 & 0x1f);
                    }
                    pcVar11 = pcVar11 + 1;
                  } while (pcVar11 != (char *)0x100);
                  *param_6 = 0;
                  if ((char)param_3[1] == '\x02') goto code_r0x00031615;
                  if ((char)param_3[1] != '\x15') goto code_r0x000314d1;
                  *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;
                  if (bVar1) {
                    puVar7 = __ptr;
                    do {
                      *puVar7 = ~*puVar7;
                      puVar7 = puVar7 + 1;
                    } while (__ptr + 8 != puVar7);
                  }
                  iVar16 = *(int *)(iVar3 + 0x5c);
                  if (1 < iVar16) {
                    iVar4 = *(int *)(iVar3 + 0x3c);
                    iVar12 = 0;
                    do {
                      __ptr[iVar12] = __ptr[iVar12] & *(uint *)(iVar4 + iVar12 * 4);
                      iVar12 = iVar12 + 1;
                    } while (iVar12 != 8);
                  }
                  if (((((puVar5[5] != 0) || (puVar5[6] != 0)) || (puVar5[7] != 0)) ||
                      (puVar5[8] != 0)) ||
                     ((1 < iVar16 && ((puVar5[9] != 0 || ((puVar5[4] & 1) != 0)))))) {
                    *(byte *)(iVar3 + 0x58) = *(byte *)(iVar3 + 0x58) | 2;
                    pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,6);
                    puStack_70 = puVar5;
                    local_b0 = FUN_00028330(0,&puStack_70,uVar14);
                    puVar5 = __ptr;
                    if (local_b0 != 0) {
                      while (*puVar5 == 0) {
                        puVar5 = puVar5 + 1;
                        if (__ptr + 8 == puVar5) {
                          free(__ptr);
                          goto code_r0x0003093e;
                        }
                      }
                      pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);
                      puStack_70 = __ptr;
                      iVar3 = FUN_00028330(0,&puStack_70);
                      if (iVar3 != 0) {
                        cStack_64 = '\n';
                        ppuVar18 = &puStack_68;
                        goto code_r0x000319aa;
                      }
                    }
code_r0x000319be:
                    *param_6 = 0xc;
                    goto code_r0x000314ef;
                  }
                  FUN_00026c30();
                  pcStack_6c = (char *)CONCAT31(pcStack_6c._1_3_,3);
                  ppuVar18 = &puStack_70;
                  local_b0 = 0;
                  uVar14 = 0;
                  puStack_70 = __ptr;
code_r0x000319aa:
                  local_b0 = FUN_00028330(local_b0,ppuVar18,uVar14);
                  if (local_b0 == 0) goto code_r0x000319be;
                  goto code_r0x0003093e;
                }
code_r0x00031b44:
                *param_6 = 3;
              }
            }
            else {
              *param_6 = iVar16;
            }
          }
        }
        else {
          *param_6 = iVar16;
        }
        goto code_r0x000314ef;
      }
      *(byte *)(puVar5 + 4) = (byte)puVar5[4] | 1;
      if ((param_4 & 0x100) != 0) {
        *__ptr = *__ptr | 0x400;
      }
      *(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + uStack_c0;
      uStack_c0 = FUN_00025ab0();
      cVar2 = (char)param_3[1];
      if (cVar2 != '\x02') {
        bVar1 = true;
        goto code_r0x000312a6;
      }
    }
    *param_6 = 2;
code_r0x000314ef:
    free(__ptr);
    FUN_00026c30();
    if (*param_6 == 0) {
      local_b0 = 0;
      goto code_r0x0003093e;
    }
LAB_00030e58:
    local_b0 = 0;
    goto LAB_00030965;
  case '\x17':
    if ((param_4 & 0x1000000) == 0) goto code_r0x000308ec;
code_r0x00030b48:
    local_b0 = 0;
    *param_6 = 0xd;
    goto LAB_00030965;
  case ' ':
  case '!':
    local_b0 = FUN_0002b9b0(&UNK_000370bb,cVar2 == '!',param_6);
    iVar3 = *param_6;
    goto joined_r0x00030f59;
  case '\"':
  case '#':
    local_b0 = FUN_0002b9b0("",cVar2 == '#',param_6);
    iVar3 = *param_6;
joined_r0x00030f59:
    if ((iVar3 != 0) && (local_b0 == 0)) goto LAB_00030e58;
    goto code_r0x0003093e;
  case '$':
    local_b0 = 0;
    *param_6 = 5;
    goto LAB_00030965;
  }
  local_b0 = 0;
  *param_6 = 0xc;
LAB_00030965:
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_00036030();
  }
  return local_b0;
code_r0x000314d1:
  uVar6 = 0;
  goto code_r0x000312e4;
}

